jiangqs
2023-07-15 b0b52cbabf7a4bc8e00fc328d14ac05336d0221e
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.shop.service.impl.shop;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,6 +19,7 @@
import com.ruoyi.shop.service.shop.*;
import com.ruoyi.shop.service.task.MemberTaskService;
import com.ruoyi.shop.service.task.ShopFileService;
import com.ruoyi.shop.service.task.ShopTaskService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.config.SysTag;
@@ -99,10 +101,10 @@
    private ShopTransferRecordService shopTransferRecordService;
    @Resource
    private RemoteUserService remoteUserService;
    private RemoteSysStaffService remoteSysStaffService;
    @Resource
    private RemoteSysStaffService remoteSysStaffService;
    private ShopTaskService shopTaskService;
    /**
     * 获取商户详情
@@ -200,6 +202,7 @@
            shop.setCreateUserId(mgtEditShopDto.getUserId());
            shop.setFrozenFlag(0);
            shop.setCooperativeFlag(0);
            shop.setAuthFlag(0);
            newShop = true;
        }
        BeanUtils.copyProperties(mgtEditShopDto,shop);
@@ -380,18 +383,55 @@
                 throw new ServiceException(AppErrorConstant.COOPERATION_TIME_ERROR);
            }*/
            shop.setCooperativeFlag(1);
            if(shop.getShopStatus()==2&&shop.getFrozenFlag()==0){
                shop.setShopStatus(1);
            }else if(shop.getShopStatus()==2&&shop.getFrozenFlag()==1){
                shop.setShopStatus(0);
            }
        }else{
            shop.setCooperativeFlag(0);
            shop.setShopStatus(2);
        }
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
        shop.setUpdateTime(new Date());
        shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId());
        this.saveOrUpdate(shop);
    }
    /**
     * @description  冻结商户
     * @author  jqs
     * @date    2023/7/15 13:56
     * @param mgtFrozenShopDto
     * @return  void
     */
    @Override
    public void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto){
        Shop shop = this.getById(mgtFrozenShopDto.getShopId());
        if(mgtFrozenShopDto.getFrozenFlag()==1){
            shop.setFrozenFlag(1);
        }else{
            shop.setFrozenFlag(0);
        }
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
    }
    /**
     * @description  处理商户状态
     * @author  jqs
     * @date    2023/7/15 14:09
     * @param
     * @return  Integer
     */
    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){
        Integer shopStatus = 1;
        if(frozenFlag == 1){
            shopStatus = 0;
            return shopStatus;
        }
        if(authFlag == 0){
            shopStatus = 3;
            return shopStatus;
        }
        if(cooperativeFlag == 0){
            shopStatus = 2;
            return shopStatus;
        }
        return shopStatus;
    }
