bug
jiangqs
2023-08-31 dbff53150cdc807faa56c0d1a947d24b69f372b9
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -2,25 +2,35 @@
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.shop.domain.dto.*;
import com.ruoyi.shop.domain.pojo.shop.*;
import com.ruoyi.shop.domain.pojo.task.ShopFile;
import com.ruoyi.shop.domain.pojo.task.ShopTask;
import com.ruoyi.shop.domain.vo.*;
import com.ruoyi.shop.enums.WxApplyMentStateEnum;
import com.ruoyi.shop.mapper.shop.ShopMapper;
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.shop.util.WxShopUtils;
import com.ruoyi.shop.util.dto.*;
import com.ruoyi.shop.util.WechatPayUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.config.SysTag;
@@ -29,6 +39,7 @@
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -48,6 +59,7 @@
 * @since 2023-04-25
 */
@Service
@Slf4j
public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService {
    @Resource
@@ -105,10 +117,28 @@
    private RemoteSysStaffService remoteSysStaffService;
    @Resource
    private RemoteFileService remoteFileService;
    @Resource
    private ShopTaskService shopTaskService;
    @Resource
    private RedisService redisService;
    @Resource
    private WechatPayUtils wechatPayUtils;
    @Resource
    private ShopDetailService shopDetailService;
    @Resource
    private RemoteUserService remoteUserService;
    /**
     * 获取商户详情
     *
     * @param shopId
     * @return
     */
@@ -154,6 +184,9 @@
        //验证关联账号唯一
        String relUserIds = mgtEditShopDto.getRelUserIds();
        if(StringUtils.isNotBlank(relUserIds)) {
            if(relUserIds.startsWith(",")){
                relUserIds = relUserIds.substring(1);
            }
            String[] relUserIdArray = relUserIds.split(",");
            ShopRelUser shopRelUser;
            Long userId;
@@ -177,11 +210,12 @@
        }
        //验证商户名唯一
        Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
        //Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
        if(mgtEditShopDto.getShopId()!=null){
            if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){
            //取消验重
            /*if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){
                throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
            }
            }*/
            shop = this.getById(mgtEditShopDto.getShopId());
            shop.setUpdateTime(new Date());
            shop.setUpdateUserId(mgtEditShopDto.getUserId());
@@ -193,16 +227,23 @@
            //清空归属
            shopRelUserService.deleteByShopId(shop.getShopId());
            shopStaffService.clearShopStaffRelation(shop.getShopId());
        }else{
            if(shopSame!=null){
                throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
            if(!shop.getShopName().equals(mgtEditShopDto.getShopName())){
                MgtMemberShopNameDto mgtMemberShopNameDto = new MgtMemberShopNameDto();
                mgtMemberShopNameDto.setShopId(mgtEditShopDto.getShopId());
                mgtMemberShopNameDto.setShopName(mgtEditShopDto.getShopName());
                remoteMemberService.updateMemberShopName(mgtMemberShopNameDto);
            }
        }else{
            //取消验重
            /*if(shopSame!=null){
                throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
            }*/
            shop.setDelFlag(0);
            shop.setShopStatus(3);
            shop.setCreateTime(new Date());
            shop.setCreateUserId(mgtEditShopDto.getUserId());
            shop.setFrozenFlag(0);
            shop.setCooperativeFlag(0);
            shop.setCooperativeFlag(1);
            shop.setAuthFlag(0);
            newShop = true;
        }
@@ -289,6 +330,13 @@
        if(newShop){
            //生成商户关联记录
            initNewShop(shop,mgtEditShopDto.getUserId());
            CodeGetDto codeGetDto = new CodeGetDto();
            String url = "https://wxapp.hhhrt.cn/mini/shop?id="+shop.getShopId();
            codeGetDto.setUrl(url);
            codeGetDto.setFileName("shop-"+shop.getShopId());
            String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData();
            shop.setShopCode(codeUrl);
            this.saveOrUpdate(shop);
        }
    }
@@ -318,6 +366,8 @@
        shopAuthentication.setAuthId(authId);
        shopAuthentication.setDelFlag(0);
        shopAuthentication.setShopId(shop.getShopId());
        shopAuthentication.setAuditStatus(0);
        shopAuthentication.setSignState(1);
        shopAuthenticationService.save(shopAuthentication);
        //商户分成信息初始化
        ShopProportion shopProportion = new ShopProportion();
@@ -409,6 +459,7 @@
            shop.setFrozenFlag(0);
        }
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
        this.saveOrUpdate(shop);
    }
    /**
@@ -558,6 +609,20 @@
            }
            mgtShopInfoVo.setShopTagIds(shopTagJs.toString());
        }
        //归属员工
        if(mgtShopInfoVo.getBelongUserId()!=null){
            SysUser sysUser = sysUserService.getSysUser(mgtShopInfoVo.getBelongUserId()).getData();
            if(sysUser!=null){
                mgtShopInfoVo.setBelongUserName(sysUser.getNickName());
            }
        }
        //归属商户
        if(mgtShopInfoVo.getBelongShopId()!=null){
            Shop belongShop = this.getByShopId(mgtShopInfoVo.getBelongShopId());
            if(belongShop!=null){
                mgtShopInfoVo.setBelongShopName(belongShop.getShopName());
            }
        }
        //商户关联用户
        List<ShopRelUser> shopRelUserList = shopRelUserService.listByShopId(shopId);
        if(shopRelUserList!=null&&!shopRelUserList.isEmpty()){
@@ -687,6 +752,20 @@
            appMemberBindingDto.setBindingFlag(0);
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
        }
        //商品图片
        List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shop.getShopId());
        String shopPicture = null;
        StringJoiner shopBanners = new StringJoiner(",");
        if(shopFileList!=null&&!shopFileList.isEmpty()){
            for(ShopFile shopFile : shopFileList){
                if(shopFile.getFileType()==1){
                    shopPicture = shopFile.getFileUrl();
                }else{
                    shopBanners.add(shopFile.getFileUrl());
                }
            }
        }
        appNearbyShopVo.setShopPicture(shopPicture);
        appNearbyShopVo.setShopId(shop.getShopId());
        appNearbyShopVo.setShopName(shop.getShopName());
        appNearbyShopVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress());
@@ -715,8 +794,8 @@
     */
    @Override
    public StaffHomeShopTotalVo getStaffHomeTotal(Long userId){
        List<Long> userIds = null;
        List<Long> shopIds = null;
        List<Long> userIds = new ArrayList<>();
        List<Long> shopIds = new ArrayList<>();
        //如果是leader 查询leader下面所有的员工下的所有shopId
        if(remoteSysStaffService.isLeader()){
            userIds = sysUserService.getUserIdsByDept(userId).getData();
@@ -724,16 +803,36 @@
            MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
            mgtBasePlatformDto.setUserIdList(userIds);
            shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
            List<Shop> shopList = this.getShopByBelongUserId(userId);
            if(shopList!=null&&!shopList.isEmpty()){
                for(Shop shop : shopList){
                    shopIds.add(shop.getShopId());
                }
                userIds.add(userId);
            }
        }else {
            //普通员工查询商户归属的shopId
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
            List<Shop> shopList = this.getShopByBelongUserId(userId);
            if(shopList!=null&&!shopList.isEmpty()){
                for(Shop shop : shopList){
                    shopIds.add(shop.getShopId());
                }
                userIds.add(userId);
            }
        }
        //分别查询
        StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(shopIds);
        Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds);
        StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo();
        if(userIds!=null&&!userIds.isEmpty()){
            staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds);
        }else{
            staffHomeShopTotalVo.setShopTotal(0);
            staffHomeShopTotalVo.setAgencyTotal(0);
            staffHomeShopTotalVo.setDealerTotal(0);
        }
        Integer shopTaskCount = 0;
        if(shopIds!=null&&!shopIds.isEmpty()){
            shopTaskService.getShopIngTotal(shopIds);
        }
        staffHomeShopTotalVo.setFollowMember(0);
        staffHomeShopTotalVo.setNewMember(0);
        staffHomeShopTotalVo.setShopTask(shopTaskCount);
