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 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
|
public void addGoodsToCart(AddCartDto addCartDto) {
|
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);
|
}
|
}
|
}
|