From 822345ccbc0f0268376168d2a11338d955f03942 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 11 一月 2025 18:08:57 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java index 8e3e024..385dfad 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java @@ -90,6 +90,16 @@ AppUser appUser = appUserClient.getAppUserById(userid); vipId = appUser.getVipId(); } + SeckillActivityInfo activityInfo = this.getById(seckillActivityId); + if(null == activityInfo || activityInfo.getDelFlag() == 1){ + throw new RuntimeException("活动不存在"); + } + if(activityInfo.getIsShelves() == 0){ + throw new RuntimeException("活动已下架"); + } + if(!activityInfo.getVipIds().contains(vipId.toString())){ + throw new RuntimeException("权限不足"); + } SeckillActivityDetailVO seckillActivityDetailVO = seckillActivityInfoMapper.selectDetail(seckillActivityId, vipId); Integer goodsId = seckillActivityDetailVO.getGoodsId(); @@ -127,6 +137,12 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveSeckillActivityInfo(SeckillActivityInfo seckillActivityInfo) { + Integer goodId = seckillActivityInfo.getGoodId(); + long count = this.count(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, goodId).eq(SeckillActivityInfo::getDelFlag, 0) + .eq(SeckillActivityInfo::getIsShelves, 1).last(" and now() between start_time and end_time")); + if(0 < count){ + throw new RuntimeException("该秒杀商品已在其他秒杀活动中存在"); + } this.baseMapper.insert(seckillActivityInfo); List<GoodsSeckill> goodsSeckills = seckillActivityInfo.getGoodsSeckills(); for (GoodsSeckill goodsSeckill : goodsSeckills) { @@ -140,6 +156,12 @@ @Override @Transactional(rollbackFor = Exception.class) public void updateSeckillActivityInfo(SeckillActivityInfo seckillActivityInfo) { + Integer goodId = seckillActivityInfo.getGoodId(); + long count = this.count(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, goodId).eq(SeckillActivityInfo::getDelFlag, 0) + .eq(SeckillActivityInfo::getIsShelves, 1).last(" and now() between start_time and end_time")); + if(1 < count){ + throw new RuntimeException("该秒杀商品已在其他秒杀活动中存在"); + } this.baseMapper.updateById(seckillActivityInfo); goodsSeckillService.remove(new LambdaQueryWrapper<GoodsSeckill>().eq(GoodsSeckill::getSeckillActivityInfoId, seckillActivityInfo.getId())); List<GoodsSeckill> goodsSeckills = seckillActivityInfo.getGoodsSeckills(); -- Gitblit v1.7.1