@@ -741,19 +840,30 @@
    }
    /**
     * 获取商户端
     * @param userId
     * @param merBaseDto
     * @return
     */
    @Override
    public MerHomeShopTotalVo getMerHomeTotal(Long userId){
    public MerHomeShopTotalVo getMerHomeTotal(MerBaseDto merBaseDto){
        Long userId = merBaseDto.getUserId();
        MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo();
        ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId);
        Long shopId = shopRelUser.getShopId();
        //如果商户变动刷新token
        if(!shopId.equals(merBaseDto.getShopId())){
            String userKey = SecurityUtils.getUserKey();
            redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
            throw new ServiceException("登录状态已过期",401);
        }
        merHomeShopTotalVo.setShopId(shopId);
        Shop shop = this.getById(shopId);
        if(shop.getFrozenFlag()==1){
            String userKey = SecurityUtils.getUserKey();
            redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
            throw new ServiceException("商户已被冻结,请联系管理员",401);
        }
        merHomeShopTotalVo.setShopType(shop.getShopType());
        MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
        ShopTotal shopTotal = shopTotalService.getById(shopId);
        merHomeShopTotalVo.setShopId(shopId);
        merHomeShopTotalVo.setShopType(shop.getShopType());
        merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop());
@@ -761,8 +871,10 @@
        Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
        merHomeShopTotalVo.setTask(taskCount);
        merHomeShopTotalVo.setShopTurnover(orderVo.getShopTurnover());
        merHomeShopTotalVo.setCycleSurp(shopTotal.getUseableCyclePerson());
        merHomeShopTotalVo.setExplorationSurp(shopTotal.getUseableExperiencePerson());
        merHomeShopTotalVo.setCycleSurp(orderVo.getCycleSurp());
        merHomeShopTotalVo.setExplorationSurp(orderVo.getExplorationSurp());
        merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag());
        merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag());
        return merHomeShopTotalVo;
    }
