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,6 +22,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO | ||
| 22 | import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillActivityMapper; | 22 | import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillActivityMapper; |
| 23 | import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillProductMapper; | 23 | import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillactivity.SeckillProductMapper; |
| 24 | import jakarta.annotation.Resource; | 24 | import jakarta.annotation.Resource; |
| 25 | +import lombok.extern.slf4j.Slf4j; | ||
| 25 | import org.springframework.stereotype.Service; | 26 | import org.springframework.stereotype.Service; |
| 26 | import org.springframework.transaction.annotation.Transactional; | 27 | import org.springframework.transaction.annotation.Transactional; |
| 27 | import org.springframework.validation.annotation.Validated; | 28 | import org.springframework.validation.annotation.Validated; |
| @@ -45,6 +46,7 @@ import static java.util.Collections.singletonList; | @@ -45,6 +46,7 @@ import static java.util.Collections.singletonList; | ||
| 45 | * | 46 | * |
| 46 | * @author halfninety | 47 | * @author halfninety |
| 47 | */ | 48 | */ |
| 49 | +@Slf4j | ||
| 48 | @Service | 50 | @Service |
| 49 | @Validated | 51 | @Validated |
| 50 | public class SeckillActivityServiceImpl implements SeckillActivityService { | 52 | public class SeckillActivityServiceImpl implements SeckillActivityService { |
| @@ -186,6 +188,11 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { | @@ -186,6 +188,11 @@ public class SeckillActivityServiceImpl implements SeckillActivityService { | ||
| 186 | @Transactional(rollbackFor = Exception.class) | 188 | @Transactional(rollbackFor = Exception.class) |
| 187 | public void updateSeckillStockIncr(Long id, Long skuId, Integer count) { | 189 | public void updateSeckillStockIncr(Long id, Long skuId, Integer count) { |
| 188 | SeckillProductDO product = seckillProductMapper.selectByActivityIdAndSkuId(id, skuId); | 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 | seckillProductMapper.updateStockIncr(product.getId(), count); | 197 | seckillProductMapper.updateStockIncr(product.getId(), count); |
| 191 | // 更新活动库存 | 198 | // 更新活动库存 |