lubo 1 ヶ月 前
コミット
254a7d55b8

+ 2 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/groupbuy/service/IGroupBuyTeamService.java

@@ -113,4 +113,6 @@ public interface IGroupBuyTeamService {
      * @param buyTeamId 拼团ID
      */
      void teamSuccess(Long buyTeamId);
+
+    void paySuccess(ShopOrder order);
 }

+ 5 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/groupbuy/service/impl/GroupBuyTeamServiceImpl.java

@@ -283,6 +283,11 @@ public class GroupBuyTeamServiceImpl implements IGroupBuyTeamService {
         }
     }
 
+    @Override
+    public void paySuccess(ShopOrder order) {
+
+    }
+
     @Override
     public GroupBuyTeamMember createTeam(ShopOrder order) {
         GroupBuyActivity groupBuyActivity = groupBuyActivityService.loadById(order.getActivityId(), true);

+ 7 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/impl/ShopOrderServiceImpl.java

@@ -30,6 +30,7 @@ import com.ruoyi.shop.config.domain.ShopSaleConfig;
 import com.ruoyi.shop.config.service.IShopSaleConfigService;
 import com.ruoyi.shop.coupon.service.ICouponReceiveRecordService;
 import com.ruoyi.shop.marketing.groupbuy.service.IGroupBuyTeamMemberService;
+import com.ruoyi.shop.marketing.groupbuy.service.IGroupBuyTeamService;
 import com.ruoyi.shop.order.domain.ShopOrder;
 import com.ruoyi.shop.order.domain.ShopOrderDetail;
 import com.ruoyi.shop.order.domain.bo.*;
@@ -91,6 +92,7 @@ public class ShopOrderServiceImpl implements IShopOrderService {
     private final IBusinessService businessService;
 
     private final IGroupBuyTeamMemberService groupBuyTeamMemberService;
+    private final IGroupBuyTeamService groupBuyTeamService;
 
     /**
      * 查询订单分页
@@ -686,6 +688,11 @@ public class ShopOrderServiceImpl implements IShopOrderService {
 
         }
         this.baseMapper.updateById(order);
+
+        if(MarketingType.GROUP.equals(order.getMarketingType()))
+        {
+            groupBuyTeamService.paySuccess(order);
+        }
         return order;
     }
 

+ 2 - 1
ruoyi-shop/src/main/java/com/ruoyi/shop/product/exception/ProductSkuSetStockExceptionEnum.java

@@ -12,7 +12,8 @@ public enum ProductSkuSetStockExceptionEnum implements IIntegerEnum {
     // TODO 注意检查错误码,保证系统内唯一
     ProductSkuSetStock_IS_NOT_EXISTS(510001, "商品库存不存在"),
 
-    GROUP_BUY_GOODS_STOCK_NO( 510002, "拼团商品库存不足");
+    GROUP_BUY_GOODS_STOCK_NO( 510002, "拼团商品库存不足"),
+    ProductSkuSetStock_STOCK_NOT_ENOUGH( 510003, "原商品库存不足");
 
     private Integer code;
 

+ 6 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/product/service/impl/ProductSkuSetStockServiceImpl.java

@@ -175,6 +175,9 @@ public class ProductSkuSetStockServiceImpl implements IProductSkuSetStockService
             throw new ServiceException(ProductSkuSetStockExceptionEnum.ProductSkuSetStock_IS_NOT_EXISTS);
         }
         activityProductSkuStockBo.setId(originalProductSkuSetStock.getId());
+        if(originalProductSkuSetStock.getStock() < activityProductSkuStockBo.getStock()){
+            throw new ServiceException(String.format("原商品sku[%s]的库存不足",productStockFlowWaterBo.getSkuSetName()),ProductSkuSetStockExceptionEnum.ProductSkuSetStock_STOCK_NOT_ENOUGH.getCode());
+        }
         activityProductSkuStockBo.setStock(originalProductSkuSetStock.getStock() - activityProductSkuStockBo.getStock());
         activityProductSkuStockBo.setStockFlowWaterType(StockFlowWater.DROP_ACTIVITY_PRODUCT_STOCK);
         activityProductSkuStockBo.setActivityId(0L);
@@ -257,6 +260,9 @@ public class ProductSkuSetStockServiceImpl implements IProductSkuSetStockService
             }
 
             activityProductSkuStockBo.setId(originalProductSkuSetStock.getId());
+            if(changeValue>0 && originalProductSkuSetStock.getStock() < changeValue){
+                throw new ServiceException(String.format("原商品sku[%s]的库存不足",productStockFlowWaterBo.getSkuSetName()),ProductSkuSetStockExceptionEnum.ProductSkuSetStock_STOCK_NOT_ENOUGH.getCode());
+            }
             activityProductSkuStockBo.setStock(originalProductSkuSetStock.getStock() - changeValue);
             activityProductSkuStockBo.setStockFlowWaterType(changeValue > 0 ? StockFlowWater.EDIT_ACTIVITY_PRODUCT_CONTINUE_DROP_STOCK : StockFlowWater.EDIT_ACTIVITY_PRODUCT_RETURN_ORIGINAL_PRODUCT);
             activityProductSkuStockBo.setActivityId(0L);