|
@@ -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);
|
|
|
|