From e423d56d730db1baed24f3f7dbbc4141038776b6 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Fri, 18 Jun 2021 22:12:03 +0800
Subject: [PATCH] 修复每日业绩bug和优化赠送业绩计算方式
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 53 insertions(+), 7 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 93553f8..1e80f7f 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
@@ -497,6 +497,12 @@
if (!Dictionary.ORDER_STATU_DFK.equals(pageOrder.getStatu())) {
throw new GlobleException("该订单已经收过款,请刷新页面再试!");
}
+
+ //交易业绩设置是否合理
+
+ checkAchieveIsOk(pageOrder);
+
+
// 更新收款时间
pageOrder.setPayTime(new Date());
pageOrder.setStatu(Dictionary.ORDER_STATU_YFK);
@@ -530,6 +536,28 @@
//设置会员积分
addVipScore(pageOrder);
+ }
+
+ /**
+ * 交易业绩设置是否合理
+ * @param pageOrder
+ */
+ private void checkAchieveIsOk(SysOrder pageOrder) {
+ double huakouSum = pageOrder.getItems().stream()
+ .mapToDouble(
+ item ->
+ item.getAchieveList().stream()
+ .filter(achieveNew -> "划扣".equals(achieveNew.getPayMethod()))
+ .mapToDouble(achieve -> achieve.getGoodsCash()).sum()
+ ).sum();
+
+ double czkPay= pageOrder.getFlows().stream()
+ .filter(sysOrderFlow -> "储值卡".equals(sysOrderFlow.getPayMethod()))
+ .mapToDouble(sysOrderFlow ->sysOrderFlow.getAmount().doubleValue()).sum();
+
+ if(czkPay!=huakouSum){
+ throw new GlobleException("划扣业绩不等于储值卡扣款金额,请修改业绩设置!");
+ }
}
/**
@@ -1210,13 +1238,21 @@
if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0) {
puse.setSource(Dictionary.TAOCAN_SOURCE_GM);
} else {
- //赠送产品按原价计算消耗
+
puse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
- if (taocanId == null) {
- puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
- } else {
- puse.setPrice(goodsAssemble.getPrice());
+ //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
+ boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
+ if(zsConsumeAchieve){
+ if (taocanId == null) {
+ puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
+ } else {
+ puse.setPrice(goodsAssemble.getPrice());
+ }
+ }else{
+ puse.setPrice(0D);
}
+
+
}
puse.setBalance(MoneyUtil.mul(puse.getPrice(), Double.valueOf(puse.getSurplusCount())));
puse.setFailTime(failTime);
@@ -1283,6 +1319,9 @@
sysProjUseDao.update(taocanProjUse);
}
+ @Autowired
+ private SysProjServicesService projServicesService;
+
/**
* 根据订单创建用户项目使用情况
*
@@ -1307,8 +1346,15 @@
puse.setPrice(sysOrderItem.getZkPrice());
} else {
puse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
- //赠送产品按原价计算消耗
- puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+ //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
+ boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
+ if(zsConsumeAchieve){
+ puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+ }else{
+ puse.setPrice(0D);
+ }
+
+
}
// 设置失效时间
Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null);
--
Gitblit v1.9.1