From e440d24181806426634cad9e5688d906e175080d Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 31 Dec 2024 10:58:04 +0800 Subject: [PATCH] refactor(mall): 优化优惠券相关操作的代码结构和逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 52 ++++++++++++++++++++++++++++------------------------ 1 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java index 66b9a5d..32b898a 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java @@ -852,11 +852,13 @@ @Override public FebsResponse couponRuleAdd(CouponRuleAddDto couponRuleAddDto) { String name = couponRuleAddDto.getName(); - QueryWrapper<MallGoodsCoupon> objectQueryWrapper = new QueryWrapper<>(); - objectQueryWrapper.eq("name",name); - List<MallGoodsCoupon> mallGoodsCoupons = mallGoodsCouponMapper.selectList(objectQueryWrapper); + List<MallGoodsCoupon> mallGoodsCoupons = mallGoodsCouponMapper.selectList( + new LambdaQueryWrapper<MallGoodsCoupon>() + .select(MallGoodsCoupon::getId) + .eq(MallGoodsCoupon::getName,name) + ); if(CollUtil.isNotEmpty(mallGoodsCoupons)){ - return new FebsResponse().fail().message("名称不能重复"); + return new FebsResponse().fail().message("优惠卷名称重复了"); } MallGoodsCoupon mallGoodsCoupon = new MallGoodsCoupon(); @@ -868,17 +870,18 @@ mallGoodsCouponMapper.insert(mallGoodsCoupon); Long couponId = mallGoodsCoupon.getId(); - QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); - objectQueryWrapperCoupon.eq("coupon_id",couponId); - List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); - if(CollUtil.isNotEmpty(couponGoodsList)){ - for(CouponGoods couponGoods : couponGoodsList){ - couponGoodsMapper.deleteById(couponGoods); - } + // 先判断是否存在关联商品,再进行查询和删除 + if (CollUtil.isNotEmpty(couponGoodsMapper.selectList( + new LambdaQueryWrapper<CouponGoods>() + .select(CouponGoods::getId) + .eq(CouponGoods::getCouponId, couponId)))) { + couponGoodsMapper.delete(new LambdaQueryWrapper<CouponGoods>().eq(CouponGoods::getCouponId, couponId)); } - if(CollUtil.isNotEmpty(couponRuleAddDto.getGoodsIds())){ - List<Long> goodsIds = couponRuleAddDto.getGoodsIds(); - for(Long goodsId : goodsIds){ + + // 处理 goodsIds 为 null 或空的情况 + List<Long> goodsIds = couponRuleAddDto.getGoodsIds(); + if (CollUtil.isNotEmpty(goodsIds)) { + for (Long goodsId : goodsIds) { CouponGoods couponGoods = new CouponGoods(); couponGoods.setGoodsId(goodsId); couponGoods.setCouponId(couponId); @@ -951,17 +954,18 @@ mallGoodsCouponMapper.updateById(mallGoodsCoupon); Long couponId = mallGoodsCoupon.getId(); - QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); - objectQueryWrapperCoupon.eq("coupon_id",couponId); - List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); - if(CollUtil.isNotEmpty(couponGoodsList)){ - for(CouponGoods couponGoods : couponGoodsList){ - couponGoodsMapper.deleteById(couponGoods); - } + // 先判断是否存在关联商品,再进行查询和删除 + if (CollUtil.isNotEmpty(couponGoodsMapper.selectList( + new LambdaQueryWrapper<CouponGoods>() + .select(CouponGoods::getId) + .eq(CouponGoods::getCouponId, couponId)))) { + couponGoodsMapper.delete(new LambdaQueryWrapper<CouponGoods>().eq(CouponGoods::getCouponId, couponId)); } - if(CollUtil.isNotEmpty(adminMallGoodsCouponVo.getGoodsIds())){ - List<Long> goodsIds = adminMallGoodsCouponVo.getGoodsIds(); - for(Long goodsId : goodsIds){ + + // 处理 goodsIds 为 null 或空的情况 + List<Long> goodsIds = adminMallGoodsCouponVo.getGoodsIds(); + if (CollUtil.isNotEmpty(goodsIds)) { + for (Long goodsId : goodsIds) { CouponGoods couponGoods = new CouponGoods(); couponGoods.setGoodsId(goodsId); couponGoods.setCouponId(couponId); -- Gitblit v1.9.1