浏览代码

库存数调整

liweifan 2 年之前
父节点
当前提交
9bdde80aa2

+ 13 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanRewardServiceImpl.java

@@ -85,8 +85,11 @@ public class ActivityPlanRewardServiceImpl extends ServiceImpl<ActivityPlanRewar
                                                 if (null == old) {
                                                     Integer stock = detail.getStock() - param.getRewardNum();
                                                     if (stock < 0) {
-                                                        throw new BizException("奖品库存不足");
+                                                        //库存不足,使用全部库存
+                                                        stock = 0;
+                                                        param.setRewardNum(detail.getStock());
                                                     }
+
                                                     save(param);
 
                                                     //入库存变更记录
@@ -101,24 +104,29 @@ public class ActivityPlanRewardServiceImpl extends ServiceImpl<ActivityPlanRewar
                                                     activityRewardService.updateById(detail);
                                                 } else {
                                                     param.setId(old.getId());
-                                                    updateById(param);
 
+                                                    //新增数(能为负)
                                                     Integer changeStock = param.getRewardNum() - old.getRewardNum();
                                                     if (changeStock == 0) {
                                                         return true;
                                                     }
 
+                                                    //调整后的库存
                                                     Integer stock = detail.getStock() - changeStock;
                                                     if (stock < 0) {
-                                                        throw new BizException("奖品库存不足");
+                                                        //库存不足,使用全部库存
+                                                        stock = 0;
+                                                        changeStock = detail.getStock();
                                                     }
 
+                                                    param.setRewardNum(param.getRewardNum() + changeStock);
+                                                    updateById(param);
                                                     //入库存变更记录
                                                     ActivityRewardChangeStock changeStockObj = new ActivityRewardChangeStock();
                                                     changeStockObj.setRewardId(param.getRewardId());
-                                                    changeStockObj.setStock(param.getRewardNum());
+                                                    changeStockObj.setStock(Math.abs(changeStock));
                                                     changeStockObj.setChangeType(
-                                                            detail.getStock() < stock ? InOrOutEnum.IN : InOrOutEnum.OUT);
+                                                            changeStock < 0 ? InOrOutEnum.IN : InOrOutEnum.OUT);
                                                     changeStockObj.setSource("ACTIVITY");
                                                     changeStockDao.insert(changeStockObj);