Przeglądaj źródła

【功能修复】商城:秒杀活动的活动排重校验不正确的问题

YunaiV 8 miesięcy temu
rodzic
commit
9ae3682b2d

+ 3 - 3
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java

@@ -31,9 +31,9 @@ public interface SeckillActivityMapper extends BaseMapperX<SeckillActivityDO> {
                 .orderByDesc(SeckillActivityDO::getId));
     }
 
-    default List<SeckillActivityDO> selectListByStatus(Integer status) {
-        return selectList(new LambdaQueryWrapperX<SeckillActivityDO>()
-                .eqIfPresent(SeckillActivityDO::getStatus, status));
+    default List<SeckillActivityDO> selectListBySpuIdAndStatus(Long spuId, Integer status) {
+        return selectList(SeckillActivityDO::getSpuId, spuId,
+                SeckillActivityDO::getStatus, status);
     }
 
     /**

+ 1 - 1
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/SeckillActivityServiceImpl.java

@@ -97,7 +97,7 @@ public class SeckillActivityServiceImpl implements SeckillActivityService {
         seckillConfigService.validateSeckillConfigExists(configIds);
 
         // 2.1 查询所有开启的秒杀活动
-        List<SeckillActivityDO> activityList = seckillActivityMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus());
+        List<SeckillActivityDO> activityList = seckillActivityMapper.selectListBySpuIdAndStatus(spuId, CommonStatusEnum.ENABLE.getStatus());
         if (activityId != null) { // 排除自己
             activityList.removeIf(item -> ObjectUtil.equal(item.getId(), activityId));
         }