@@ -918,93 +1030,32 @@
     * @return  void
     */
    @Override
    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto){
    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException {
        ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId());
        Shop shop = this.getByShopId(shopAuthentication.getShopId());
        String applyNumber = IdUtils.simpleUUID();
        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
        shopAuthentication.setApplyNumber(applyNumber);
        shopAuthentication.setAuditStatus(3);
        shopAuthenticationService.saveOrUpdate(shopAuthentication);
        //生成提交类
        SubmitInfo submitInfo = new SubmitInfo();
        submitInfo.setOut_request_no(applyNumber);
        if(shopAuthentication.getMainType()==2){
            submitInfo.setOrganization_type("2");
        }else{
            submitInfo.setOrganization_type("4");
        }
        //营业执照
        BusinessLicenseInfo business_license_info = new BusinessLicenseInfo();
        business_license_info.setBusiness_license_copy(shopAuthentication.getBlImage());
        business_license_info.setBusiness_license_number(shopAuthentication.getBlNumber());
        business_license_info.setMerchant_name(shopAuthentication.getBlShopName());
        business_license_info.setLegal_person(shopAuthentication.getBlCorporateName());
        business_license_info.setCompany_address(shopAuthentication.getBlRegisteredAddress());
        business_license_info.setBusiness_time(shopAuthentication.getBlBusinessDeanline());
        submitInfo.setBusiness_license_info(business_license_info);
        //法人证件
        submitInfo.setId_doc_type("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
        IdCardInfo id_card_info = new IdCardInfo();
        id_card_info.setId_card_copy(shopAuthentication.getLpIcFront());
        id_card_info.setId_card_national(shopAuthentication.getLpIcBack());
        id_card_info.setId_card_name(shopAuthentication.getLpCorporateName());
        id_card_info.setId_card_number(shopAuthentication.getLpIdCard());
        id_card_info.setId_card_valid_time_begin(shopAuthentication.getLpIcStartDate());
        id_card_info.setId_card_valid_time(shopAuthentication.getLpIcEndDate());
        submitInfo.setId_card_info(id_card_info);
        //企业填写
        if(shopAuthentication.getMainType()==2){
            submitInfo.setOwner(true);
            List<UboInfo> ubo_info_list = new ArrayList<>();
            UboInfo uboInfo = new UboInfo();
            uboInfo.setUbo_id_doc_type("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
            uboInfo.setUbo_id_doc_copy(shopAuthentication.getUboIcFront());
            uboInfo.setUbo_id_doc_copy_back(shopAuthentication.getUboIcBack());
            uboInfo.setUbo_id_doc_name(shopAuthentication.getUboName());
            uboInfo.setUbo_id_doc_number(shopAuthentication.getUboIdCard());
            uboInfo.setUbo_id_doc_address(shopAuthentication.getUboIcAddress());
            uboInfo.setUbo_id_doc_period_begin(shopAuthentication.getUboIcStartDate());
            uboInfo.setUbo_id_doc_period_end(shopAuthentication.getUboIcEndDate());
            ubo_info_list.add(uboInfo);
            submitInfo.setUbo_info_list(ubo_info_list);
        }
        //结算账户信息
        AccountInfo accountInfo = new AccountInfo();
        if(shopAuthentication.getSettlementAccountType().equals("1")){
            accountInfo.setBank_account_type("74");
        }else{
            accountInfo.setBank_account_type("75");
        }
        accountInfo.setAccount_bank(shopAuthentication.getSaBank());
        accountInfo.setAccount_name(shopAuthentication.getSaAccountName());
        accountInfo.setBank_address_code(shopAuthentication.getSaBankCityCode());
        accountInfo.setBank_name(shopAuthentication.getSaBankName());
        accountInfo.setAccount_number(shopAuthentication.getSaNumber());
        submitInfo.setAccount_info(accountInfo);
        ContactInfo contactInfo = new ContactInfo();
        contactInfo.setContact_type("65");
        contactInfo.setContact_name(shopAuthentication.getLpCorporateName());
        contactInfo.setContact_id_card_number(shopAuthentication.getLpIdCard());
        contactInfo.setMobile_phone(shopAuthentication.getLpMobilePhone());
        contactInfo.setContact_email(shopAuthentication.getLpContactEmail());
        submitInfo.setContact_info(contactInfo);
        //店铺信息
        SalesSceneInfo salesSceneInfo = new SalesSceneInfo();
        salesSceneInfo.setStore_name(shop.getShopName());
        salesSceneInfo.setStore_url("");
        salesSceneInfo.setStore_qr_code("");
        submitInfo.setSales_scene_info(salesSceneInfo);
        submitInfo.setMerchant_shortname(shop.getShopName());
        submitInfo.setBusiness_addition_pics(shopAuthentication.getBaPics());
        submitInfo.setBusiness_addition_desc(shopAuthentication.getBaDesc());
        //提交审核
        try {
            WxShopUtils.ApplymentSubMch(submitInfo);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
            mgtShopAuthDto.setBlBusinessDeanline("长期");
        }
        if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
            mgtShopAuthDto.setLpIcEndDate("长期");
        }
        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
        String applyNumber = shopAuthentication.getApplyNumber();
        if(StringUtils.isBlank(applyNumber)){
            applyNumber = IdUtils.simpleUUID();
            shopAuthentication.setApplyNumber(applyNumber);
        }
        ApplymentsResult applymentsResult;
        try {
            applymentsResult = wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop);
        } catch (Exception e) {
            log.debug("-----"+shop.getShopId()+":进件异常-----");
            throw new ServiceException(e.getMessage());
        }
        shopAuthentication.setAuditStatus(3);
        shopAuthentication.setApplymentId(applymentsResult.getApplymentId());
        shopAuthenticationService.saveOrUpdate(shopAuthentication);
    }
    /**
@@ -1061,13 +1112,17 @@
            plTotalShopTotalVo.setAreaRankVos(shopAreaRank);
        }
        //获取销售排名
        List<MgtMapIntTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto);
        List<MgtMapBigTotalVo> shopSalesRank = remoteOrderService.shopSalesRank(shopIdList).getData();
        if (shopSalesRank != null && shopSalesRank.size() > 0) {
            String[] shopSalesKey = new String[shopSalesRank.size()];
            Integer[] shopSalesValue = new Integer[shopSalesRank.size()];
            BigDecimal[] shopSalesValue = new BigDecimal[shopSalesRank.size()];
            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
            Long shopId;
            Shop shop;
            for (int i = 0; i < shopSalesRank.size(); i++) {
                shopSalesKey[i] = shopSalesRank.get(i).getMapKey();
                shopId = Long.valueOf(shopSalesRank.get(i).getMapKey());
                shop = this.getByShopId(shopId);
                shopSalesKey[i] = shop.getShopName();
                shopSalesValue[i] = shopSalesRank.get(i).getMapValue();
            }
            plTotalShopTotalVo.setShopSalesRankKey(shopSalesKey);
@@ -1124,6 +1179,20 @@
        MgtShopAuthGetVo shopAuthGetVo = new MgtShopAuthGetVo();
        ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId);
        BeanUtils.copyProperties(shopAuthentication, shopAuthGetVo);
        if(shopAuthGetVo.getBlBusinessDeanline()!=null){
            if(shopAuthGetVo.getBlBusinessDeanline().equals("长期")){
                shopAuthGetVo.setBlBusinessFoeverFlag(1);
            }else{
                shopAuthGetVo.setBlBusinessFoeverFlag(0);
            }
        }
        if(shopAuthGetVo.getLpIcEndDate()!=null){
            if(shopAuthGetVo.getLpIcEndDate().equals("长期")){
                shopAuthGetVo.setLpIcForeverFlag(1);
            }else{
                shopAuthGetVo.setLpIcForeverFlag(0);
            }
        }
        return shopAuthGetVo;
    }
@@ -1187,11 +1256,11 @@
     * @return  Shop
     */
    @Override
    public Shop getShopByBelongUserId(Long userId){
    public List<Shop> getShopByBelongUserId(Long userId){
        LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Shop::getDelFlag,0);
        queryWrapper.eq(Shop::getBelongUserId,userId);
        return this.getOne(queryWrapper,false);
        return this.list(queryWrapper);
    }
    /**
@@ -1217,14 +1286,19 @@
     */
    @Override
    public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){
        List<Long> userIdList = null;
        List<Long> userIdList = new ArrayList<>();
        if(remoteSysStaffService.isLeader()){
            userIdList = sysUserService.getUserIdsByDept(userId).getData();
            userIdList.add(userId);
        }else {
            userIdList.add(userId);
        }
        return shopMapper.getStaffSimpleTotal(userIdList);
        StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList);
        StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList);
        shopTotal.setAgencyTotal(agencyTotal.getShopTotal());
        shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal());
        shopTotal.setCloseAgencyTotal(agencyTotal.getCloseAgencyTotal());
        return shopTotal;
    }
    /**
@@ -1258,8 +1332,6 @@
        merHomeShopTotalVo.setShopId(shopId);
        // 通过远程订单服务获取商店总览信息
        MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
        // 获取商店总计信息
        ShopTotal shopTotal = shopTotalService.getById(shopId);
        // 获取商店任务计数
        Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
        // 设置员工商店信息对象的属性
@@ -1267,10 +1339,11 @@
        staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder());
        staffShopInfoGetVo.setShopTask(taskCount);
        staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover());
        staffShopInfoGetVo.setCycleSurp(shopTotal.getUseableCyclePerson());
        staffShopInfoGetVo.setExplorationSurp(shopTotal.getUseableExperiencePerson());
        staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp());
        staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp());
        staffShopInfoGetVo.setShopId(shopId);
        staffShopInfoGetVo.setShopName(shop.getShopName());
        staffShopInfoGetVo.setShopType(shop.getShopType());
        staffShopInfoGetVo.setShopPicture(shopPicture);
        staffShopInfoGetVo.setBusinessStartTime(shop.getBusinessStartTime());
        staffShopInfoGetVo.setBusinessEndTime(shop.getBusinessEndTime());
@@ -1296,8 +1369,8 @@
            if (shopIdList != null && !shopIdList.isEmpty()) {
                Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData();
                staffShopInfoGetVo.setNewAreaMember(count);
                ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList);
                staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney());
                AgencyTotalVo agencyTotalVo = remoteOrderService.getAgencyTotalVo(shopIdList).getData();
                staffShopInfoGetVo.setAreaTurnover(agencyTotalVo.getAreaTurnover());
            }
        }
        // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表
@@ -1348,6 +1421,8 @@
        List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList();
        if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){
            extendContacts = JSON.toJSONString(extendContactsVoList);
        }else{
            extendContacts = "";
        }
        shop.setExtendContacts(extendContacts);
        shop.setShopId(staffShopECEditDto.getShopId());
@@ -1372,4 +1447,180 @@
        shop.setUpdateTime(new Date());
        shopMapper.updateShop(shop);
    }
    @Override
    public void queryEcommerceApplyMentsStatus() {
        log.info("开始获取微信二级商户待检查列表");
        List<ShopAuthentication> list = shopAuthenticationService.getShopAuthNeedUpdateStatus();
        log.info("定时检查微信二级商户"+list.toString());
        list.forEach(item -> queryApplyStatusByApplymentId(item.getApplymentId(), item.getShopId()));
    }
    /**
     * 调用微信接口查询申请审核状态
     * @param applymentId
     */
    private void queryApplyStatusByApplymentId(String applymentId, Long shopId) {
        try {
            log.debug("定时检查微信二级商户applymentId"+applymentId);
            if (StringUtils.isNotBlank(applymentId)) {
                ApplymentsStatusResult result = wechatPayUtils.queryApplyStatusByApplymentId(applymentId);
                shopAuthenticationService.updateAuditStatusByApplymentId(applymentId, result);
                String applymentState = result.getApplymentState();
                if(WxApplyMentStateEnum.FINISH.getText().equals(applymentState)){
                    applySuccessUpdateShopStatus(shopId);
                }
            }
        } catch (WxPayException e) {
            e.printStackTrace();
        }
    }
    /**
     * 商户进件审核完成,更新商户状态
     * @param shopId
     */
    private void applySuccessUpdateShopStatus(Long shopId){
        // 更新商户状态为正常
        Shop shop = this.getById(shopId);
        Integer shopStatus = handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), 1);
        LambdaUpdateWrapper<Shop> updateWrapper = Wrappers.lambdaUpdate();
        updateWrapper.eq(Shop::getShopId, shopId)
                .set(Shop::getShopStatus, shopStatus)
                .set(Shop::getAuthFlag, 1);
        this.update(updateWrapper);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/10 22:53
     * @param cityCodes
     * @return  List<Long>
     */
    @Override
    public List<Long> listShopIdByCityCode(List<String> cityCodes){
        return shopMapper.listShopIdByCityCode(cityCodes);
    }
    @Override
    public void authShop(){
        ShopAuthentication shopAuthentication = shopAuthenticationService.getById("8c23fa423beb4673a0edc641a1ca0c23");
        Shop shop = this.getByShopId(shopAuthentication.getShopId());
        try {
            wechatPayUtils.ecommerceApply(shopAuthentication,shopAuthentication.getApplyNumber(),shop);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * @description  修改店铺详细资料
     * @author  jqs
     * @date    2023/8/22 14:51
     * @param staffShopDetailDto
     * @return  void
     */
    @Override
    public void editShopDetail(StaffShopDetailDto staffShopDetailDto){
        ShopDetail shopDetail = shopDetailService.getById(staffShopDetailDto.getShopId());
        if(shopDetail == null){
            shopDetail = new ShopDetail();
            shopDetail.setDelFlag(0);
        }
        BeanUtils.copyProperties(staffShopDetailDto, shopDetail);
        List<StaffCustomerDto> staffCustomerDtoList = staffShopDetailDto.getStaffCustomerDtoList();
        if(staffCustomerDtoList!=null&&!staffCustomerDtoList.isEmpty()){
            StringJoiner customerNameSJ = new StringJoiner(",");
            StringJoiner customerMobileSJ = new StringJoiner(",");
            for(StaffCustomerDto staffCustomerDto : staffCustomerDtoList){
                customerNameSJ.add(staffCustomerDto.getCustomerName());
                customerMobileSJ.add(staffCustomerDto.getCustomerMobile());
            }
            shopDetail.setCustomerName(customerNameSJ.toString());
            shopDetail.setCustomerMobile(customerMobileSJ.toString());
        }
        shopDetailService.saveOrUpdate(shopDetail);
    }
    /**
     * @description  获取店铺详细资料
     * @author  jqs
     * @date    2023/8/22 16:15
     * @param shopId
     * @return  StaffShopDetailVo
     */
    @Override
    public StaffShopDetailVo getShopDetail(Long shopId){
        ShopDetail shopDetail = shopDetailService.getById(shopId);
        StaffShopDetailVo staffShopDetailVo = new StaffShopDetailVo();
        if(shopDetail!=null){
            BeanUtils.copyProperties(shopDetail, staffShopDetailVo);
            //处理联系人
            String customerName = shopDetail.getCustomerName();
            String customerMobile = shopDetail.getCustomerMobile();
            List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>();
            String[] customerNameArr = customerName.split(",");
            String[] customerMobileArr = customerMobile.split(",");
            staffShopDetailVo.setContactName(customerNameArr[0]);
            StaffCustomerDto staffCustomerDto;
            for(int i=0;i<customerNameArr.length;i++){
                staffCustomerDto = new StaffCustomerDto();
                staffCustomerDto.setCustomerName(customerNameArr[i]);
                staffCustomerDto.setCustomerMobile(customerMobileArr[i]);
                staffCustomerDtoList.add(staffCustomerDto);
            }
            staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList);
        }
        //归属客户
        Shop shop = this.getByShopId(shopId);
        Long belongUserId = shop.getBelongUserId();
        if(belongUserId!=null){
            SysUser sysUser = remoteUserService.getSysUser(belongUserId).getData();
            if(sysUser!=null){
                staffShopDetailVo.setBelongUser(sysUser.getNickName());
            }
        }
        //最近任务时间
        ShopTask shopTask = shopTaskService.getLastTask(shopId);
        if(shopTask!=null){
            staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate());
        }
        staffShopDetailVo.setShopId(shopId);
        return staffShopDetailVo;
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/23 9:44
     * @param
     * @return  void
     */
    @Override
    public ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request){
        try {
            ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request);
            return result;
        } catch (WxPayException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/29 14:33
     * @param
     * @return  List<MgtUserTaskMsgVo>
     */
    @Override
    public List<MgtUserTaskMsgVo> getTaskMsgList(){
        return shopMapper.getTaskMsgList();
    }
}