From 7e6a42fdddef2cc7981d736a138c719aba53563c Mon Sep 17 00:00:00 2001 From: JiangYouYao <ak473600000> Date: Fri, 11 Mar 2022 18:12:04 +0800 Subject: [PATCH] 重构:充值卡 --- zq-erp/src/main/java/com/matrix/system/hive/dto/MoneyCardChangeDto.java | 65 +++++++ zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java | 16 + zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java | 7 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java | 7 zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java | 69 +++++++ zq-erp/src/main/java/com/matrix/system/hive/dto/GoodsSealLimitDto.java | 2 zq-erp/src/main/java/com/matrix/core/tools/ParamCheckUtil.java | 3 zq-erp/src/main/java/com/matrix/system/enums/BooleanEnum.java | 63 +++++++ zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 138 ++++++--------- zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html | 10 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java | 73 ++++++++ zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java | 1 zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java | 4 zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java | 17 - zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml | 2 zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html | 10 zq-erp/src/main/java/com/matrix/system/hive/dto/SysOrderItemDto.java | 7 17 files changed, 372 insertions(+), 122 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java b/zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java index d4bb932..3c93147 100644 --- a/zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java +++ b/zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java @@ -8,12 +8,16 @@ @Data public class VerificationResult { + /** + * 审核结果 + */ private boolean judgeResult; private String msg; private Object info; + private VerificationResult(){ } diff --git a/zq-erp/src/main/java/com/matrix/core/tools/ParamCheckUtil.java b/zq-erp/src/main/java/com/matrix/core/tools/ParamCheckUtil.java index 49768e8..0d55dba 100644 --- a/zq-erp/src/main/java/com/matrix/core/tools/ParamCheckUtil.java +++ b/zq-erp/src/main/java/com/matrix/core/tools/ParamCheckUtil.java @@ -1,8 +1,5 @@ package com.matrix.core.tools; -import com.matrix.system.hive.dto.OrderItemDto; - -import java.util.ArrayList; import java.util.List; import java.util.function.Function; diff --git a/zq-erp/src/main/java/com/matrix/system/enums/BooleanEnum.java b/zq-erp/src/main/java/com/matrix/system/enums/BooleanEnum.java new file mode 100644 index 0000000..4adb5d3 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/enums/BooleanEnum.java @@ -0,0 +1,63 @@ +package com.matrix.system.enums; + +import com.google.common.collect.Lists; +import com.matrix.core.enums.EnumApiShowAble; +import com.matrix.core.enums.EnumsShowVo; +import com.matrix.core.exception.GlobleException; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 是否枚举 + * @author jyy + */ +public enum BooleanEnum implements EnumApiShowAble { + + TRUE(1, "是"), + FALSE(2, "否"), + DEFAULT(3, ""), + ; + + private Integer value; + + private String displayName; + + BooleanEnum(Integer value, String displayName) { + this.value = value; + this.displayName = displayName; + } + + public static String getByValue(Integer value) { + for (int i = 0; i < values().length; i++) { + if (value.equals(values()[i].getValue())) { + return values()[i].displayName; + } + } + throw new GlobleException("无效枚举值"); + } + + @Override + public String getEnumCode() { + return "booleanEnum"; + } + + @Override + public List<EnumsShowVo> getEnumsShowVos() { + return Lists.newArrayList(values()).stream().map(item -> + EnumsShowVo.builder() + .displayName(item.getDisplayName()) + .value(item.value) + .build() + ).collect(Collectors.toList()); + } + + public Integer getValue() { + return value; + } + + public String getDisplayName() { + return displayName; + } + +} diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java index e2c5007..2118f7a 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java @@ -190,7 +190,6 @@ } } shoppingGoods.setIsDel(ShoppingGoods.NORMAL); - shoppingGoods.setStaus(Dictionary.BUSINESS_STATE_UP); List<ShoppingGoods> dataList = shoppingGoodsService.findInPage(shoppingGoods, pageVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shoppingGoodsService.findTotal(shoppingGoods)); return result; diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dto/GoodsSealLimitDto.java b/zq-erp/src/main/java/com/matrix/system/hive/dto/GoodsSealLimitDto.java index 1926c1d..c066038 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dto/GoodsSealLimitDto.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dto/GoodsSealLimitDto.java @@ -20,6 +20,6 @@ /** * 销售明细 */ - private List<OrderItemDto> orderItemDtoList; + private List<SysOrderItemDto> sysOrderItemDtoList; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dto/MoneyCardChangeDto.java b/zq-erp/src/main/java/com/matrix/system/hive/dto/MoneyCardChangeDto.java new file mode 100644 index 0000000..b99ae5a --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/dto/MoneyCardChangeDto.java @@ -0,0 +1,65 @@ +/** + * projectName: zq-erp + * fileName: MoneyCardChangeDto.java + * packageName: com.matrix.system.hive.dto + * date: 2022-03-11 10:24 + * copyright(c) 2022 http://www.hydee.cn/ Inc. All rights reserved. + */ +package com.matrix.system.hive.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @version: V1.0 + * @author: JiangYouYao + * @className: MoneyCardChangeDto + * @packageName: com.matrix.system.hive.dto + * @description: 储值卡余额变更DTO + * @data: 2022-03-11 10:24 + **/ +@Data +public class MoneyCardChangeDto { + + + /** + * 储值卡id + */ + private Long carUseId; + /** + * 订单id + */ + private Long orderId; + /** + * 订单编号 + */ + private String orderNo; + /** + * 操作类型 + */ + private String type; + /** + * 赠送金额扣减 + */ + private Double giftMoney; + /** + * 本金扣减 + */ + private Double realMoney; + /** + * 扣减次数 + */ + private Double count; + /** + * 操作人 + */ + private Long updateUser; + + /** + * 支付的商品id + */ + private List<Long> goodsIds; + + +} \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dto/OrderItemDto.java b/zq-erp/src/main/java/com/matrix/system/hive/dto/SysOrderItemDto.java similarity index 81% rename from zq-erp/src/main/java/com/matrix/system/hive/dto/OrderItemDto.java rename to zq-erp/src/main/java/com/matrix/system/hive/dto/SysOrderItemDto.java index bc927fa..2f57177 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dto/OrderItemDto.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dto/SysOrderItemDto.java @@ -1,16 +1,15 @@ package com.matrix.system.hive.dto; -import lombok.Builder; import lombok.Data; import lombok.ToString; /** * 订单明细DTO + * @author jyy */ -@Data @ToString -@Builder -public class OrderItemDto { +@Data +public class SysOrderItemDto { /** * 商城 商品id */ diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java index c677c7b..c367c08 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java @@ -1,17 +1,27 @@ package com.matrix.system.hive.service; -import java.util.List; - - import com.matrix.core.pojo.PaginationVO; import com.matrix.system.hive.bean.MoneyCardUse; +import com.matrix.system.hive.dto.MoneyCardChangeDto; import com.matrix.system.hive.plugin.util.BaseServices; + +import java.util.List; /** * @date 2016-09-17 10:17 */ public interface MoneyCardUseService extends BaseServices<MoneyCardUse> { + + /** + * 修改储值卡余额 + */ + void changeMoneyCard(List<MoneyCardChangeDto> moneyCardChangeDtoList); + + + + + /** * 新增MoneyCardUse */ diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java index cd93e2d..a31f4d0 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java @@ -22,6 +22,13 @@ */ public interface SysVipInfoService extends BaseServices<SysVipInfo>{ + /** + * 更新用户成交状态 + * @param vipId + * @param isDeal + */ + void updateDealStatus(Long vipId, int isDeal); + public MoneyCardUse addVipDefaultCard(Long vipId); /** * 新增SysVipInfo diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java index 5eb09f1..2b6ba2e 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java @@ -3,13 +3,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.PaginationVO; +import com.matrix.core.pojo.VerificationResult; import com.matrix.core.tools.DateUtil; import com.matrix.system.constance.Dictionary; -import com.matrix.system.hive.bean.MoneyCardUse; -import com.matrix.system.hive.bean.MoneyCardUseFreeze; -import com.matrix.system.hive.bean.SysOrderItem; -import com.matrix.system.hive.bean.SysVipInfo; +import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; +import com.matrix.system.hive.dto.MoneyCardChangeDto; import com.matrix.system.hive.service.MoneyCardUseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -41,9 +40,71 @@ @Autowired private SysVipLevelDao viplevelDao; + @Autowired + ShoppingGoodsDao shoppingGoodsDao; + + @Autowired + MoneyCardAssembleDao moneyCardAssembleDao; + + @Override + public void changeMoneyCard(List<MoneyCardChangeDto> moneyCardChangeDtoList) { + + // 判断商品是否在充值卡的限制购买,判断分类 + moneyCardChangeDtoList.forEach(cardUse->{ + VerificationResult verificationResult = checkIsBangding(cardUse, cardUse.getGoodsIds()); + if (!verificationResult.isJudgeResult()) { + throw new GlobleException(verificationResult.getMsg()); + } + }); + + moneyCardChangeDtoList.get().forEach(item -> { + if (!isInBangding(moneyCardUse, item.getGoodsId())) { + throw new GlobleException(shoppingGoodsDao.selectById(item.getGoodsId()).getName() + "不在" + moneyCardUse.getCardName() + "优惠中"); + } + }); + } + private VerificationResult checkIsBangding(MoneyCardChangeDto moneyCardUse, List<Long> goodsIds) { + // 如果是一卡通则肯定在绑定范围内 + + if (moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)) { + return true; + } else { + // 不是一卡通, + // 判断卡是否可应用于所有产品 + ShoppingGoods cardGoods = shoppingGoodsDao.selectById(moneyCardUse.getGoodsId()); + if (cardGoods != null) { + if (Dictionary.FLAG_YES.equals(cardGoods.getCarIsAll())) { + return true; + } + } + + // 比较分类 + MoneyCardAssemble moneyCardAssemble = new MoneyCardAssemble(); + moneyCardAssemble.setCardId(moneyCardUse.getGoodsId()); + List<MoneyCardAssemble> cardAssembleList = moneyCardAssembleDao.selectByModel(moneyCardAssemble); + ShoppingGoods yhGoods = shoppingGoodsDao.selectById(goodsId); + boolean flag = false; + for (MoneyCardAssemble cardAssemble : cardAssembleList) { + // 比较类型 + if (cardAssemble.getType().equals(Dictionary.CZK_ASSEMBLE_FL)) { + if (yhGoods.getCateId().equals(cardAssemble.getCateId())) { + flag = true; + break; + } + } else { + // 比较绑定 + if (yhGoods.getId().equals(cardAssemble.getGoodsId())) { + flag = true; + break; + } + } + } + return flag; + } + } @Override public int add(MoneyCardUse moneyCardUse) { diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java index 7c8ddf9..639beac 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java @@ -18,7 +18,7 @@ import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.dto.GoodsSealLimitDto; -import com.matrix.system.hive.dto.OrderItemDto; +import com.matrix.system.hive.dto.SysOrderItemDto; import com.matrix.system.hive.service.ShoppingGoodsService; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -64,17 +64,17 @@ //校验参数不能为空 checkGoodsSelLimtParam(goodsSealLimitDto); - goodsSealLimitDto.getOrderItemDtoList().forEach(item -> { + goodsSealLimitDto.getSysOrderItemDtoList().forEach(item -> { ShoppingGoods shopGoods = shoppingGoodsDao.selectById(item.getGoodsId()); //最大销售次数检测 Integer maxNum = shopGoods.getCarMaxSaleCount(); if (maxNum != null && maxNum != 0) { Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId(), null); - if ((buyNum + item.getCount()) == maxNum) { + if (buyNum.equals(maxNum)) { if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) { shopGoods.setStaus(Dictionary.BUSINESS_STATE_DOWN); shoppingGoodsDao.update(shopGoods); - LogUtil.info("{}商品达到最大销售数量自动下架",shopGoods.getName()); + LogUtil.info("商品达到最大销售数量自动下架:{}", shopGoods.getName()); } } else if ((buyNum + item.getCount()) > maxNum) { throw new GlobleException(shopGoods.getName() + "已超过最大销售数量"); @@ -92,17 +92,14 @@ } - - - private void checkGoodsSelLimtParam(GoodsSealLimitDto goodsSealLimitDto) { ParamCheckUtil.requireNonNulls(goodsSealLimitDto, goodsSealLimitDto.getVipId(), - goodsSealLimitDto.getOrderItemDtoList()); + goodsSealLimitDto.getSysOrderItemDtoList()); - ParamCheckUtil.requireListElementNonNull(goodsSealLimitDto.getOrderItemDtoList(), - Arrays.asList(OrderItemDto::getCount, OrderItemDto::getGoodsId)); + ParamCheckUtil.requireListElementNonNull(goodsSealLimitDto.getSysOrderItemDtoList(), + Arrays.asList(SysOrderItemDto::getCount, SysOrderItemDto::getGoodsId)); } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java new file mode 100644 index 0000000..3eb4294 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java @@ -0,0 +1,73 @@ +/** + * projectName: zq-erp + * fileName: SysOrderServiceHelper.java + * packageName: com.matrix.system.hive.service.imp + * date: 2022-03-11 9:33 + * copyright(c) 2022 http://www.hydee.cn/ Inc. All rights reserved. + */ +package com.matrix.system.hive.service.imp; + +import com.matrix.system.hive.bean.ShoppingGoods; +import com.matrix.system.hive.bean.SysOrder; +import com.matrix.system.hive.bean.SysOrderFlow; +import com.matrix.system.hive.dao.ShoppingGoodsDao; +import com.matrix.system.hive.dao.SysOrderFlowDao; +import com.matrix.system.hive.service.CodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @version: V1.0 + * @author: JiangYouYao + * @className: SysOrderServiceHelper + * @packageName: com.matrix.system.hive.service.imp + * @description: 订单服务助手 + * @data: 2022-03-11 9:33 + **/ +@Component +public class SysOrderServiceHelper { + + + @Autowired + private CodeService codeService; + + + @Autowired + ShoppingGoodsDao shoppingGoodsDao; + + @Autowired + private SysOrderFlowDao sysOrderFlowDao; + + /** + * 创建支付流水 + * + * @author:姜友瑶 + */ + public void addOrderFlow(SysOrder sourceOrder) { + //处理支付流水 + int flowCount = 1; + for (SysOrderFlow flow : sourceOrder.getFlows()) { + flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount); + flow.setVipId(sourceOrder.getVipId()); + flow.setShopId(sourceOrder.getShopId()); + flow.setCompanyId(sourceOrder.getCompanyId()); + //支付内容摘要设置 + Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); + ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); + flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); + // 若是退款,则取负数 + if (SysOrder.ORDER_TYPE_REFUND == sourceOrder.getOrderType()) { + flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND); + flow.setAmount(flow.getAmount().negate()); + flow.setOrderId(sourceOrder.getOldOrderId()); + } else { + flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); + flow.setOrderId(sourceOrder.getId()); + } + sysOrderFlowDao.insert(flow); + flowCount++; + } + } + + +} \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java index 2619287..ce7fac0 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java @@ -24,12 +24,13 @@ import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.common.service.OperationLogService; import com.matrix.system.constance.Dictionary; +import com.matrix.system.enums.BooleanEnum; import com.matrix.system.enums.OperationButtonEnum; import com.matrix.system.enums.OperationFunctionEnum; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.dto.GoodsSealLimitDto; -import com.matrix.system.hive.dto.OrderItemDto; +import com.matrix.system.hive.dto.SysOrderItemDto; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.plugin.util.MoneyUtil; import com.matrix.system.hive.pojo.CzXkVo; @@ -135,6 +136,14 @@ @Autowired private OperationLogService operationLogService; + + @Autowired + private SysVipInfoService sysVipInfoService; + + @Autowired + private SysOrderServiceHelper sysOrderServiceHelper; + + @Override @@ -517,27 +526,17 @@ @Transactional(rollbackFor = Exception.class) public void updateReceiptMoney(SysOrder pageOrder) throws GlobleException { - if (!Dictionary.ORDER_STATU_DFK.equals(pageOrder.getStatu())) { - throw new GlobleException("该订单已经收过款,请刷新页面再试!"); - } - - + //校验订单是否满足收款条件 checkOrder(pageOrder); - - // 更新收款时间 + // 更新订单主表信息 updateOrderInfo(pageOrder); - // 获取用户信息 - SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId()); - if (SysVipInfo.UNDEAL_VIP == vipInfo.getIsDeal()) { - //非成交客户下单更新客户为成交客户 - vipInfo.setIsDeal(SysVipInfo.DEAL_VIP); - sysVipInfoDao.update(vipInfo); - } + // 设置用户为成交客户 + sysVipInfoService.updateDealStatus(pageOrder.getVipId(), BooleanEnum.TRUE.getValue()); //添加支付流水 - addOrderFlow(pageOrder); + sysOrderServiceHelper.addOrderFlow(pageOrder); // 设置会员充值卡使用情况 addMoneyCardUse(pageOrder); @@ -556,10 +555,26 @@ //设置会员积分 addVipScore(pageOrder); - - + //保存订单收款日志 + saveOrderSkLog(pageOrder); } + + + /** + * 保存订单收款日志 + * @param pageOrder + */ + private void saveOrderSkLog(SysOrder pageOrder) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + operationLogService.saveOperation(pageOrder.getCompanyId(), pageOrder.getShopId(), user.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.ORDER_SK, + pageOrder.getId(), + pageOrder.getOrderNo(), + pageOrder.getVipId()); + } + /** * 付款后更新订单信息 @@ -586,7 +601,14 @@ pageOrder.setCardPay(cardPayAmount.doubleValue()); pageOrder.setCashPay(cashPayAmount.doubleValue()); - //欠款金额在流水处理中处理了 + + for (SysOrderFlow flow : pageOrder.getFlows()) { + //欠款处理 + if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) { + pageOrder.setStatu(Dictionary.ORDER_STATU_QK); + pageOrder.setArrears(flow.getAmount().doubleValue()); + } + } double sum = flows.stream().mapToDouble(item -> item.getAmount().doubleValue()).sum(); @@ -597,22 +619,24 @@ sysOrderDao.update(pageOrder); - //保存单据日志 - operationLogService.saveOperation(pageOrder.getCompanyId(), pageOrder.getShopId(), user.getSuId(), - OperationFunctionEnum.ORDER, - OperationButtonEnum.ORDER_SK, - pageOrder.getId(), - pageOrder.getOrderNo(), - pageOrder.getVipId()); + } private void checkOrder(SysOrder pageOrder) { - //检查交易限制调整 jyytodo 测试一下 + + SysOrder checkOrder = sysOrderDao.selectById(pageOrder.getId()); + + //状态校验 + if (!Dictionary.ORDER_STATU_DFK.equals(checkOrder.getStatu())) { + throw new GlobleException("该订单已经收过款,请刷新页面再试!"); + } + + //检查交易限制调整 GoodsSealLimitDto goodsSealLimitDto = new GoodsSealLimitDto(); goodsSealLimitDto.setVipId(pageOrder.getVipId()); - goodsSealLimitDto.setOrderItemDtoList(Lists.newArrayList()); + goodsSealLimitDto.setSysOrderItemDtoList(Lists.newArrayList()); pageOrder.getItems().forEach(e->{ - goodsSealLimitDto.getOrderItemDtoList().add(BeanUtil.copyProperties(e, OrderItemDto.class)); + goodsSealLimitDto.getSysOrderItemDtoList().add(BeanUtil.copyProperties(e, SysOrderItemDto.class)); }); shoppingGoodsService.checkGoodsSealLimit(goodsSealLimitDto); @@ -811,59 +835,7 @@ } } - /** - * 创建支付流水 - * - * @author:姜友瑶 - */ - private void addOrderFlow(SysOrder sourceOrder) { - - //处理支付流水 - int flowCount = 1; - for (SysOrderFlow flow : sourceOrder.getFlows()) { - //支付内容摘要设置 - Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); - ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); - flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); - // 若是退款,则取负数 - if (SysOrder.ORDER_TYPE_REFUND == sourceOrder.getOrderType()) { - flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND); - flow.setAmount(flow.getAmount().negate()); - flow.setOrderId(sourceOrder.getOldOrderId()); - } else { - flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); - flow.setOrderId(sourceOrder.getId()); - } - - //欠款处理 - if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) { - sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); - sourceOrder.setArrears(flow.getAmount().doubleValue()); - sysOrderDao.update(sourceOrder); - } - - //统计储值卡支付 - if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { - if (flow.getCardId() != null) { - MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); - //修改储值卡余额 - cardPaySk(moneyCardUse, sourceOrder, flow); - } else { - throw new GlobleException("无效的储值卡支付方式"); - } - } - - flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount); - flow.setVipId(sourceOrder.getVipId()); - flow.setShopId(sourceOrder.getShopId()); - flow.setCompanyId(sourceOrder.getCompanyId()); - sysOrderFlowDao.insert(flow); - flowCount++; - } - - - } /** @@ -1572,7 +1544,7 @@ order.setFlows(czVo.getFlows()); - addOrderFlow(order); + sysOrderServiceHelper.addOrderFlow(order); // 添加员工业绩 achieveNewService.addAchaeveByOrder(order); @@ -1666,7 +1638,7 @@ // 添加订单收款流水 - addOrderFlow(sysOrder); + sysOrderServiceHelper.addOrderFlow(sysOrder); //退款退套餐退项目 refundProjUse(sysOrder); //删除积分 diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java index 0515e39..9cdcdb4 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java @@ -82,6 +82,13 @@ @Autowired private SysOrderDao sysOrderDao; + @Override + public void updateDealStatus(Long vipId, int isDeal) { + SysVipInfo vipInfo = new SysVipInfo(); + vipInfo.setIsDeal(isDeal); + vipInfo.setIsDeal(SysVipInfo.DEAL_VIP); + sysVipInfoDao.update(vipInfo); + } /** * 新增会员储值卡 diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml index 42b4adc..06992bf 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml @@ -3,7 +3,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.matrix.system.hive.dao.ShoppingGoodsDao"> - <cache readOnly="true"></cache> + <resultMap type="ShoppingGoods" id="ShoppingGoodsMap"> <id property="id" column="id" /> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html index 77b6bba..8211c7b 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html @@ -54,12 +54,10 @@ </div> <div class="form-group mr-20"> <label for="staus">状态</label> - <select class="form-control autoFull" name="staus" nullmsg="状态不能为空" dataType="*" id="staus" - data-filed="name" - data-value="name" - th:data-url="@{/admin/dataDictionary/showDataDictionary}" - data-param="{type:'项目状态'}"> - <option value=''>请选择项目状态</option> + <select class="form-control " name="staus" nullmsg="状态不能为空" dataType="*" id="staus"> + <option value=''>全部</option> + <option value='上架' selected ="selected ">上架</option> + <option value=''>下架</option> </select> </div> <div class="form-group mr-20"> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html index a9e5af4..3e3b309 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html @@ -55,12 +55,10 @@ </div> <div class="form-group mr-20"> <label for="staus">状态</label> - <select class="form-control autoFull" name="staus" nullmsg="状态不能为空" dataType="*" id="staus" - data-filed="name" - data-value="name" - th:data-url="@{/admin/dataDictionary/showDataDictionary}" - data-param="{type:'项目状态'}"> - <option value=''>请选择项目状态</option> + <select class="form-control " name="staus" nullmsg="状态不能为空" dataType="*" id="staus"> + <option value=''>全部</option> + <option value='上架' selected ="selected ">上架</option> + <option value=''>下架</option> </select> </div> <div class="form-group mr-20"> -- Gitblit v1.9.1