From f721ee13dc5f95f607bb25b09f73cae6a7123ed9 Mon Sep 17 00:00:00 2001
From: DESKTOP-71BH0QO\L、ming <172680469@qq.com>
Date: 星期六, 17 四月 2021 17:56:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java |  191 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 191 insertions(+), 0 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
index 087ec2f..3f7cfa9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
@@ -1,11 +1,31 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopCartListVO;
+import com.panzhihua.common.model.vos.shop.ComShopCartStoreVO;
+import com.panzhihua.common.model.vos.shop.ComShopCartVO;
 import com.panzhihua.service_community.dao.ComShopCartDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsDAO;
+import com.panzhihua.service_community.dao.ComShopStoreDAO;
 import com.panzhihua.service_community.model.dos.ComShopCartDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+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;
 
 /**
  * @auther lyq
@@ -16,4 +36,175 @@
 @Service
 public class ComShopCartServiceImpl extends ServiceImpl<ComShopCartDAO, ComShopCartDO> implements ComShopCartService {
 
+    @Resource
+    private ComShopGoodsDAO shopGoodsDAO;
+    @Resource
+    private ComShopStoreDAO shopStoreDAO;
+    @Resource
+    private ComShopGoodsAttrDAO shopGoodsAttrDAO;
+
+
+    /**
+     * 根据用户id查询购物车列表
+     * @param userId    用户id
+     * @return  购物车列表
+     */
+    @Override
+    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){
+                    ComShopCartVO invalidCart = new ComShopCartVO();
+                    BeanUtils.copyProperties(shopCart,invalidCart);
+                    invalidCartList.add(invalidCart);
+                }
+
+                //有效商品区分店铺
+                if(cartList.isEmpty()){
+                    ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
+                    //查询商品所属店铺
+                    ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+                    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);
+                    cartsList.add(cartVO);
+                    cartStoreVO.setCartList(cartsList);
+                    cartList.add(cartStoreVO);
+                }else{
+                    boolean isOk = true;
+                    for (ComShopCartStoreVO vo:cartList) {
+                        if(vo.getStoreId().equals(goodsDO.getStoreId())){
+                            isOk = false;
+                            ComShopCartVO cartVO = new ComShopCartVO();
+                            BeanUtils.copyProperties(shopCart,cartVO);
+                            vo.getCartList().add(cartVO);
+                        }
+                    }
+
+                    if(isOk){
+                        ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
+                        //查询商品所属店铺
+                        ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+                        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);
+                        cartsList.add(cartVO);
+                        cartStoreVO.setCartList(cartsList);
+                        cartList.add(cartStoreVO);
+                    }
+
+                }
+
+
+            });
+            //设置返回参数
+            comShopCart.setInvalidCartList(invalidCartList);
+            comShopCart.setCartList(cartList);
+        }
+        return R.ok(comShopCart);
+    }
+
+    /**
+     * 购物车添加
+     * @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){//购物车表里未有该商品的记录
+            shopCartDO = new ComShopCartDO();
+            shopCartDO.setUserId(comShopCartDTO.getUserId());
+            shopCartDO.setAmount(comShopCartDTO.getNumber());
+            //查询商品
+            ComShopGoodsDO shopGoodsDO = shopGoodsDAO.selectById(comShopCartDTO.getGoodsId());
+            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){
+                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){
+                return R.ok();
+            }else{
+                return R.fail("添加购物车失败");
+            }
+        }else{//购物车已有该商品
+            shopCartDO.setAmount(shopCartDO.getAmount() + comShopCartDTO.getNumber());
+            //执行修改操作
+            if(this.baseMapper.updateById(shopCartDO) > 0){
+                return R.ok();
+            }else{
+                return R.fail("添加购物车失败");
+            }
+        }
+    }
+
+    /**
+     * 购物车内商品数量修改
+     * @param shopEditNubCartDTO    请求参数
+     * @return  修改结果
+     */
+    @Override
+    public R shopEditNubCart(ComShopEditNubCartDTO shopEditNubCartDTO){
+        //查询购物车记录
+        ComShopCartDO shopCartDO = this.baseMapper.selectById(shopEditNubCartDTO.getCartId());
+        if(shopCartDO == null){
+            return R.fail("未查询到购物车记录");
+        }
+        shopCartDO.setAmount(shopEditNubCartDTO.getNumber());
+        //执行修改操作
+        if(this.baseMapper.updateById(shopCartDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail("修改失败");
+        }
+    }
+
+    /**
+     * 删除购物车记录
+     * @param Ids   购物车id集合
+     * @return  删除结果
+     */
+    public R shopDelCart(List<Long> Ids){
+        if(this.baseMapper.deleteBatchIds(Ids) > 0){
+            return R.ok();
+        }else{
+            return R.fail("修改失败");
+        }
+    }
 }

--
Gitblit v1.7.1