package com.ruoyi.order.service.impl.order;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.ruoyi.common.core.exception.ServiceException;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.order.domain.dto.AppBaseBathDto;
|
import com.ruoyi.order.domain.dto.AppShoppingCartAddDto;
|
import com.ruoyi.order.domain.dto.AppShoppingCartChangeDto;
|
import com.ruoyi.order.domain.pojo.goods.Goods;
|
import com.ruoyi.order.domain.pojo.order.ShoppingCart;
|
import com.ruoyi.order.mapper.order.ShoppingCartMapper;
|
import com.ruoyi.order.service.goods.GoodsService;
|
import com.ruoyi.order.service.order.ShoppingCartService;
|
import com.ruoyi.system.api.constant.AppErrorConstant;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
|
/**
|
* <p>
|
* 购物车 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@Service
|
public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, ShoppingCart> implements ShoppingCartService {
|
|
@Resource
|
private GoodsService goodsService;
|
|
@Resource
|
private ShoppingCartMapper shoppingCartMapper;
|
|
/**
|
* 添加购物车
|
* @param appShoppingCartAddDto
|
*/
|
@Override
|
public void addShoppingCart(AppShoppingCartAddDto appShoppingCartAddDto){
|
Long goodsId = appShoppingCartAddDto.getGoodsId();
|
Goods goods = goodsService.getById(goodsId);
|
if(goods.getGoodsStatus()!=1){
|
throw new ServiceException(AppErrorConstant.GOODS_DOWN);
|
}
|
LambdaQueryWrapper<ShoppingCart> queryWrapper = Wrappers.lambdaQuery();
|
queryWrapper.eq(ShoppingCart::getDelFlag, 0).eq(ShoppingCart::getGoodsId, goodsId);
|
ShoppingCart shoppingCart = this.getOne(queryWrapper);
|
if(shoppingCart==null){
|
shoppingCart = new ShoppingCart();
|
shoppingCart.setUserId(appShoppingCartAddDto.getUserId());
|
shoppingCart.setShopId(appShoppingCartAddDto.getShopId());
|
shoppingCart.setBuyNum(appShoppingCartAddDto.getBuyNum());
|
shoppingCart.setDelFlag(0);
|
shoppingCart.setCreateTime(new Date());
|
this.save(shoppingCart);
|
}else{
|
shoppingCart.setBuyNum(shoppingCart.getBuyNum()+appShoppingCartAddDto.getBuyNum());
|
shoppingCart.setUpdateTime(new Date());
|
this.saveOrUpdate(shoppingCart);
|
}
|
}
|
|
/**
|
* 修改购物车数量
|
* @param appShoppingCartChangeDto
|
*/
|
@Override
|
public void changeShoppingCart(AppShoppingCartChangeDto appShoppingCartChangeDto){
|
Long goodsId = appShoppingCartChangeDto.getGoodsId();
|
Goods goods = goodsService.getById(goodsId);
|
if(goods.getGoodsStatus()!=1){
|
throw new ServiceException(AppErrorConstant.GOODS_DOWN);
|
}
|
LambdaQueryWrapper<ShoppingCart> queryWrapper = Wrappers.lambdaQuery();
|
queryWrapper.eq(ShoppingCart::getDelFlag, 0).eq(ShoppingCart::getGoodsId, goodsId);
|
ShoppingCart shoppingCart = this.getOne(queryWrapper);
|
shoppingCart.setBuyNum(appShoppingCartChangeDto.getBuyNum());
|
shoppingCart.setUpdateTime(new Date());
|
this.saveOrUpdate(shoppingCart);
|
}
|
|
/**
|
* 删除购物车
|
* @param appBaseBathDto
|
*/
|
@Override
|
public void deleteShoppingCart(AppBaseBathDto appBaseBathDto){
|
String ids = appBaseBathDto.getIds();
|
shoppingCartMapper.deleteShoppingCartByIds(ids);
|
}
|
}
|