From 7436fc4a44b9f2677b3e3380f2cd2e5d841a6832 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 29 Apr 2025 15:10:01 +0800 Subject: [PATCH] feat(mall): 添加票据状态字段并更新相关服务 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java | 81 ++++++++++++++++++++++++++++++---------- 1 files changed, 60 insertions(+), 21 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java index ad848b1..ad51eb4 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java @@ -1,15 +1,19 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.common.exception.GeneratorException; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.mall.conversion.MallShoppingCartConversion; import cc.mrbird.febs.mall.dto.AddCartDto; +import cc.mrbird.febs.mall.entity.MallGoods; import cc.mrbird.febs.mall.entity.MallGoodsSku; import cc.mrbird.febs.mall.entity.MallShoppingCart; +import cc.mrbird.febs.mall.mapper.MallGoodsMapper; import cc.mrbird.febs.mall.mapper.MallGoodsSkuMapper; import cc.mrbird.febs.mall.mapper.MallShoppingCartMapper; import cc.mrbird.febs.mall.service.IApiMallShoppingCartService; import cc.mrbird.febs.mall.vo.ShoppingCartGoodsVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -28,39 +32,74 @@ public class ApiMallShoppingCartServiceImpl extends ServiceImpl<MallShoppingCartMapper, MallShoppingCart> implements IApiMallShoppingCartService { private final MallGoodsSkuMapper mallGoodsSkuMapper; + private final MallGoodsMapper mallGoodsMapper; @Override - public List<ShoppingCartGoodsVo> findCartGoodsList() { + public List<ShoppingCartGoodsVo> findCartGoodsList(Integer type) { + if (type == null) { + type = 1; + } Long memberId = LoginUserUtil.getLoginUser().getId(); - List<MallShoppingCart> carts = this.baseMapper.selectCartGoodsList(memberId); + List<MallShoppingCart> carts = this.baseMapper.selectCartGoodsList(memberId, type); return MallShoppingCartConversion.INSTANCE.entityListToVoList(carts); } @Override @Transactional(rollbackFor = Exception.class) - public void addGoodsToCart(AddCartDto addCartDto) { - MallGoodsSku sku = mallGoodsSkuMapper.selectById(addCartDto.getSkuId()); - - if (sku == null) { - throw new FebsException("sku不存在"); - } - + public void addGoodsToCart(List<AddCartDto> addCartDtoList) { Long memberId = LoginUserUtil.getLoginUser().getId(); + for (AddCartDto addCartDto : addCartDtoList) { + Long goodsId = null; + Long skuId = null; + Long styleId = null; + MallShoppingCart cartGoods = null; - MallShoppingCart cartGoods = this.baseMapper.selectCartGoodsBySkuId(sku.getId(), memberId); - if (cartGoods == null) { - cartGoods = new MallShoppingCart(); - cartGoods.setGoodsId(sku.getGoodsId()); - cartGoods.setSkuId(sku.getId()); - cartGoods.setStyleId(sku.getStyleId()); - cartGoods.setCnt(addCartDto.getCnt()); - cartGoods.setMemberId(memberId); + if (addCartDto.getType() == null) { + addCartDto.setType(1); + } - this.baseMapper.insert(cartGoods); - } else { - cartGoods.setCnt(cartGoods.getCnt() + addCartDto.getCnt()); - this.baseMapper.updateById(cartGoods); + if (addCartDto.getType() == 1) { + MallGoodsSku sku = mallGoodsSkuMapper.selectById(addCartDto.getSkuId()); + + if (sku == null) { + throw new FebsException("sku不存在"); + } + + goodsId = sku.getGoodsId(); + skuId = sku.getId(); + styleId = sku.getStyleId(); + + cartGoods = this.baseMapper.selectCartGoodsBySkuId(addCartDto.getSkuId(), memberId); + } else { + MallGoods mallGoods = mallGoodsMapper.selectById(addCartDto.getSkuId()); + if (mallGoods == null) { + throw new FebsException("积分商品不存在"); + } + + goodsId = mallGoods.getId(); + + LambdaQueryWrapper<MallShoppingCart> cartQuery = new LambdaQueryWrapper<>(); + cartQuery.eq(MallShoppingCart::getGoodsId, goodsId) + .eq(MallShoppingCart::getMemberId, memberId) + .last("limit 1"); + cartGoods = this.baseMapper.selectOne(cartQuery); + } + + if (cartGoods == null) { + cartGoods = new MallShoppingCart(); + cartGoods.setGoodsId(goodsId); + cartGoods.setSkuId(skuId); + cartGoods.setStyleId(styleId); + cartGoods.setCnt(addCartDto.getCnt()); + cartGoods.setMemberId(memberId); + cartGoods.setType(addCartDto.getType()); + + this.baseMapper.insert(cartGoods); + } else { + cartGoods.setCnt(cartGoods.getCnt() + addCartDto.getCnt()); + this.baseMapper.updateById(cartGoods); + } } } } -- Gitblit v1.9.1