From ed2347b6f5b1ed22bfbda7191508cea067b93048 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Wed, 24 Jan 2024 20:43:52 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 43 insertions(+), 10 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 73f3c5a..2629f7b 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,11 +32,15 @@ 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); } @@ -40,22 +48,47 @@ @Override @Transactional(rollbackFor = Exception.class) public void addGoodsToCart(List<AddCartDto> addCartDtoList) { + Long memberId = LoginUserUtil.getLoginUser().getId(); for (AddCartDto addCartDto : addCartDtoList) { - MallGoodsSku sku = mallGoodsSkuMapper.selectById(addCartDto.getSkuId()); + Long goodsId = null; + Long skuId = null; + Long styleId = null; + MallShoppingCart cartGoods = null; + if (addCartDto.getType() == 1) { + MallGoodsSku sku = mallGoodsSkuMapper.selectById(addCartDto.getSkuId()); - if (sku == null) { - throw new FebsException("sku不存在"); + 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); } - Long memberId = LoginUserUtil.getLoginUser().getId(); - 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.setGoodsId(goodsId); + cartGoods.setSkuId(skuId); + cartGoods.setStyleId(styleId); cartGoods.setCnt(addCartDto.getCnt()); cartGoods.setMemberId(memberId); + cartGoods.setType(addCartDto.getType()); this.baseMapper.insert(cartGoods); } else { -- Gitblit v1.9.1