From 78472da3395d1db45b6a76688c72a2c2a372c47a Mon Sep 17 00:00:00 2001
From: jyy <jyy>
Date: Sat, 31 Jul 2021 17:42:05 +0800
Subject: [PATCH] Merge branch 'score_shop' into api_score_meger

---
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |  118 +++++++++++++++++++++++++++--------------------------------
 1 files changed, 54 insertions(+), 64 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 adf9bcf..36773cc 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,11 +1239,20 @@
             //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
             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){
+
+
+
+
+                }else{
+                    //等于0取原价
+                    if (taocanId == null) {
+                        puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
+                    } else {
+                        puse.setPrice(goodsAssemble.getPrice());
+                    }
                 }
+
             }else{
                 puse.setPrice(0D);
             }
@@ -1370,7 +1356,11 @@
             //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
             boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
             if(zsConsumeAchieve){
-                puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+                if(sysOrderItem.getPrice()>0){
+                    puse.setPrice(sysOrderItem.getZkPrice());
+                }else{
+                    puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+                }
             }else{
                 puse.setPrice(0D);
             }
@@ -1550,7 +1540,7 @@
         sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y);
 //        sourceOrder.setStatu(Dictionary.ORDER_STATU_TK);
         sysOrderDao.update(sourceOrder);
-        SysOrder oldOrder=sysOrderDao.selectById(   sysOrder.getOldOrderId());
+        SysOrder oldOrder=sysOrderDao.selectById(sysOrder.getOldOrderId());
 
         sysOrder.setId(null);
         sysOrder.setStaffId(user.getSuId());
@@ -1723,7 +1713,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