From 2fd7075278ae5fc451fe0eb39a84c898f26c21f6 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期五, 13 八月 2021 22:21:33 +0800
Subject: [PATCH] 随手拍改版
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 216 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..02d13dc 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,200 @@
@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