huanghongfa
2021-08-21 2e64c232ab6b51b2cecf1ee96e1e9b709234f326
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
@@ -15,7 +15,6 @@
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
import com.panzhihua.service_community.dao.ComShopGoodsDAO;
import com.panzhihua.common.model.vos.shop.PageShopStoreVO;
import com.panzhihua.service_community.dao.ComShopStoreDAO;
import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
@@ -28,7 +27,9 @@
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;
@@ -45,6 +46,10 @@
    private ComShopGoodsDAO shopGoodsDAO;
    @Resource
    private ComShopGoodsAttrDAO comShopGoodsAttrDAO;
    @Resource
    private ComShopOrderService orderService;
    @Resource
    private UserService userService;
    /**
     * 查询店铺列表
     *
@@ -56,13 +61,28 @@
    public R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO) {
        Page page = new Page<>(pageComShopStoreDTO.getPageNum(), pageComShopStoreDTO.getPageSize());
        IPage<PageShopStoreVO> comShopStoreVOIPage = this.baseMapper.pageShopStore(page, pageComShopStoreDTO);
        if(comShopStoreVOIPage!=null){
            Optional.ofNullable(comShopStoreVOIPage.getRecords()).orElse(new ArrayList<>()).forEach(shopStoreVO ->{
                List<Integer> notDoneOrderStatus = new ArrayList<>();
                notDoneOrderStatus.add(1);
                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)
                        );
                if(orderCount==null || orderCount.intValue() <= 0){
                    shopStoreVO.setOrderDone(true);
                }else{
                    shopStoreVO.setOrderDone(false);
                }
            });
        }
        return R.ok(comShopStoreVOIPage);
    }
    @Resource
    private UserService userService;
    @Resource
    private ComShopOrderService orderService;
    /**
     * 查询店铺详情
@@ -74,7 +94,8 @@
    public R shopStoreDetail(PageComShopStoreDTO comShopStoreDTO) {
        //查询店铺
        ComShopStoreDO storeDO = this.baseMapper.selectById(comShopStoreDTO.getStoreId());
        if (storeDO == null) {
        boolean storeDeleted = storeDO!=null && 2==storeDO.getDeleteStatus();
        if (storeDO == null || storeDeleted) {
            return R.fail(401, "店铺不存在");
        }
        if (storeDO.getStatus().equals(ComShopStoreDO.status.no)) {
@@ -137,18 +158,26 @@
    public R addStore(ShopStoreVO storeVO){
        //判断店铺是否存在
        ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
                .eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus,ComShopStoreDO.deleteStatus.no));
                .eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
        if (oldComShopStoreDO != null) {
            return R.fail("商家账号已注册");
        }
        int reasonable1 = this.baseMapper.reasonableUserByPhone(storeVO.getPhone());
        int reasonable2 = this.baseMapper.reasonableUserByAccount(storeVO.getStoreAccount());
        if (reasonable1 > 0) {
            return R.fail("手机号:" + storeVO.getPhone() + "在系统用户中已存在");
        }
        if (reasonable2 > 0) {
            return R.fail("账号:" + storeVO.getStoreAccount() + "在系统用户中已存在");
        }
        //新增店铺先判断是否拥有已删除的店铺
        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
                .eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus,ComShopStoreDO.deleteStatus.yes));
        if(comShopStoreDO != null){
                .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用户
@@ -200,7 +229,7 @@
                        .filter(order -> order.getStatus() < ComShopOrderDO.status.dpj)
                        .collect(Collectors.toList());
                if(!filterOrder.isEmpty()){
                    return R.fail("店铺下还有订单未完成");
                    return R.fail("该商家还有订单未完成,不能删除");
                }
                //删除商家下的订单
                comShopOrderDOS.forEach(order->{
@@ -246,10 +275,13 @@
            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfo(account+"_5");
            LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
            if(loginUserInfoVO==null){
                return R.fail(500, "该账号不存在");
            }
            ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
                    .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, loginUserInfoVO.getUserId()));
            if (comShopStoreDO == null) {
                R.fail(500, "商铺不存在");
                return  R.fail(500, "该账号不存在");
            }
            ShopStoreVO shopStoreVO = new ShopStoreVO();
            BeanUtils.copyProperties(comShopStoreDO, shopStoreVO);