huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
@@ -1,5 +1,15 @@
package com.panzhihua.service_community.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -10,8 +20,10 @@
import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.shop.*;
import com.panzhihua.common.model.vos.shop.ComShopGoodsAttrVO;
import com.panzhihua.common.model.vos.shop.ComShopGoodsVO;
import com.panzhihua.common.model.vos.shop.PageShopStoreVO;
import com.panzhihua.common.model.vos.shop.ShopStoreVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
import com.panzhihua.service_community.dao.ComShopGoodsDAO;
@@ -22,16 +34,8 @@
import com.panzhihua.service_community.model.dos.ComShopStoreDO;
import com.panzhihua.service_community.service.ComShopOrderService;
import com.panzhihua.service_community.service.ComShopStoreService;
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.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.extern.slf4j.Slf4j;
/**
 * @auther lyq
@@ -40,7 +44,8 @@
 */
@Slf4j
@Service
public class ComShopStoreServiceImpl extends ServiceImpl<ComShopStoreDAO, ComShopStoreDO> implements ComShopStoreService {
public class ComShopStoreServiceImpl extends ServiceImpl<ComShopStoreDAO, ComShopStoreDO>
    implements ComShopStoreService {
    @Resource
    private ComShopGoodsDAO shopGoodsDAO;
@@ -50,10 +55,12 @@
    private ComShopOrderService orderService;
    @Resource
    private UserService userService;
    /**
     * 查询店铺列表
     *
     * @param pageComShopStoreDTO 请求参数
     * @param pageComShopStoreDTO
     *            请求参数
     * @return 店铺列表
     */
@@ -68,12 +75,9 @@
                notDoneOrderStatus.add(2);
                notDoneOrderStatus.add(3);
                notDoneOrderStatus.add(4);
                Integer orderCount = orderService.getBaseMapper()
                        .selectCount(new LambdaQueryWrapper<ComShopOrderDO>()
                                .eq(ComShopOrderDO::getStoreId, shopStoreVO.getId())
                                .eq(ComShopOrderDO::getDeleteStatus, 1)
                                .in(ComShopOrderDO::getStatus, notDoneOrderStatus)
                        );
                Integer orderCount = orderService.getBaseMapper().selectCount(
                    new LambdaQueryWrapper<ComShopOrderDO>().eq(ComShopOrderDO::getStoreId, shopStoreVO.getId())
                        .eq(ComShopOrderDO::getDeleteStatus, 1).in(ComShopOrderDO::getStatus, notDoneOrderStatus));
                if(orderCount==null || orderCount.intValue() <= 0){
                    shopStoreVO.setOrderDone(true);
                }else{
@@ -87,7 +91,8 @@
    /**
     * 查询店铺详情
     *
     * @param comShopStoreDTO 请求参数
     * @param comShopStoreDTO
     *            请求参数
     * @return 店铺详情
     */
    @Override
@@ -128,19 +133,23 @@
            return R.fail("数据为空!");
        }
        //判断店铺是否存在
        ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
                .eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus,ComShopStoreDO.deleteStatus.no));
        ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(
            new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
                .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
        if (oldComShopStoreDO != null) {
            return R.fail("商家已注册");
        }
//        //新增店铺先判断是否拥有已删除的店铺
//        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
//                .eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus,ComShopStoreDO.deleteStatus.yes));
        // .eq(ComShopStoreDO::getStoreAccount,
        // storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus,ComShopStoreDO.deleteStatus.yes));
//        if(comShopStoreDO != null){
//            //删除店铺规格信息
//            comShopGoodsAttrDAO.delete(new QueryWrapper<ComShopGoodsAttrDO>().lambda().eq(ComShopGoodsAttrDO::getStoreId,comShopStoreDO.getId()));
        // comShopGoodsAttrDAO.delete(new
        // QueryWrapper<ComShopGoodsAttrDO>().lambda().eq(ComShopGoodsAttrDO::getStoreId,comShopStoreDO.getId()));
//            //删除店铺商品
//            shopGoodsDAO.delete(new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId,comShopStoreDO.getId()));
        // shopGoodsDAO.delete(new
        // QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId,comShopStoreDO.getId()));
//            //删除关联的sysUser用户权限
//            this.baseMapper.deleteSysRoleByAccount(Constants.SHOP_ROLE_KEY + comShopStoreDO.getStoreAccount());
//            //删除关联的sysUser用户
@@ -157,8 +166,9 @@
    public R addStore(ShopStoreVO storeVO){
        //判断店铺是否存在
        ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
                .eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
        ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(
            new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
                .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
        if (oldComShopStoreDO != null) {
            return R.fail("商家账号已注册");
        }
@@ -171,13 +181,16 @@
            return R.fail("账号:" + storeVO.getStoreAccount() + "在系统用户中已存在");
        }
        //新增店铺先判断是否拥有已删除的店铺
        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
                .eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.yes));
        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(
            new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
                .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.yes));
        if (comShopStoreDO != null) {
            //删除店铺规格信息
            comShopGoodsAttrDAO.delete(new QueryWrapper<ComShopGoodsAttrDO>().lambda().eq(ComShopGoodsAttrDO::getStoreId, comShopStoreDO.getId()));
            comShopGoodsAttrDAO.delete(new QueryWrapper<ComShopGoodsAttrDO>().lambda()
                .eq(ComShopGoodsAttrDO::getStoreId, comShopStoreDO.getId()));
            //删除店铺商品
            shopGoodsDAO.delete(new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId, comShopStoreDO.getId()));
            shopGoodsDAO.delete(
                new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId, comShopStoreDO.getId()));
            //删除关联的sysUser用户权限
            this.baseMapper.deleteSysRoleByAccount(Constants.SHOP_ROLE_KEY + comShopStoreDO.getStoreAccount());
            //删除关联的sysUser用户