@@ -670,37 +710,31 @@
     * @return
     */
    @Override
    public MerHomeShopTotalVo getStaffHomeTotal(Long userId){
    public StaffHomeShopTotalVo getStaffHomeTotal(Long userId){
        List<Long> userIds = null;
        List<Long> shopIds = null;
        //如果是leader 查询leader下面所有的员工下的所有shopId
        if(remoteSysStaffService.isLeader()){
            Long deptId = sysUserService.getSysUser(userId).getData().getDeptId();
            userIds = remoteSysStaffService.getUserIds(deptId).getData();
            userIds = sysUserService.getUserIdsByDept(userId).getData();
            //根据用户所有id查询关联的商户id
            MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
            mgtBasePlatformDto.setUserIdList(userIds);
            shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
        }else {
            //普通员工查询商户归属的shopId
            MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
            mgtShopIdByCodeDto.setBelongUserId(userId);
            shopIds = shopMapper.getShopIdByCode(mgtShopIdByCodeDto);
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
        }
            //分别查询
            MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo();
            merHomeShopTotalVo.setShopIds(shopIds);
            MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
            merHomeShopTotalVo.setTodayShop(null!=orderVo?orderVo.getTodayShop():0);
            merHomeShopTotalVo.setUnHandleOrder(null!=orderVo?orderVo.getUnHandleOrder():0);
            merHomeShopTotalVo.setShopTurnover(null!=orderVo?orderVo.getShopTurnover():BigDecimal.ZERO);
            ShopTotal shopTotal = shopTotalService.shopsTotalByIds(shopIds);
            merHomeShopTotalVo.setCycleSurp(null!=shopTotal?shopTotal.getUseableCyclePerson():0);
            merHomeShopTotalVo.setExplorationSurp(null!=shopTotal?shopTotal.getUseableExperiencePerson():0);
            Integer taskCount = memberTaskService.getMembersIngTotal(shopIds);
            merHomeShopTotalVo.setTask(taskCount);
            return merHomeShopTotalVo;
        }
        //分别查询
        StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(shopIds);
        Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds);
        staffHomeShopTotalVo.setFollowMember(0);
        staffHomeShopTotalVo.setNewMember(0);
        staffHomeShopTotalVo.setShopTask(shopTaskCount);
        return staffHomeShopTotalVo;
    }
    /**
     * 获取商户端
     * @param userId
@@ -1058,4 +1092,198 @@
                }).collect(Collectors.toList());
        return simpleShopVoList;
    }
    /**
     * @description  获取用户管理商户
     * @author  jqs
     * @date    2023/7/14 10:00
     * @param userId
     * @return  Shop
     */
    @Override
    public Shop getShopByBelongUserId(Long userId){
        LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Shop::getDelFlag,0);
        queryWrapper.eq(Shop::getBelongUserId,userId);
        return this.getOne(queryWrapper,false);
    }
    /**
     * @description  员工端获取商户列表
     * @author  jqs
     * @date    2023/7/14 15:26
     * @param page
     * @param staffShopPageDto
     * @return  List<StaffShopPageVo>
     */
    @Override
    public List<StaffShopPageVo> pageStaffShop(Page page, StaffShopPageDto staffShopPageDto){
        List<StaffShopPageVo> staffShopPageVoList = shopMapper.pageStaffShop(page, staffShopPageDto);
        return staffShopPageVoList;
    }
    /**
     * @description  获取员工端商户数量统计
     * @author  jqs
     * @date    2023/7/14 15:51
     * @param userId
     * @return  StaffShopSimpleTotalVo
     */
    @Override
    public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){
        List<Long> userIdList = null;
        if(remoteSysStaffService.isLeader()){
            userIdList = sysUserService.getUserIdsByDept(userId).getData();
            userIdList.add(userId);
        }else {
            userIdList.add(userId);
        }
        return shopMapper.getStaffSimpleTotal(userIdList);
    }
    /**
     * @description  员工端获取商户详情
     * @author  jqs
     * @date    2023/7/14 18:32
     * @param shopId
     * @return  StaffShopInfoGetVo
     */
    @Override
    public StaffShopInfoGetVo getStaffShopInfo(Long shopId) {
        // 创建员工商店信息对象
        StaffShopInfoGetVo staffShopInfoGetVo = new StaffShopInfoGetVo();
        // 通过商店ID获取商店信息
        Shop shop = this.getByShopId(shopId);
        // 获取商店文件列表
        List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId);
        // 初始化商店图片
        String shopPicture = null;
        // 遍历商店文件列表,获取商店图片
        if (shopFileList != null && !shopFileList.isEmpty()) {
            for (ShopFile shopFile : shopFileList) {
                if (shopFile.getFileType() == 1) {
                    shopPicture = shopFile.getFileUrl();
                    break;
                }
            }
        }
        // 创建商店总览对象,并设置商店ID
        MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo();
        merHomeShopTotalVo.setShopId(shopId);
        // 通过远程订单服务获取商店总览信息
        MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
        // 获取商店总计信息
        ShopTotal shopTotal = shopTotalService.getById(shopId);
        // 获取商店任务计数
        Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
        // 设置员工商店信息对象的属性
        staffShopInfoGetVo.setTodayReservation(0);
        staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder());
        staffShopInfoGetVo.setShopTask(taskCount);
        staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover());
        staffShopInfoGetVo.setCycleSurp(shopTotal.getUseableCyclePerson());
        staffShopInfoGetVo.setExplorationSurp(shopTotal.getUseableExperiencePerson());
        staffShopInfoGetVo.setShopId(shopId);
        staffShopInfoGetVo.setShopName(shop.getShopName());
        staffShopInfoGetVo.setShopPicture(shopPicture);
        staffShopInfoGetVo.setBusinessStartTime(shop.getBusinessStartTime());
        staffShopInfoGetVo.setBusinessEndTime(shop.getBusinessEndTime());
        staffShopInfoGetVo.setShopownerName(shop.getShopownerName());
        staffShopInfoGetVo.setShopownerPhone(shop.getShopownerPhone());
        staffShopInfoGetVo.setShopAddress(shop.getShopAreaName() + shop.getShopAddress());
        staffShopInfoGetVo.setShopCustomStatus(shop.getShopCustomStatus());
        staffShopInfoGetVo.setShopTags(shop.getShopTags());
        staffShopInfoGetVo.setSupportingCapacityFlag(shop.getSupportingCapacityFlag());
        staffShopInfoGetVo.setOperationPersonFlag(shop.getOperationPersonFlag());
        staffShopInfoGetVo.setExecutiveForceFlag(shop.getExecutiveForceFlag());
        staffShopInfoGetVo.setPatternFlag(shop.getPatternFlag());
        staffShopInfoGetVo.setConnectionFlag(shop.getConnectionFlag());
        staffShopInfoGetVo.setEconomicAbilityFlag(shop.getEconomicAbilityFlag());
        staffShopInfoGetVo.setRelationPartner(shop.getRelationPartner());
        staffShopInfoGetVo.setBusinessHistory(shop.getBusinessHistory());
        staffShopInfoGetVo.setNewAreaMember(0);
        staffShopInfoGetVo.setAreaTurnover(BigDecimal.ZERO);
        staffShopInfoGetVo.setFrozenFlag(shop.getFrozenFlag());
        // 如果商店类型为1,则获取该商店ID列表的新区域成员和总订单金额
        if (shop.getShopType() == 1) {
            List<Long> shopIdList = this.listShopIdByShopId(shop.getShopId());
            if (shopIdList != null && !shopIdList.isEmpty()) {
                Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData();
                staffShopInfoGetVo.setNewAreaMember(count);
                ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList);
                staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney());
            }
        }
        // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表
        String extendContacts = shop.getExtendContacts();
        if (StringUtils.isNotBlank(extendContacts)) {
            List<ExtendContactsVo> extendContactsVoList = JSON.parseArray(extendContacts, ExtendContactsVo.class);
            staffShopInfoGetVo.setExtendContactsVoList(extendContactsVoList);
        }
        // 返回员工商店信息对象
        return staffShopInfoGetVo;
    }
    /**
     * @description  修改商户评估
     * @author  jqs
     * @date    2023/7/15 10:18
     * @param staffShopEstimateEditDto
     * @return  void
     */
    @Override
    public void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto){
        Shop shop = new Shop();
        shop.setShopId(staffShopEstimateEditDto.getShopId());
        shop.setSupportingCapacityFlag(staffShopEstimateEditDto.getSupportingCapacityFlag());
        shop.setOperationPersonFlag(staffShopEstimateEditDto.getOperationPersonFlag());
        shop.setExecutiveForceFlag(staffShopEstimateEditDto.getExecutiveForceFlag());
        shop.setPatternFlag(staffShopEstimateEditDto.getPatternFlag());
        shop.setConnectionFlag(staffShopEstimateEditDto.getConnectionFlag());
        shop.setEconomicAbilityFlag(staffShopEstimateEditDto.getEconomicAbilityFlag());
        shop.setRelationPartner(staffShopEstimateEditDto.getRelationPartner());
        shop.setBusinessHistory(staffShopEstimateEditDto.getBusinessHistory());
        shop.setUpdateUserId(staffShopEstimateEditDto.getUserId());
        shop.setUpdateTime(new Date());
        shopMapper.updateShop(shop);
    }
    /**
     * @description  修改店铺扩展联系人
     * @author  jqs
     * @date    2023/7/15 11:06
     * @param staffShopECEditDto
     * @return  void
     */
    @Override
    public void editExtendContacts(StaffShopECEditDto staffShopECEditDto){
        Shop shop = new Shop();
        String extendContacts = null;
        List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList();
        if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){
            extendContacts = JSON.toJSONString(extendContactsVoList);
        }
        shop.setExtendContacts(extendContacts);
        shop.setShopId(staffShopECEditDto.getShopId());
        shop.setUpdateUserId(staffShopECEditDto.getUserId());
        shop.setUpdateTime(new Date());
        shopMapper.updateExtendContacts(shop);
    }
    /**
     * @description  修改店铺状态
     * @author  jqs
     * @date    2023/7/15 11:51
     * @param staffShopCCEditDto
     * @return  void
     */
    @Override
    public void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto){
        Shop shop = new Shop();
        shop.setShopCustomStatus(staffShopCCEditDto.getShopCustomStatus());
        shop.setShopId(staffShopCCEditDto.getShopId());
        shop.setUpdateUserId(staffShopCCEditDto.getUserId());
        shop.setUpdateTime(new Date());
        shopMapper.updateShop(shop);
    }
}