From 608f4bd5ff1a0024c04af0973b20ed360d1d16a0 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 09 Nov 2021 11:34:52 +0800
Subject: [PATCH] fix
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 45 +++++++++++++++++++++++++++++++++++++--------
1 files changed, 37 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..f9bc208 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);
}
@@ -1829,4 +1853,9 @@
sysInstoreInfoService.check(instoreInfo);
}
+
+ @Override
+ public BigDecimal findVipArrearsByVipId(Long vipId) {
+ return sysOrderDao.selectArrearsByVipId(vipId);
+ }
}
--
Gitblit v1.9.1