@@ -211,23 +224,23 @@
    @Override
    public R deleteStore(Long[] id) {
        LambdaQueryWrapper<ComShopStoreDO> query = new LambdaQueryWrapper<ComShopStoreDO>().in(ComShopStoreDO::getId, id);
        LambdaQueryWrapper<ComShopStoreDO> query =
            new LambdaQueryWrapper<ComShopStoreDO>().in(ComShopStoreDO::getId, id);
        List<ComShopStoreDO> comShopStoreDO = this.baseMapper.selectList(query);
        if(!comShopStoreDO.isEmpty()){
            for (ComShopStoreDO shopStoreDO:comShopStoreDO) {
                //判断店铺下是否拥有正常的商品
                List<ComShopGoodsDO> shopGoodsList = shopGoodsDAO.selectList(new QueryWrapper<ComShopGoodsDO>()
                        .lambda().eq(ComShopGoodsDO::getStoreId,shopStoreDO.getId())
                List<ComShopGoodsDO> shopGoodsList = shopGoodsDAO.selectList(
                    new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId, shopStoreDO.getId())
                        .eq(ComShopGoodsDO::getDeleteStatus,ComShopGoodsDO.deleteStatus.no)
                        .eq(ComShopGoodsDO::getStatus,ComShopGoodsDO.status.sell));
                if(!shopGoodsList.isEmpty()){//如果有正常商品则提示无法删除
                    return R.fail("店铺下有商品正在出售,无法删除店铺");
                }
                List<ComShopOrderDO> comShopOrderDOS = orderService.getBaseMapper().selectList(new LambdaQueryWrapper<ComShopOrderDO>()
                        .eq(ComShopOrderDO::getStoreId,shopStoreDO.getId()));
                List<ComShopOrderDO> comShopOrderDOS = orderService.getBaseMapper().selectList(
                    new LambdaQueryWrapper<ComShopOrderDO>().eq(ComShopOrderDO::getStoreId, shopStoreDO.getId()));
                List<ComShopOrderDO> filterOrder = comShopOrderDOS.stream()
                        .filter(order -> order.getStatus() < ComShopOrderDO.status.dpj)
                        .collect(Collectors.toList());
                    .filter(order -> order.getStatus() < ComShopOrderDO.status.dpj).collect(Collectors.toList());
                if(!filterOrder.isEmpty()){
                    return R.fail("该商家还有订单未完成,不能删除");
                }
@@ -260,7 +273,8 @@
    @Override
    public R getUserStoreInfo(Long userId) {
        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, userId));
        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
            .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, userId));
        if (comShopStoreDO == null) {
            return R.fail(500, "商铺不存在");
        }
@@ -273,7 +287,8 @@
    public R getUserStoreInfo(String account) {
        try {
            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfo(account+"_5");
            LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
            LoginUserInfoVO loginUserInfoVO =
                JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
            if(loginUserInfoVO==null){
                return R.fail(500, "该账号不存在");