Commit 06ffce77c8de083fa63a1fcd4469247d0ef2ae96
Committed by
GitHub
Merge pull request #1266 from dadiyang/fix/seckill-stock-incr-deleted-activity
[BUG] 商城秒杀:取消「已删除秒杀活动」下的订单必报系统异常
Showing
1 changed file
with
7 additions
and
0 deletions
yudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/SeckillActivityServiceImpl.java
| ... | ... | @@ -22,6 +22,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO |
| 22 | 22 | import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillActivityMapper; |
| 23 | 23 | import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillProductMapper; |
| 24 | 24 | import jakarta.annotation.Resource; |
| 25 | +import lombok.extern.slf4j.Slf4j; | |
| 25 | 26 | import org.springframework.stereotype.Service; |
| 26 | 27 | import org.springframework.transaction.annotation.Transactional; |
| 27 | 28 | import org.springframework.validation.annotation.Validated; |
| ... | ... | @@ -45,6 +46,7 @@ import static java.util.Collections.singletonList; |
| 45 | 46 | * |
| 46 | 47 | * @author halfninety |
| 47 | 48 | */ |
| 49 | +@Slf4j | |
| 48 | 50 | @Service |
| 49 | 51 | @Validated |
| 50 | 52 | public class SeckillActivityServiceImpl implements SeckillActivityService { |
| ... | ... | @@ -186,6 +188,11 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { |
| 186 | 188 | @Transactional(rollbackFor = Exception.class) |
| 187 | 189 | public void updateSeckillStockIncr(Long id, Long skuId, Integer count) { |
| 188 | 190 | SeckillProductDO product = seckillProductMapper.selectByActivityIdAndSkuId(id, skuId); |
| 191 | + if (product == null) { | |
| 192 | + // 秒杀活动已删除时,库存已无回写对象;记日志并跳过,不阻断订单取消主流程 | |
| 193 | + log.warn("[updateSeckillStockIncr][秒杀活动({}) sku({}) 的商品配置不存在(活动可能已删除),跳过库存回写]", id, skuId); | |
| 194 | + return; | |
| 195 | + } | |
| 189 | 196 | // 更新活动商品库存 |
| 190 | 197 | seckillProductMapper.updateStockIncr(product.getId(), count); |
| 191 | 198 | // 更新活动库存 | ... | ... |