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