瀏覽代碼

直播间库存检查

yuhongqi 2 周之前
父節點
當前提交
6f59158066
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

+ 5 - 2
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -3698,7 +3698,11 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
         if(!"1".equals(fsStoreProduct.getIsAudit()) ) return R.error("商品已下架,购买失败");
         if(liveOrder.getTotalNum() == null || StringUtils.isEmpty(liveOrder.getTotalNum())) liveOrder.setTotalNum("1");
         if(goods.getStock() == null) return R.error("直播间商品库存不足");
-        if(fsStoreProduct.getStock() < Integer.parseInt(liveOrder.getTotalNum()) || goods.getStock() < Integer.parseInt(liveOrder.getTotalNum())) return R.error("抱歉,这款商品已被抢光,暂时无库存~");
+        FsStoreProductAttrValueScrm attrValue = fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueById(liveOrder.getAttrValueId());
+        if(fsStoreProduct.getStock() < Integer.parseInt(liveOrder.getTotalNum()) || goods.getStock() < Integer.parseInt(liveOrder.getTotalNum()) || attrValue.getStock() < Integer.parseInt(liveOrder.getTotalNum())){
+            return R.error("抱歉,这款商品已被抢光,暂时无库存~");
+        }
+
 
         // 检查限购
         Long userId = Long.parseLong(liveOrder.getUserId());
@@ -3707,7 +3711,6 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
 
         // 使用 deStockIncSale 方法处理库存和销量
         deStockIncSale(liveOrder.getProductId(), liveOrder.getAttrValueId(), purchaseNum);
-        FsStoreProductAttrValueScrm attrValue = fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueById(liveOrder.getAttrValueId());
         // 更新直播间库存
         goods.setStock(goods.getStock()-Integer.parseInt(liveOrder.getTotalNum()));
         goods.setSales(goods.getSales()+Integer.parseInt(liveOrder.getTotalNum()));