修复更新秒杀活动时间,秒杀活动商品更新数据问题

This commit is contained in:
paulGao 2022-03-03 11:22:20 +08:00
parent 0d5f871da7
commit 66b2f1f55d
2 changed files with 14 additions and 6 deletions

View File

@ -235,7 +235,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, Sec
*
* @param seckillId 秒杀活动id
* @param skuId 商品skuId
* @param saleNum 库存
* @param saleNum 库存
*/
@Override
public void updateSeckillApplySaleNum(String seckillId, String skuId, Integer saleNum) {
@ -258,7 +258,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, Sec
List<PromotionGoods> promotionGoodsList = new ArrayList<>();
LambdaQueryWrapper<SeckillApply> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SeckillApply::getSeckillId, seckill.getId());
List<SeckillApply> list = this.list(queryWrapper);
List<SeckillApply> list = this.list(queryWrapper).stream().filter(i -> i.getTimeLine() != null && seckill.getHours().contains(i.getTimeLine().toString())).collect(Collectors.toList());
for (SeckillApply seckillApply : list) {
//获取参与活动的商品信息
GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(seckillApply.getSkuId());
@ -270,13 +270,20 @@ public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, Sec
if (!promotionGoodsList.isEmpty()) {
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
searchParams.setPromotionType(PromotionTypeEnum.SECKILL.name());
searchParams.setSkuIds(promotionGoodsList.stream().map(PromotionGoods::getSkuId).collect(Collectors.toList()));
searchParams.setPromotionId(seckill.getId());
promotionGoodsService.deletePromotionGoods(searchParams);
//初始化促销商品
PromotionTools.promotionGoodsInit(promotionGoodsList, seckill, PromotionTypeEnum.SECKILL);
result = promotionGoodsService.saveBatch(promotionGoodsList);
List<PromotionGoods> promotionGoods = PromotionTools.promotionGoodsInit(promotionGoodsList, seckill, PromotionTypeEnum.SECKILL);
result = promotionGoodsService.saveBatch(promotionGoods);
this.seckillService.updateEsGoodsSeckill(seckill, list);
}
LambdaQueryWrapper<SeckillApply> deleteWrapper = new LambdaQueryWrapper<>();
deleteWrapper.eq(SeckillApply::getSeckillId, seckill.getId());
deleteWrapper.notIn(SeckillApply::getSkuId, promotionGoodsList.stream().map(PromotionGoods::getSkuId).collect(Collectors.toList()));
this.remove(deleteWrapper);
seckillService.updateSeckillGoodsNum(seckill.getId());
return result;
}

View File

@ -144,9 +144,10 @@ public class SeckillServiceImpl extends AbstractPromotionsServiceImpl<SeckillMap
* @return 是否更新成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updatePromotions(Seckill promotions) {
seckillApplyService.updateSeckillApplyTime(promotions);
return super.updatePromotions(promotions);
return this.saveOrUpdate(promotions);
}
/**