From a9ab57e3c4f5ae5d6b198a8cbe5460267bfa2a04 Mon Sep 17 00:00:00 2001
From: jyy <jyy>
Date: Mon, 02 Aug 2021 16:41:11 +0800
Subject: [PATCH] 优化需求

---
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |  110 +++++++++++++++++++++++-------------------------------
 1 files changed, 47 insertions(+), 63 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 bb0717b..83b57f5 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
@@ -484,9 +484,6 @@
         //检查交易限制调整
         checkSealLimit(pageOrder);
 
-        //交易业绩设置是否合理
-        checkAchieveIsOk(pageOrder);
-
 
         // 更新收款时间
         pageOrder.setPayTime(new Date());
@@ -527,58 +524,38 @@
      * 检查产品销售次数
      */
     private void checkSealLimit(SysOrder pageOrder) {
-         pageOrder.getItems().forEach(item->{
-             ShoppingGoods shopGoods = shoppingGoodsDao.selectById(item.getGoodsId());
+        pageOrder.getItems().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) {
-                     throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");
-                 }
-                 if ((buyNum + item.getCount()) == maxNum) {
-                     if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) {
-                         shopGoods.setStaus(Dictionary.BUSINESS_STATE_DOWN);
-                         shoppingGoodsDao.update(shopGoods);
-                     }
-                 }
-             }
-             //每人限购次数检测
-             Integer onceCount = shopGoods.getIsOnce();
-             if(onceCount!=null && onceCount!=0){
-                 Integer buyOnceCount = orderItemDao.selectByGoodsId(shopGoods.getId(),pageOrder.getVipId());
+            //最大销售次数检测
+            Integer maxNum = shopGoods.getCarMaxSaleCount();
+            if (maxNum != null && maxNum != 0) {
+                Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId(),null);
+                if ((buyNum + item.getCount()) > maxNum) {
+                    throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");
+                }
+                if ((buyNum + item.getCount()) == maxNum) {
+                    if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) {
+                        shopGoods.setStaus(Dictionary.BUSINESS_STATE_DOWN);
+                        shoppingGoodsDao.update(shopGoods);
+                    }
+                }
+            }
+            //每人限购次数检测
+            Integer onceCount = shopGoods.getIsOnce();
+            if(onceCount!=null && onceCount!=0){
+                Integer buyOnceCount = orderItemDao.selectByGoodsId(shopGoods.getId(),pageOrder.getVipId());
 
-                 if ((buyOnceCount + item.getCount()) > onceCount) {
-                     throw new GlobleException(shopGoods.getName() + "每人限购"+onceCount+"次");
-                 }
-             }
+                if ((buyOnceCount + item.getCount()) > onceCount) {
+                    throw new GlobleException(shopGoods.getName() + "每人限购"+onceCount+"次");
+                }
+            }
 
-         });
+        });
 
     }
 
-    /**
-     * 交易业绩设置是否合理
-     * @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("划扣业绩不等于储值卡扣款金额,请修改业绩设置!");
-        }
-    }
 
     /**
      * 设置会员消费积分
@@ -689,15 +666,15 @@
 
         //添加自己的积分
         if(selfScore>0){
-                scoreVipDetailService.addScore(
-                        vipInfo.getId(),
-                        pageOrder.getStaffId(),
-                        pageOrder.getShopId(),
-                        selfScore,
-                        pageOrder.getId(),
-                        ScoreVipDetail.SCORE_VIP_TYPE_CASH,
-                        "消费奖励"
-                );
+            scoreVipDetailService.addScore(
+                    vipInfo.getId(),
+                    pageOrder.getStaffId(),
+                    pageOrder.getShopId(),
+                    selfScore,
+                    pageOrder.getId(),
+                    ScoreVipDetail.SCORE_VIP_TYPE_CASH,
+                    "消费奖励"
+            );
         }
 
         if(vipInfo.getRecommendId()!=null){
@@ -1262,10 +1239,17 @@
             //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
             boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
             if(zsConsumeAchieve){
-                if (taocanId == null) {
-                    puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
-                } else {
-                    puse.setPrice(goodsAssemble.getPrice());
+                if(sysOrderItem.getPrice()>0){
+
+                    //大于0 不修改金额
+
+                }else{
+                    //等于0取原价
+                    if (taocanId == null) {
+                        puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
+                    } else {
+                        puse.setPrice(goodsAssemble.getPrice());
+                    }
                 }
             }else{
                 puse.setPrice(0D);
@@ -1702,7 +1686,7 @@
 
                     int sub = sysProjUse.getSurplusCount() - item.getCount();
                     if (sub < 0) {
-                      throw new GlobleException("项目余次不足");
+                        throw new GlobleException("项目余次不足");
                     }else if(sub==0){
                         sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
                         sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
@@ -1723,7 +1707,7 @@
                 List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse);
 
 
-                for (int i = 0; i < item.getCount(); i++) {
+                for (int i = 0; i < sysProjUses.size(); i++) {
 
                     SysProjUse sysProjUse = sysProjUses.get(i);
                     sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);

--
Gitblit v1.9.1