huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
@@ -1,5 +1,13 @@
package com.panzhihua.service_community.service.impl;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
@@ -17,15 +25,8 @@
import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
import com.panzhihua.service_community.model.dos.ComShopStoreDO;
import com.panzhihua.service_community.service.ComShopCartService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
/**
 * @auther lyq
@@ -43,74 +44,76 @@
    @Resource
    private ComShopGoodsAttrDAO shopGoodsAttrDAO;
    /**
     * 根据用户id查询购物车列表
     * @param userId    用户id
     * @return  购物车列表
     *
     * @param userId
     *            用户id
     * @return 购物车列表
     */
    @Override
    public R shopCartList(Long userId){
        //返回参数
    public R shopCartList(Long userId) {
        // 返回参数
        ComShopCartListVO comShopCart = new ComShopCartListVO();
        //失效宝贝集合
        // 失效宝贝集合
        List<ComShopCartVO> invalidCartList = new ArrayList<>();
        //有效宝贝集合
        // 有效宝贝集合
        List<ComShopCartStoreVO> cartList = new ArrayList<>();
        List<ComShopCartDO> shopCartDOList = this.baseMapper.selectList(new QueryWrapper<ComShopCartDO>().eq("user_id",userId));
        if(!shopCartDOList.isEmpty()){
            shopCartDOList.forEach(shopCart->{
                //查询当前商品是否是有效商品
                ComShopGoodsDO  goodsDO = shopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>()
                        .eq("id",shopCart.getGoodsId()).eq("delete_status",ComShopGoodsDO.deleteStatus.no)
                        .eq("status",ComShopGoodsDO.status.sell));
                if(goodsDO == null){
        List<ComShopCartDO> shopCartDOList =
            this.baseMapper.selectList(new QueryWrapper<ComShopCartDO>().eq("user_id", userId));
        if (!shopCartDOList.isEmpty()) {
            shopCartDOList.forEach(shopCart -> {
                // 查询当前商品是否是有效商品
                ComShopGoodsDO goodsDO =
                    shopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>().eq("id", shopCart.getGoodsId())
                        .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell));
                if (goodsDO == null) {
                    ComShopCartVO invalidCart = new ComShopCartVO();
                    BeanUtils.copyProperties(shopCart,invalidCart);
                    BeanUtils.copyProperties(shopCart, invalidCart);
                    invalidCartList.add(invalidCart);
                    return;
                }
                //有效商品区分店铺
                if(cartList.isEmpty()){
                // 有效商品区分店铺
                if (cartList.isEmpty()) {
                    ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
                    //查询商品所属店铺
                    // 查询商品所属店铺
                    ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
                    if(shopStoreDO != null){
                    if (shopStoreDO != null) {
                        cartStoreVO.setStoreId(shopStoreDO.getId());
                        cartStoreVO.setStoreName(shopStoreDO.getName());
                        cartStoreVO.setStoreLogo(shopStoreDO.getLogo());
                    }
                    List<ComShopCartVO> cartsList = new ArrayList<>();
                    ComShopCartVO cartVO = new ComShopCartVO();
                    BeanUtils.copyProperties(shopCart,cartVO);
                    BeanUtils.copyProperties(shopCart, cartVO);
                    cartsList.add(cartVO);
                    cartStoreVO.setCartList(cartsList);
                    cartList.add(cartStoreVO);
                }else{
                } else {
                    boolean isOk = true;
                    for (ComShopCartStoreVO vo:cartList) {
                        if(vo.getStoreId().equals(goodsDO.getStoreId())){
                    for (ComShopCartStoreVO vo : cartList) {
                        if (vo.getStoreId().equals(goodsDO.getStoreId())) {
                            isOk = false;
                            ComShopCartVO cartVO = new ComShopCartVO();
                            BeanUtils.copyProperties(shopCart,cartVO);
                            BeanUtils.copyProperties(shopCart, cartVO);
                            vo.getCartList().add(cartVO);
                        }
                    }
                    if(isOk){
                    if (isOk) {
                        ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
                        //查询商品所属店铺
                        // 查询商品所属店铺
                        ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
                        if(shopStoreDO != null){
                        if (shopStoreDO != null) {
                            cartStoreVO.setStoreId(shopStoreDO.getId());
                            cartStoreVO.setStoreName(shopStoreDO.getName());
                            cartStoreVO.setStoreLogo(shopStoreDO.getLogo());
                        }
                        List<ComShopCartVO> cartsList = new ArrayList<>();
                        ComShopCartVO cartVO = new ComShopCartVO();
                        BeanUtils.copyProperties(shopCart,cartVO);
                        BeanUtils.copyProperties(shopCart, cartVO);
                        cartsList.add(cartVO);
                        cartStoreVO.setCartList(cartsList);
                        cartList.add(cartStoreVO);
@@ -118,9 +121,8 @@
                }
            });
            //设置返回参数
            // 设置返回参数
            comShopCart.setInvalidCartList(invalidCartList);
            comShopCart.setCartList(cartList);
        }
@@ -129,47 +131,50 @@
    /**
     * 购物车添加
     * @param comShopCartDTO    请求参数
     * @return  添加结果
     *
     * @param comShopCartDTO
     *            请求参数
     * @return 添加结果
     */
    @Override
    public R shopAddCart(ComShopCartDTO comShopCartDTO){
        //查询当前商品是否已经在购物车中
        ComShopCartDO shopCartDO = this.baseMapper.selectOne(new QueryWrapper<ComShopCartDO>().eq("user_id",comShopCartDTO.getUserId())
                .eq("goods_id",comShopCartDTO.getGoodsId()).eq("goods_attr_id",comShopCartDTO.getGoodsAttrId()));
        if(shopCartDO == null){//购物车表里未有该商品的记录
    public R shopAddCart(ComShopCartDTO comShopCartDTO) {
        // 查询当前商品是否已经在购物车中
        ComShopCartDO shopCartDO =
            this.baseMapper.selectOne(new QueryWrapper<ComShopCartDO>().eq("user_id", comShopCartDTO.getUserId())
                .eq("goods_id", comShopCartDTO.getGoodsId()).eq("goods_attr_id", comShopCartDTO.getGoodsAttrId()));
        if (shopCartDO == null) {// 购物车表里未有该商品的记录
            shopCartDO = new ComShopCartDO();
            shopCartDO.setUserId(comShopCartDTO.getUserId());
            shopCartDO.setAmount(comShopCartDTO.getNumber());
            //查询商品
            // 查询商品
            ComShopGoodsDO shopGoodsDO = shopGoodsDAO.selectById(comShopCartDTO.getGoodsId());
            if(shopGoodsDO == null){
            if (shopGoodsDO == null) {
                return R.fail("未查询到商品信息");
            }
            shopCartDO.setGoodsName(shopGoodsDO.getName());
            shopCartDO.setGoodsId(shopGoodsDO.getId());
            shopCartDO.setStoreId(shopGoodsDO.getStoreId());
            //查询商品规格
            // 查询商品规格
            ComShopGoodsAttrDO shopGoodsAttrDO = shopGoodsAttrDAO.selectById(comShopCartDTO.getGoodsAttrId());
            if(shopGoodsAttrDO == null){
            if (shopGoodsAttrDO == null) {
                return R.fail("未查询到商品规格");
            }
            shopCartDO.setGoodsAttrId(shopGoodsAttrDO.getId());
            shopCartDO.setGoodsAttr(shopGoodsAttrDO.getGoodsAttr());
            shopCartDO.setGoodsAttrPic(shopGoodsAttrDO.getAttrPic());
            shopCartDO.setPrice(shopGoodsAttrDO.getPrice());
            //执行添加操作
            if(this.baseMapper.insert(shopCartDO) > 0){
            // 执行添加操作
            if (this.baseMapper.insert(shopCartDO) > 0) {
                return R.ok();
            }else{
            } else {
                return R.fail("添加购物车失败");
            }
        }else{//购物车已有该商品
        } else {// 购物车已有该商品
            shopCartDO.setAmount(shopCartDO.getAmount() + comShopCartDTO.getNumber());
            //执行修改操作
            if(this.baseMapper.updateById(shopCartDO) > 0){
            // 执行修改操作
            if (this.baseMapper.updateById(shopCartDO) > 0) {
                return R.ok();
            }else{
            } else {
                return R.fail("添加购物车失败");
            }
        }
@@ -177,55 +182,62 @@
    /**
     * 购物车内商品数量修改
     * @param shopEditNubCartDTO    请求参数
     * @return  修改结果
     *
     * @param shopEditNubCartDTO
     *            请求参数
     * @return 修改结果
     */
    @Override
    public R shopEditNubCart(ComShopEditNubCartDTO shopEditNubCartDTO){
        //查询购物车记录
    public R shopEditNubCart(ComShopEditNubCartDTO shopEditNubCartDTO) {
        // 查询购物车记录
        ComShopCartDO shopCartDO = this.baseMapper.selectById(shopEditNubCartDTO.getCartId());
        if(shopCartDO == null){
        if (shopCartDO == null) {
            return R.fail("未查询到购物车记录");
        }
        shopCartDO.setAmount(shopEditNubCartDTO.getNumber());
        //执行修改操作
        if(this.baseMapper.updateById(shopCartDO) > 0){
        // 执行修改操作
        if (this.baseMapper.updateById(shopCartDO) > 0) {
            return R.ok();
        }else{
        } else {
            return R.fail("修改失败");
        }
    }
    /**
     * 删除购物车记录
     * @param Ids   购物车id集合
     * @return  删除结果
     *
     * @param Ids
     *            购物车id集合
     * @return 删除结果
     */
    public R shopDelCart(List<Long> Ids){
        if(this.baseMapper.deleteBatchIds(Ids) > 0){
    public R shopDelCart(List<Long> Ids) {
        if (this.baseMapper.deleteBatchIds(Ids) > 0) {
            return R.ok();
        }else{
        } else {
            return R.fail("修改失败");
        }
    }
    /**
     * 查询用户购物车商品数量
     * @param userId    用户id
     * @return  用户购物车商品数量
     *
     * @param userId
     *            用户id
     * @return 用户购物车商品数量
     */
    public R shopCartUserTotal(Long userId){
    public R shopCartUserTotal(Long userId) {
        int goodsNum = 0;
        //查询用户购物车所有商品集合
        List<ComShopCartDO> shopCartDOList = this.baseMapper.selectList(new QueryWrapper<ComShopCartDO>().eq("user_id",userId));
        if(!shopCartDOList.isEmpty()){
            for (ComShopCartDO cartDO:shopCartDOList) {
                //查询当前商品是否是有效商品
                ComShopGoodsDO  goodsDO = shopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>()
                        .eq("id",cartDO.getGoodsId()).eq("delete_status",ComShopGoodsDO.deleteStatus.no)
                        .eq("status",ComShopGoodsDO.status.sell));
        // 查询用户购物车所有商品集合
        List<ComShopCartDO> shopCartDOList =
            this.baseMapper.selectList(new QueryWrapper<ComShopCartDO>().eq("user_id", userId));
        if (!shopCartDOList.isEmpty()) {
            for (ComShopCartDO cartDO : shopCartDOList) {
                // 查询当前商品是否是有效商品
                ComShopGoodsDO goodsDO =
                    shopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>().eq("id", cartDO.getGoodsId())
                        .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell));
                if(goodsDO != null){
                if (goodsDO != null) {
                    goodsNum++;
                }
            }