From e7f03acfa5ee4ad4fd6d1ee9e9ae9a5655488f6d Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期二, 09 十一月 2021 17:04:46 +0800
Subject: [PATCH] 1109修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java |  238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 233 insertions(+), 5 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..8cd2187 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,32 @@
 package com.panzhihua.service_community.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.panzhihua.service_community.dao.ComShopCartDAO;
-import com.panzhihua.service_community.model.dos.ComShopCartDO;
-import com.panzhihua.service_community.service.ComShopCartService;
-import lombok.extern.slf4j.Slf4j;
+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;
+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;
 
 /**
  * @auther lyq
@@ -16,4 +37,211 @@
 @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);
+                    return;
+                }
+
+                // 有效商品区分店铺
+                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("修改失败");
+        }
+    }
+
+    /**
+     * 查询用户购物车商品数量
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户购物车商品数量
+     */
+    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));
+
+                if (goodsDO != null) {
+                    goodsNum++;
+                }
+            }
+        }
+        return R.ok(goodsNum);
+    }
 }

--
Gitblit v1.7.1