| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | @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); |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | }); |
| | | //设置返回参数 |
| | | // 设置返回参数 |
| | | comShopCart.setInvalidCartList(invalidCartList); |
| | | comShopCart.setCartList(cartList); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 购物车添加 |
| | | * @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("添加购物车失败"); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 购物车内商品数量修改 |
| | | * @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++; |
| | | } |
| | | } |