From 6e783f279e7b1dd1f0fc243d7d8504ede0b25870 Mon Sep 17 00:00:00 2001
From: jyy <jyy>
Date: Sun, 27 Jun 2021 15:47:57 +0800
Subject: [PATCH] 修复业绩bug1

---
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 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 1e80f7f..0e85cd7 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
@@ -498,8 +498,10 @@
             throw new GlobleException("该订单已经收过款,请刷新页面再试!");
         }
 
-        //交易业绩设置是否合理
+        //检查交易限制调整
+        checkSealLimit(pageOrder);
 
+        //交易业绩设置是否合理
         checkAchieveIsOk(pageOrder);
 
 
@@ -535,6 +537,41 @@
 
         //设置会员积分
         addVipScore(pageOrder);
+
+    }
+
+    /**
+     * 检查产品销售次数
+     */
+    private void checkSealLimit(SysOrder pageOrder) {
+         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());
+
+                 if ((buyOnceCount + item.getCount()) > onceCount) {
+                     throw new GlobleException(shopGoods.getName() + "每人限购"+onceCount+"次");
+                 }
+             }
+
+         });
 
     }
 
@@ -780,7 +817,7 @@
         // 最大发卡数量为0代表不做限制
         if (maxNum != null && maxNum != 0) {
             // 查询该商品已经被购买的次数
-            Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId());
+            Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId(),null);
             buyNum = (buyNum == null ? 0 : buyNum);
             if ((buyNum + carItem.getCount()) > maxNum) {
                 throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");

--
Gitblit v1.9.1