From 58032b964fa5dee3924847943548093af6dcb098 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Thu, 28 Oct 2021 10:32:24 +0800 Subject: [PATCH] Merge branch 'score_shop' into api_score_meger --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 40 ++++++++++++++++++++++++++++++++-------- 1 files changed, 32 insertions(+), 8 deletions(-) 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 0bdf347..f569ace 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 @@ -36,7 +36,6 @@ import com.matrix.system.wechart.templateMsg.UniformMsgParam; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -483,9 +482,7 @@ // 更新收款时间 - pageOrder.setPayTime(new Date()); - pageOrder.setStatu(Dictionary.ORDER_STATU_YFK); - sysOrderDao.update(pageOrder); + updateOrderInfo(pageOrder); // 获取用户信息 SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId()); @@ -515,6 +512,30 @@ //设置会员积分 addVipScore(pageOrder); + } + + /** + * 付款后更新订单信息 + * @param pageOrder + */ + private void updateOrderInfo(SysOrder pageOrder) { + pageOrder.setPayTime(new Date()); + pageOrder.setStatu(Dictionary.ORDER_STATU_YFK); + List<SysOrderFlow> flows = pageOrder.getFlows(); + + BigDecimal cashPayAmount = flows.stream() + .filter(item -> (!item.getPayMethod().equals("储值卡")) && (!item.getPayMethod().equals("欠款"))) + .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + + BigDecimal cardPayAmount = flows.stream() + .filter(item -> item.getPayMethod().equals("储值卡") && item.getIsGift().equals("N")) + .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + + pageOrder.setCardPay(cardPayAmount.doubleValue()); + pageOrder.setCashPay(cashPayAmount.doubleValue()); + //欠款金额在流水处理中处理了 + + sysOrderDao.update(pageOrder); } private void checkOrder(SysOrder pageOrder) { @@ -1380,17 +1401,20 @@ //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗 boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE); if (zsConsumeAchieve) { - puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice()); + //赠送情况下,如果收款金额大于0,就是赠送金额划扣的情况,金额即为划扣的折扣金额 + if(sysOrderItem.getZkPrice()>0){ + puse.setPrice(sysOrderItem.getZkPrice()); + }else{ + puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice()); + } } else { puse.setPrice(0D); } - - } // 设置失效时间 Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null); puse.setFailTime(invalidTime); - puse.setBalance(sysOrderItem.getShoppingGoods().getSealPice() * puse.getSurplusCount()); + puse.setBalance(puse.getPrice() * puse.getSurplusCount()); sysProjUseDao.insert(puse); } -- Gitblit v1.9.1