| package cc.mrbird.febs.mall.service.impl; | 
|   | 
| import cc.mrbird.febs.common.exception.FebsException; | 
| 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.MallGoodsSku; | 
| import cc.mrbird.febs.mall.entity.MallShoppingCart; | 
| 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.extension.service.impl.ServiceImpl; | 
| import lombok.RequiredArgsConstructor; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.util.List; | 
|   | 
| /** | 
|  * @author wzy | 
|  * @date 2021-09-17 | 
|  **/ | 
| @Slf4j | 
| @Service | 
| @RequiredArgsConstructor | 
| public class ApiMallShoppingCartServiceImpl extends ServiceImpl<MallShoppingCartMapper, MallShoppingCart> implements IApiMallShoppingCartService { | 
|   | 
|     private final MallGoodsSkuMapper mallGoodsSkuMapper; | 
|   | 
|     @Override | 
|     public List<ShoppingCartGoodsVo> findCartGoodsList() { | 
|         Long memberId = LoginUserUtil.getLoginUser().getId(); | 
|         List<MallShoppingCart> carts = this.baseMapper.selectCartGoodsList(memberId); | 
|   | 
|         return MallShoppingCartConversion.INSTANCE.entityListToVoList(carts); | 
|     } | 
|   | 
|     @Override | 
|     @Transactional(rollbackFor = Exception.class) | 
|     public void addGoodsToCart(List<AddCartDto> addCartDtoList) { | 
|         for (AddCartDto addCartDto : addCartDtoList) { | 
|             MallGoodsSku sku = mallGoodsSkuMapper.selectById(addCartDto.getSkuId()); | 
|   | 
|             if (sku == null) { | 
|                 throw new FebsException("sku不存在"); | 
|             } | 
|             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.setCnt(addCartDto.getCnt()); | 
|                 cartGoods.setMemberId(memberId); | 
|   | 
|                 this.baseMapper.insert(cartGoods); | 
|             } else { | 
|                 cartGoods.setCnt(cartGoods.getCnt() + addCartDto.getCnt()); | 
|                 this.baseMapper.updateById(cartGoods); | 
|             } | 
|         } | 
|     } | 
| } |