ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -2,23 +2,32 @@
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.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.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.WechatPayUtils;
import com.ruoyi.shop.util.WxShopUtils;
import com.ruoyi.shop.util.dto.*;
import com.ruoyi.system.api.constant.AppErrorConstant;
@@ -30,6 +39,7 @@
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.service.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -105,29 +115,39 @@
    private RemoteSysStaffService remoteSysStaffService;
    @Resource
    private RemoteFileService remoteFileService;
    @Resource
    private ShopTaskService shopTaskService;
    @Resource
    private RedisService redisService;
    @Resource
    private WechatPayUtils wechatPayUtils;
    /**
     * 获取商户详情
     *
     * @param shopId
     * @return
     */
    @Override
    public AppShopInfoVo getAppShopInfo(Long shopId){
    public AppShopInfoVo getAppShopInfo(Long shopId) {
        AppShopInfoVo appShopInfoVo = new AppShopInfoVo();
        Shop shop = this.getById(shopId);
        BeanUtils.copyProperties(shop,appShopInfoVo);
        BeanUtils.copyProperties(shop, appShopInfoVo);
        //商户地址
        appShopInfoVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress());
        appShopInfoVo.setShopAddress(shop.getShopAreaName() + shop.getShopAddress());
        //商品图片
        List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId);
        String shopPicture = null;
        StringJoiner shopBanners = new StringJoiner(",");
        if(shopFileList!=null&&!shopFileList.isEmpty()){
            for(ShopFile shopFile : shopFileList){
                if(shopFile.getFileType()==1){
        if (shopFileList != null && !shopFileList.isEmpty()) {
            for (ShopFile shopFile : shopFileList) {
                if (shopFile.getFileType() == 1) {
                    shopPicture = shopFile.getFileUrl();
                }else{
                } else {
                    shopBanners.add(shopFile.getFileUrl());
                }
            }
@@ -136,7 +156,7 @@
        appShopInfoVo.setShopBanners(shopBanners.toString());
        //商户证书
        List<ShopCertificate> shopCertificateList = shopCertificateService.listShopCertificateByShopId(shopId);
        if(shopCertificateList!=null&&!shopCertificateList.isEmpty()){
        if (shopCertificateList != null && !shopCertificateList.isEmpty()) {
            appShopInfoVo.setShopCertificateList(shopCertificateList);
        }
        return appShopInfoVo;
@@ -144,32 +164,33 @@
    /**
     * 创建商户
     *
     * @param mgtEditShopDto
     */
    @Override
    public void createShop(MgtEditShopDto mgtEditShopDto){
    public void createShop(MgtEditShopDto mgtEditShopDto) {
        Shop shop = new Shop();
        Boolean newShop = false;
        BigDecimal zeroBig = BigDecimal.ZERO;
        //验证关联账号唯一
        String relUserIds = mgtEditShopDto.getRelUserIds();
        if(StringUtils.isNotBlank(relUserIds)) {
        if (StringUtils.isNotBlank(relUserIds)) {
            String[] relUserIdArray = relUserIds.split(",");
            ShopRelUser shopRelUser;
            Long userId;
            if(mgtEditShopDto.getShopId()!=null){
            if (mgtEditShopDto.getShopId() != null) {
                for (String str : relUserIdArray) {
                    userId = Long.valueOf(str);
                    shopRelUser = shopRelUserService.getByUserId(userId);
                    if(shopRelUser!=null&&!shopRelUser.getShopId().equals(mgtEditShopDto.getShopId())){
                    if (shopRelUser != null && !shopRelUser.getShopId().equals(mgtEditShopDto.getShopId())) {
                        throw new ServiceException(AppErrorConstant.SHOP_USER_DOUBLE);
                    }
                }
            }else {
            } else {
                for (String str : relUserIdArray) {
                    userId = Long.valueOf(str);
                    shopRelUser = shopRelUserService.getByUserId(userId);
                    if(shopRelUser!=null){
                    if (shopRelUser != null) {
                        throw new ServiceException(AppErrorConstant.SHOP_USER_DOUBLE);
                    }
                }
@@ -177,9 +198,9 @@
        }
        //验证商户名唯一
        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())){
        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())) {
                throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
            }
            shop = this.getById(mgtEditShopDto.getShopId());
@@ -193,8 +214,14 @@
            //清空归属
            shopRelUserService.deleteByShopId(shop.getShopId());
            shopStaffService.clearShopStaffRelation(shop.getShopId());
        }else{
            if(shopSame!=null){
            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);
@@ -206,9 +233,9 @@
            shop.setAuthFlag(0);
            newShop = true;
        }
        BeanUtils.copyProperties(mgtEditShopDto,shop);
        BeanUtils.copyProperties(mgtEditShopDto, shop);
        String shopDetail = shop.getShopDetail();
        if(StringUtils.isNotBlank(shopDetail)){
        if (StringUtils.isNotBlank(shopDetail)) {
            byte[] decodedBytes = Base64.getDecoder().decode(shopDetail);
            shopDetail = new String(decodedBytes, StandardCharsets.UTF_8);
            shop.setShopDetail(shopDetail);
@@ -221,13 +248,13 @@
        this.saveOrUpdate(shop);
        //商户标签
        String shopTagIds = mgtEditShopDto.getShopTagIds();
        if(StringUtils.isNotBlank(shopTagIds)){
        if (StringUtils.isNotBlank(shopTagIds)) {
            String[] shopTagIdArray = shopTagIds.split(",");
            ShopRelTag shopRelTag;
            Long tagid;
            StringJoiner shopTagSj = new StringJoiner(",");
            SysTag sysTag;
            for(String str : shopTagIdArray){
            for (String str : shopTagIdArray) {
                shopRelTag = new ShopRelTag();
                tagid = Long.valueOf(str);
                sysTag = configService.getSysTag(tagid).getData();
@@ -246,13 +273,13 @@
            handleShopStaff(shop.getShopId(),belongSysUser);
        }*/
        //商户关联人员
        if(StringUtils.isNotBlank(relUserIds)){
        if (StringUtils.isNotBlank(relUserIds)) {
            shopStaffService.clearShopStaffRelation(shop.getShopId());
            String[] relUserIdArray = relUserIds.split(",");
            ShopRelUser shopRelUser;
            Long userId;
            SysUser sysUser;
            for(String str : relUserIdArray){
            for (String str : relUserIdArray) {
                shopRelUser = new ShopRelUser();
                userId = Long.valueOf(str);
                sysUser = sysUserService.getSysUser(userId).getData();
@@ -263,7 +290,7 @@
                shopRelUser.setUserMobile(sysUser.getPhonenumber());
                shopRelUser.setUserDeptId(sysUser.getDeptId());
                shopRelUserService.save(shopRelUser);
                handleShopStaff(shop.getShopId(),sysUser);
                handleShopStaff(shop.getShopId(), sysUser);
            }
        }
        //商户封面
@@ -274,10 +301,10 @@
        shopFile.setShopId(shop.getShopId());
        shopFileService.save(shopFile);
        //商户banner
        if(StringUtils.isNotBlank(mgtEditShopDto.getShopBanners())){
            String shopBanners= mgtEditShopDto.getShopBanners();
        if (StringUtils.isNotBlank(mgtEditShopDto.getShopBanners())) {
            String shopBanners = mgtEditShopDto.getShopBanners();
            String[] shopBannerArray = shopBanners.split(",");
            for(String str : shopBannerArray){
            for (String str : shopBannerArray) {
                shopFile = new ShopFile();
                shopFile.setDelFlag(0);
                shopFile.setFileType(2);
@@ -286,21 +313,28 @@
                shopFileService.save(shopFile);
            }
        }
        if(newShop){
        if (newShop) {
            //生成商户关联记录
            initNewShop(shop,mgtEditShopDto.getUserId());
            initNewShop(shop, mgtEditShopDto.getUserId());
            CodeGetDto codeGetDto = new CodeGetDto();
            String url = "https://wxapp.hhhrt.cn/mini/activity?activityId=" + shop.getShopId();
            codeGetDto.setUrl(url);
            codeGetDto.setFileName("shop-" + shop.getShopId());
            String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData();
            shop.setShopCode(codeUrl);
            this.saveOrUpdate(shop);
        }
    }
    /**
     * @description  商户关联类初始化
     * @author  jqs
     * @date    2023/7/7 11:25
     * @param shop
     * @param userId
     * @return  void
     * @return void
     * @description 商户关联类初始化
     * @author jqs
     * @date 2023/7/7 11:25
     */
    private void initNewShop(Shop shop,Long userId){
    private void initNewShop(Shop shop, Long userId) {
        BigDecimal zeroBig = new BigDecimal("0.00");
        //商户账户信息初始化
        ShopAccount shopAccount = new ShopAccount();
@@ -366,16 +400,16 @@
    }
    /**
     * @description  终止合作
     * @author  jqs
     * @date    2023/6/20 12:01
     * @param mgtTerminateCooperationDto
     * @return  void
     * @return void
     * @description 终止合作
     * @author jqs
     * @date 2023/6/20 12:01
     */
    @Override
    public void terminateMgtCooperation(MgtTerminateCooperationDto mgtTerminateCooperationDto){
    public void terminateMgtCooperation(MgtTerminateCooperationDto mgtTerminateCooperationDto) {
        Shop shop = this.getById(mgtTerminateCooperationDto.getShopId());
        if(mgtTerminateCooperationDto.getCooperativeFlag()==1){
        if (mgtTerminateCooperationDto.getCooperativeFlag() == 1) {
            /*Date coopStartDate = shop.getCooperationStartTime();
            Date coopEndDate = shop.getCooperationEndTime();
            Date nowTime = new Date();
@@ -384,51 +418,52 @@
                 throw new ServiceException(AppErrorConstant.COOPERATION_TIME_ERROR);
            }*/
            shop.setCooperativeFlag(1);
        }else{
        } else {
            shop.setCooperativeFlag(0);
        }
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
        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
     * @return void
     * @description 冻结商户
     * @author jqs
     * @date 2023/7/15 13:56
     */
    @Override
    public void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto){
    public void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto) {
        Shop shop = this.getById(mgtFrozenShopDto.getShopId());
        if(mgtFrozenShopDto.getFrozenFlag()==1){
        if (mgtFrozenShopDto.getFrozenFlag() == 1) {
            shop.setFrozenFlag(1);
        }else{
        } else {
            shop.setFrozenFlag(0);
        }
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), shop.getAuthFlag()));
        this.saveOrUpdate(shop);
    }
    /**
     * @description  处理商户状态
     * @author  jqs
     * @date    2023/7/15 14:09
     * @param
     * @return  Integer
     * @return Integer
     * @description 处理商户状态
     * @author jqs
     * @date 2023/7/15 14:09
     */
    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){
    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag) {
        Integer shopStatus = 1;
        if(frozenFlag == 1){
        if (frozenFlag == 1) {
            shopStatus = 0;
            return shopStatus;
        }
        if(authFlag == 0){
        if (authFlag == 0) {
            shopStatus = 3;
            return shopStatus;
        }
        if(cooperativeFlag == 0){
        if (cooperativeFlag == 0) {
            shopStatus = 2;
            return shopStatus;
        }
@@ -438,16 +473,17 @@
    /**
     * 修改合作时间
     *
     * @param mgtChangeCoopDto
     */
    @Override
    public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto){
    public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto) {
        Shop shop = this.getById(mgtChangeCoopDto.getShopId());
        Date coopStartDate = null;
        Date coopEndDate = null;
        try {
            coopStartDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopStartTime(),"yyyy-MM-dd");
            coopEndDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopEndTime(),"yyyy-MM-dd");
            coopStartDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopStartTime(), "yyyy-MM-dd");
            coopEndDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopEndTime(), "yyyy-MM-dd");
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
@@ -455,13 +491,13 @@
        shop.setCooperationStartTime(coopStartDate);
        shop.setCooperationEndTime(coopEndDate);
        Boolean inTime = false;
        if(coopStartDate.compareTo(nowTime)<=0&&coopEndDate.compareTo(nowTime)>=0){
        if (coopStartDate.compareTo(nowTime) <= 0 && coopEndDate.compareTo(nowTime) >= 0) {
            inTime = true;
            shop.setCooperativeFlag(1);
        }else{
        } else {
            shop.setCooperativeFlag(0);
        }
        if(shop.getShopStatus()==2&&inTime){
        if (shop.getShopStatus() == 2 && inTime) {
            shop.setShopStatus(1);
        }
        shop.setUpdateTime(nowTime);
@@ -471,12 +507,13 @@
    /**
     * 分页获取商户
     *
     * @param page
     * @param mgtShopPageDto
     * @return
     */
    @Override
    public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto){
    public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto) {
        if (StringUtils.isNotBlank(mgtShopPageDto.getShopTags())) {
            mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",", "|"));
        }
@@ -499,7 +536,7 @@
            MgtBaseBathDto mgtBaseBathDto;
            Map<Long, MgtSysSimpleUserVo> signUserMap = null;
            Map<Long, MgtSysSimpleUserVo> belongUserMap = null;
            if(signUserIdSet!=null&&!signUserIdSet.isEmpty()){
            if (signUserIdSet != null && !signUserIdSet.isEmpty()) {
                String signUserString = String.join(",", signUserIdSet.stream().map(Object::toString).collect(Collectors.toList()));
                mgtBaseBathDto = new MgtBaseBathDto();
                mgtBaseBathDto.setIds(signUserString);
@@ -507,7 +544,7 @@
                signUserMap = signUserVoList.stream()
                        .collect(Collectors.toMap(MgtSysSimpleUserVo::getUserId, Function.identity()));
            }
            if(belongUserIdSet!=null&&!belongUserIdSet.isEmpty()){
            if (belongUserIdSet != null && !belongUserIdSet.isEmpty()) {
                // 将签约用户ID集合和所属用户ID集合转为字符串
                String belongUserString = String.join(",", belongUserIdSet.stream().map(Object::toString).collect(Collectors.toList()));
                // 查询签约用户和所属用户的详细信息
@@ -519,10 +556,10 @@
            }
            // 遍历查询结果,将签约用户和所属用户的详细信息添加到商铺信息中
            for (MgtShopPageVo shopPageVo : mgtShopPageVoList) {
                if (signUserMap!=null&&!signUserMap.isEmpty()&&shopPageVo.getSignUserId() != null) {
                if (signUserMap != null && !signUserMap.isEmpty() && shopPageVo.getSignUserId() != null) {
                    shopPageVo.setSignUser(signUserMap.get(shopPageVo.getSignUserId()).getNickName());
                }
                if (belongUserMap!=null&&!belongUserMap.isEmpty()&&shopPageVo.getBelongUserId() != null) {
                if (belongUserMap != null && !belongUserMap.isEmpty() && shopPageVo.getBelongUserId() != null) {
                    shopPageVo.setBelongUser(belongUserMap.get(shopPageVo.getBelongUserId()).getNickName());
                    shopPageVo.setBelongDept(belongUserMap.get(shopPageVo.getBelongUserId()).getDeptName());
                }
@@ -534,44 +571,45 @@
    /**
     * 获取商户详情
     *
     * @param shopId
     * @return
     */
    @Override
    public MgtShopInfoVo getMgtShopInfo(Long shopId){
    public MgtShopInfoVo getMgtShopInfo(Long shopId) {
        MgtShopInfoVo mgtShopInfoVo = new MgtShopInfoVo();
        Shop shop = this.getById(shopId);
        //基本信息拷贝
        BeanUtils.copyProperties(shop,mgtShopInfoVo);
        BeanUtils.copyProperties(shop, mgtShopInfoVo);
        String shopDetail = mgtShopInfoVo.getShopDetail();
        if(StringUtils.isNotBlank(shopDetail)){
        if (StringUtils.isNotBlank(shopDetail)) {
            byte[] encodedBytes = Base64.getEncoder().encode(shopDetail.getBytes(StandardCharsets.UTF_8));
            shopDetail = new String(encodedBytes, StandardCharsets.UTF_8);
            mgtShopInfoVo.setShopDetail(shopDetail);
        }
        //商户标签
        List<ShopRelTag> shopRelTagList = shopRelTagService.listShopRelTagByShopId(shopId);
        if(shopRelTagList!=null&&!shopRelTagList.isEmpty()){
        if (shopRelTagList != null && !shopRelTagList.isEmpty()) {
            StringJoiner shopTagJs = new StringJoiner(",");
            for(ShopRelTag shopRelTag : shopRelTagList){
            for (ShopRelTag shopRelTag : shopRelTagList) {
                shopTagJs.add(shopRelTag.getTagId().toString());
            }
            mgtShopInfoVo.setShopTagIds(shopTagJs.toString());
        }
        if(mgtShopInfoVo.getBelongUserId()!=null){
        if (mgtShopInfoVo.getBelongUserId() != null) {
            SysUser sysUser = sysUserService.getSysUser(mgtShopInfoVo.getBelongUserId()).getData();
            mgtShopInfoVo.setBelongUserName(sysUser.getNickName());
        }
        if(mgtShopInfoVo.getBelongShopId()!=null){
        if (mgtShopInfoVo.getBelongShopId() != null) {
            Shop belongShop = this.getByShopId(mgtShopInfoVo.getBelongShopId());
            mgtShopInfoVo.setBelongShopName(belongShop.getShopName());
        }
        //商户关联用户
        List<ShopRelUser> shopRelUserList = shopRelUserService.listByShopId(shopId);
        if(shopRelUserList!=null&&!shopRelUserList.isEmpty()){
        if (shopRelUserList != null && !shopRelUserList.isEmpty()) {
            StringJoiner shopUserJs = new StringJoiner(",");
            StringJoiner shopUserNameJs = new StringJoiner(",");
            for(ShopRelUser shopRelUser : shopRelUserList){
            for (ShopRelUser shopRelUser : shopRelUserList) {
                shopUserJs.add(shopRelUser.getUserId().toString());
                shopUserNameJs.add(shopRelUser.getUserName());
            }
@@ -580,12 +618,12 @@
        }
        //商户图片
        List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId);
        if(shopFileList!=null&&!shopFileList.isEmpty()){
        if (shopFileList != null && !shopFileList.isEmpty()) {
            StringJoiner shopBannerJs = new StringJoiner(",");
            for(ShopFile shopFile : shopFileList){
                if(shopFile.getFileType()==1){
            for (ShopFile shopFile : shopFileList) {
                if (shopFile.getFileType() == 1) {
                    mgtShopInfoVo.setShopPicture(shopFile.getFileUrl());
                }else{
                } else {
                    shopBannerJs.add(shopFile.getFileUrl());
                }
            }
@@ -599,22 +637,23 @@
    /**
     * 修改商户标签
     *
     * @param mgtEditShopTagDto
     */
    @Override
    public void editShopTag(MgtEditShopTagDto mgtEditShopTagDto){
    public void editShopTag(MgtEditShopTagDto mgtEditShopTagDto) {
        Long shopId = Long.valueOf(mgtEditShopTagDto.getId());
        String shopTagIds = mgtEditShopTagDto.getShopTagIds();
        String shopTags = null;
        //删除以前的标签
        shopRelTagService.deleteByShopId(shopId);
        if(StringUtils.isNotBlank(shopTagIds)){
        if (StringUtils.isNotBlank(shopTagIds)) {
            ShopRelTag shopRelTag;
            SysTag sysTag;
            Long tagId;
            String[] shopTagIdArray = shopTagIds.split(",");
            StringJoiner shopTagSj = new StringJoiner(",");
            for(String str : shopTagIdArray){
            for (String str : shopTagIdArray) {
                tagId = Long.valueOf(str);
                sysTag = configService.getSysTag(tagId).getData();
                shopRelTag = new ShopRelTag();
@@ -633,17 +672,17 @@
    /**
     * @description  转移客户
     * @author  jqs
     * @date    2023/6/28 16:36
     * @param mgtTransferShopDto
     * @return  void
     * @return void
     * @description 转移客户
     * @author jqs
     * @date 2023/6/28 16:36
     */
    @Override
    public void transferMgtShop(MgtTransferShopDto mgtTransferShopDto){
    public void transferMgtShop(MgtTransferShopDto mgtTransferShopDto) {
        Shop shop = this.getByShopId(mgtTransferShopDto.getShopId());
        if(shop.getBelongUserId()!=null){
            if(shop.getBelongUserId().equals(mgtTransferShopDto.getUserId())){
        if (shop.getBelongUserId() != null) {
            if (shop.getBelongUserId().equals(mgtTransferShopDto.getUserId())) {
                throw new ServiceException(AppErrorConstant.TRANS_NOT_MYSELF);
            }
            ShopTransferRecord shopTransferRecord = new ShopTransferRecord();
@@ -670,24 +709,25 @@
    /**
     * 获取附近门店
     *
     * @param appNearbyShopDto
     * @return
     */
    @Override
    public AppNearbyShopVo getNearbyShop(AppNearbyShopDto appNearbyShopDto,Member member){
    public AppNearbyShopVo getNearbyShop(AppNearbyShopDto appNearbyShopDto, Member member) {
        AppNearbyShopVo appNearbyShopVo = new AppNearbyShopVo();
        Shop shop = null;
        //获取附近商户
        if(member!=null&&member.getRelationShopId()!=null&&member.getBindingFlag()==1){
        if (member != null && member.getRelationShopId() != null && member.getBindingFlag() == 1) {
            //获取绑定商户
            shop = this.getById(member.getRelationShopId());
        }else if(StringUtils.isNotBlank(appNearbyShopDto.getLatitude())&&StringUtils.isNotBlank(appNearbyShopDto.getLongitude())){
        } else if (StringUtils.isNotBlank(appNearbyShopDto.getLatitude()) && StringUtils.isNotBlank(appNearbyShopDto.getLongitude())) {
            AppNearShopVo appNearShopVo = shopMapper.getNearbyShop(appNearbyShopDto);
            shop = this.getById(appNearShopVo.getShopId());
        }else{
        } else {
            return appNearbyShopVo;
        }
        if(member!=null&&member.getBindingFlag()!=1){
        if (member != null && member.getBindingFlag() != 1) {
            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
            appMemberBindingDto.setShopId(shop.getShopId());
            appMemberBindingDto.setShopName(shop.getShopName());
@@ -697,36 +737,36 @@
        }
        appNearbyShopVo.setShopId(shop.getShopId());
        appNearbyShopVo.setShopName(shop.getShopName());
        appNearbyShopVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress());
        appNearbyShopVo.setShopAddress(shop.getShopAreaName() + shop.getShopAddress());
        appNearbyShopVo.setShopLatitude(shop.getShopLatitude());
        appNearbyShopVo.setShopLongitude(shop.getShopLongitude());
        return appNearbyShopVo;
    }
    /**
     *
     * @param shopId
     * @return
     */
    @Override
    public Shop getByShopId(Long shopId){
    public Shop getByShopId(Long shopId) {
        LambdaQueryWrapper<Shop> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.eq(Shop::getDelFlag, 0).eq(Shop::getShopId, shopId);
        Shop shop = this.getOne(queryWrapper,false);
        Shop shop = this.getOne(queryWrapper, false);
        return shop;
    }
    /**
     * 获取获取员工端首页统计
     *
     * @param userId
     * @return
     */
    @Override
    public StaffHomeShopTotalVo getStaffHomeTotal(Long userId){
    public StaffHomeShopTotalVo getStaffHomeTotal(Long userId) {
        List<Long> userIds = null;
        List<Long> shopIds = null;
        //如果是leader 查询leader下面所有的员工下的所有shopId
        if(remoteSysStaffService.isLeader()){
        if (remoteSysStaffService.isLeader()) {
            userIds = sysUserService.getUserIdsByDept(userId).getData();
            //根据用户所有id查询关联的商户id
            MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
@@ -734,7 +774,7 @@
            shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
        }else {
        } else {
            //普通员工查询商户归属的shopId
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
@@ -747,16 +787,25 @@
        staffHomeShopTotalVo.setShopTask(shopTaskCount);
        return staffHomeShopTotalVo;
    }
    /**
     * 获取商户端
     * @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);
        merHomeShopTotalVo.setShopType(shop.getShopType());
@@ -776,26 +825,28 @@
    /**
     * 获取商户绑定代理商
     *
     * @param page
     * @param merAgencyPageDto
     * @return
     */
    @Override
    public List<MerAgencyPageVo> pageMerAgencyVo(Page page, MerAgencyPageDto merAgencyPageDto){
    public List<MerAgencyPageVo> pageMerAgencyVo(Page page, MerAgencyPageDto merAgencyPageDto) {
        List<MerAgencyPageVo> merAgencyPageVoList = shopMapper.pageMerAgencyVo(page, merAgencyPageDto);
        return merAgencyPageVoList;
    }
    /**
     * 处理商户员工
     *
     * @param shopId
     * @param sysUser
     */
    private void handleShopStaff(Long shopId,SysUser sysUser){
    private void handleShopStaff(Long shopId, SysUser sysUser) {
        ShopStaff shopStaff = shopStaffService.getByUserId(sysUser.getUserId());
        if(shopStaff!=null){
        if (shopStaff != null) {
            shopStaff.setShopId(shopId);
        }else{
        } else {
            String staffId = IdUtils.simpleUUID();
            shopStaff = new ShopStaff();
            shopStaff.setStaffId(staffId);
@@ -811,42 +862,42 @@
    }
    /**
     * @description  平台获取商户分成列表
     * @author  jqs
     * @date    2023/6/8 9:25
     * @param page
     * @param mgtShopProportionPageDto
     * @return  List<MgtShopProportionPageVo>
     * @return List<MgtShopProportionPageVo>
     * @description 平台获取商户分成列表
     * @author jqs
     * @date 2023/6/8 9:25
     */
    @Override
    public List<MgtShopProportionPageVo> pageMgtShopProportion(Page page, MgtShopProportionPageDto mgtShopProportionPageDto){
        return shopMapper.pageMgtShopProportion(page,mgtShopProportionPageDto);
    public List<MgtShopProportionPageVo> pageMgtShopProportion(Page page, MgtShopProportionPageDto mgtShopProportionPageDto) {
        return shopMapper.pageMgtShopProportion(page, mgtShopProportionPageDto);
    }
    /**
     * @description  删除商户标签
     * @author  jqs
     * @date    2023/6/8 15:53
     * @param shopTag
     * @return  void
     * @return void
     * @description 删除商户标签
     * @author jqs
     * @date 2023/6/8 15:53
     */
    @Override
    public void deleteShopTag(String shopTag){
    public void deleteShopTag(String shopTag) {
        shopMapper.deleteShopTag(shopTag);
    }
    /**
     * @description  通过code获取shopId
     * @author  jqs
     * @date    2023/6/9 16:40
     * @param mgtShopIdByCodeDto
     * @return  MgtShopIdByCodeVo
     * @return MgtShopIdByCodeVo
     * @description 通过code获取shopId
     * @author jqs
     * @date 2023/6/9 16:40
     */
    @Override
    public MgtShopIdByCodeVo getShopIdByCode(MgtShopIdByCodeDto mgtShopIdByCodeDto){
    public MgtShopIdByCodeVo getShopIdByCode(MgtShopIdByCodeDto mgtShopIdByCodeDto) {
        MgtShopIdByCodeVo mgtShopIdByCodeVo = new MgtShopIdByCodeVo();
        List<Long> shopIdList = shopMapper.getShopIdByCode(mgtShopIdByCodeDto);
        if(shopIdList!=null&&!shopIdList.isEmpty()){
        if (shopIdList != null && !shopIdList.isEmpty()) {
            String shopIdStr = shopIdList.stream()
                    .map(Object::toString)
                    .collect(Collectors.joining(","));
@@ -856,171 +907,97 @@
    }
    /**
     * @description  获取商户list
     * @author  jqs
     * @date    2023/6/12 14:37
     * @param mgtShopListDto
     * @return  List<MgtShopListSimpleVo>
     * @return List<MgtShopListSimpleVo>
     * @description 获取商户list
     * @author jqs
     * @date 2023/6/12 14:37
     */
    @Override
    public List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto){
    public List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto) {
        return shopMapper.listMgtShopSimpleVo(mgtShopListDto);
    }
    /**
     * @description  通过id获取商户列表
     * @author  jqs
     * @date    2023/6/14 17:53
     * @param shopIds
     * @return  List<MgtShopListSimpleVo>
     * @return List<MgtShopListSimpleVo>
     * @description 通过id获取商户列表
     * @author jqs
     * @date 2023/6/14 17:53
     */
    @Override
    public List<MgtSimpleShopVo> listShopSimpleVoByIds(String shopIds){
    public List<MgtSimpleShopVo> listShopSimpleVoByIds(String shopIds) {
        return shopMapper.listShopSimpleVoByIds(shopIds);
    }
    /**
     * @description pageMgtShopByCityCode
     * @param page
     * @param mgtShopByCodePageDto
     * @return List<MgtSimpleShopVo>
     * @description pageMgtShopByCityCode
     * @author jqs34
     * @date 2023/6/14 20:56
     */
    @Override
    public List<MgtSimpleShopVo> pageMgtShopByCityCode(Page page, MgtShopByCodePageDto mgtShopByCodePageDto){
    public List<MgtSimpleShopVo> pageMgtShopByCityCode(Page page, MgtShopByCodePageDto mgtShopByCodePageDto) {
        return shopMapper.pageMgtShopByCityCode(page, mgtShopByCodePageDto);
    }
    /**
     * @description pageMgtShopAuth
     * @param page
     * @param mgtShopAuthPageDto
     * @return List<MgtShopAuthPageVo>
     * @description pageMgtShopAuth
     * @author jqs34
     * @date 2023/6/14 23:01
     */
    @Override
    public List<MgtShopAuthPageVo> pageMgtShopAuth(Page page,  MgtShopAuthPageDto mgtShopAuthPageDto){
    public List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, MgtShopAuthPageDto mgtShopAuthPageDto) {
        return shopMapper.pageMgtShopAuth(page, mgtShopAuthPageDto);
    }
    /**
     * @description boardShopTotal
     * @param
     * @return MgtBulletinBoardVo
     * @description boardShopTotal
     * @author jqs34
     * @date 2023/6/18 16:59
     */
    @Override
    public MgtBulletinBoardVo boardShopTotal(){
    public MgtBulletinBoardVo boardShopTotal() {
        MgtBulletinBoardVo mgtBulletinBoardVoShop = shopMapper.shopTotal();
        return mgtBulletinBoardVoShop;
    }
    /**
     * @description  商户进件
     * @author  jqs
     * @date    2023/6/19 11:02
     * @param mgtShopAuthDto
     * @return  void
     * @return void
     * @description 商户进件
     * @author jqs
     * @date 2023/6/19 11:02
     */
    @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);
        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);
        }
        // 提交申请 -> 资料校验中
        shopAuthentication.setAuditStatus(1);
        ApplymentsResult result = wechatPayUtils.ecommerceApply(shopAuthentication, applyNumber, shop);
        // 微信支付申请单号
        shopAuthentication.setApplymentId(result.getApplymentId());
        shopAuthenticationService.saveOrUpdate(shopAuthentication);
    }
    /**
     * @description  获取平台商户统计
     * @author  jqs
     * @date    2023/6/21 16:25
     * @param mgtBasePlatformDto
     * @return  MgtPlTotalShopTotalVo
     * @return MgtPlTotalShopTotalVo
     * @description 获取平台商户统计
     * @author jqs
     * @date 2023/6/21 16:25
     */
    @Override
    public MgtPlTotalShopTotalVo getPlTotalShopTotal(MgtBasePlatformDto mgtBasePlatformDto) {
@@ -1091,15 +1068,15 @@
    }
    /**
     * @description  去除空字符串
     * @author  jqs
     * @date    2023/6/27 17:35
     * @param MgtMapIntTotalVos
     * @return  List<MgtMapIntTotalVo>
     * @return List<MgtMapIntTotalVo>
     * @description 去除空字符串
     * @author jqs
     * @date 2023/6/27 17:35
     */
    private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos){
    private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos) {
        for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
            if(StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())){
            if (StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())) {
                MgtMapIntTotalVos.remove(i);
            }
        }
@@ -1107,28 +1084,28 @@
    }
    /**
     * @description 获取平台统计shopId
     * @param mgtBasePlatformDto
     * @return List<Long>
     * @description 获取平台统计shopId
     * @author jqs34
     * @date 2023/6/23 14:12
     */
    @Override
    public List<Long> listShopIdByPlTotal(MgtBasePlatformDto mgtBasePlatformDto){
    public List<Long> listShopIdByPlTotal(MgtBasePlatformDto mgtBasePlatformDto) {
        List<Long> shopIdList = shopMapper.listShopIdByPlTotal(mgtBasePlatformDto);
        return shopIdList;
    }
    /**
     * @description  获取商户审核资料
     * @author  jqs
     * @date    2023/6/25 10:37
     * @param authId
     * @return  MgtShopAuthGetVo
     * @return MgtShopAuthGetVo
     * @description 获取商户审核资料
     * @author jqs
     * @date 2023/6/25 10:37
     */
    @Override
    public MgtShopAuthGetVo getMgtShopAuth(String authId){
    public MgtShopAuthGetVo getMgtShopAuth(String authId) {
        MgtShopAuthGetVo shopAuthGetVo = new MgtShopAuthGetVo();
        ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId);
        BeanUtils.copyProperties(shopAuthentication, shopAuthGetVo);
@@ -1136,14 +1113,14 @@
    }
    /**
     * @description  获取商户验证信息
     * @author  jqs
     * @date    2023/6/26 10:38
     * @param authId
     * @return  MgtShopAuthCodeVo
     * @return MgtShopAuthCodeVo
     * @description 获取商户验证信息
     * @author jqs
     * @date 2023/6/26 10:38
     */
    @Override
    public MgtShopAuthCodeVo getMgtShopAuthCode(String authId){
    public MgtShopAuthCodeVo getMgtShopAuthCode(String authId) {
        MgtShopAuthCodeVo mgtShopAuthCodeVo = new MgtShopAuthCodeVo();
        ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId);
        mgtShopAuthCodeVo.setSignUrl(shopAuthentication.getSignUrl());
@@ -1153,14 +1130,14 @@
    /**
     * @description  获取商户下属代理商
     * @author  jqs
     * @date    2023/7/3 17:27
     * @param shopId
     * @return  List<Long>
     * @return List<Long>
     * @description 获取商户下属代理商
     * @author jqs
     * @date 2023/7/3 17:27
     */
    @Override
    public List<Long> listShopIdByShopId(Long shopId){
    public List<Long> listShopIdByShopId(Long shopId) {
        List<Long> shopIds = shopMapper.selectList(
                new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId)
        ).stream().map(Shop::getShopId).collect(Collectors.toList());
@@ -1168,17 +1145,17 @@
    }
    /**
     * @description  获取商户下属代理商
     * @author  jqs
     * @date    2023/7/3 18:18
     * @param shopId
     * @return  List<MgtSimpleShopVo>
     * @return List<MgtSimpleShopVo>
     * @description 获取商户下属代理商
     * @author jqs
     * @date 2023/7/3 18:18
     */
    @Override
    public List<MgtSimpleShopVo> listShopByShop(Long shopId){
    public List<MgtSimpleShopVo> listShopByShop(Long shopId) {
        List<MgtSimpleShopVo> simpleShopVoList = shopMapper.selectList(
                new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId)).
                stream().map(shop->{
                        new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId)).
                stream().map(shop -> {
                    MgtSimpleShopVo simpleShopVo = new MgtSimpleShopVo();
                    simpleShopVo.setShopId(shop.getShopId());
                    simpleShopVo.setShopName(shop.getShopName());
@@ -1188,59 +1165,59 @@
    }
    /**
     * @description  获取用户管理商户
     * @author  jqs
     * @date    2023/7/14 10:00
     * @param userId
     * @return  Shop
     * @return Shop
     * @description 获取用户管理商户
     * @author jqs
     * @date 2023/7/14 10:00
     */
    @Override
    public Shop getShopByBelongUserId(Long userId){
    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);
        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>
     * @return List<StaffShopPageVo>
     * @description 员工端获取商户列表
     * @author jqs
     * @date 2023/7/14 15:26
     */
    @Override
    public List<StaffShopPageVo> pageStaffShop(Page page, StaffShopPageDto staffShopPageDto){
    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
     * @return StaffShopSimpleTotalVo
     * @description 获取员工端商户数量统计
     * @author jqs
     * @date 2023/7/14 15:51
     */
    @Override
    public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){
    public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId) {
        List<Long> userIdList = null;
        if(remoteSysStaffService.isLeader()){
        if (remoteSysStaffService.isLeader()) {
            userIdList = sysUserService.getUserIdsByDept(userId).getData();
            userIdList.add(userId);
        }else {
        } else {
            userIdList.add(userId);
        }
        return shopMapper.getStaffSimpleTotal(userIdList);
    }
    /**
     * @description  员工端获取商户详情
     * @author  jqs
     * @date    2023/7/14 18:32
     * @param shopId
     * @return  StaffShopInfoGetVo
     * @return StaffShopInfoGetVo
     * @description 员工端获取商户详情
     * @author jqs
     * @date 2023/7/14 18:32
     */
    @Override
    public StaffShopInfoGetVo getStaffShopInfo(Long shopId) {
@@ -1319,14 +1296,14 @@
    }
    /**
     * @description  修改商户评估
     * @author  jqs
     * @date    2023/7/15 10:18
     * @param staffShopEstimateEditDto
     * @return  void
     * @return void
     * @description 修改商户评估
     * @author jqs
     * @date 2023/7/15 10:18
     */
    @Override
    public void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto){
    public void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto) {
        Shop shop = new Shop();
        shop.setShopId(staffShopEstimateEditDto.getShopId());
        shop.setSupportingCapacityFlag(staffShopEstimateEditDto.getSupportingCapacityFlag());
@@ -1343,18 +1320,18 @@
    }
    /**
     * @description  修改店铺扩展联系人
     * @author  jqs
     * @date    2023/7/15 11:06
     * @param staffShopECEditDto
     * @return  void
     * @return void
     * @description 修改店铺扩展联系人
     * @author jqs
     * @date 2023/7/15 11:06
     */
    @Override
    public void editExtendContacts(StaffShopECEditDto staffShopECEditDto){
    public void editExtendContacts(StaffShopECEditDto staffShopECEditDto) {
        Shop shop = new Shop();
        String extendContacts = null;
        List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList();
        if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){
        if (extendContactsVoList != null && !extendContactsVoList.isEmpty()) {
            extendContacts = JSON.toJSONString(extendContactsVoList);
        }
        shop.setExtendContacts(extendContacts);
@@ -1365,14 +1342,14 @@
    }
    /**
     * @description  修改店铺状态
     * @author  jqs
     * @date    2023/7/15 11:51
     * @param staffShopCCEditDto
     * @return  void
     * @return void
     * @description 修改店铺状态
     * @author jqs
     * @date 2023/7/15 11:51
     */
    @Override
    public void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto){
    public void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto) {
        Shop shop = new Shop();
        shop.setShopCustomStatus(staffShopCCEditDto.getShopCustomStatus());
        shop.setShopId(staffShopCCEditDto.getShopId());
@@ -1380,4 +1357,44 @@
        shop.setUpdateTime(new Date());
        shopMapper.updateShop(shop);
    }
    @Override
    public void queryEcommerceApplyMentsStatus() {
        List<ShopAuthentication> list = shopAuthenticationService.getShopAuthNeedUpdateStatus();
        list.forEach(item -> queryApplyStatusByApplymentId(item.getApplymentId(), item.getShopId()));
    }
    /**
     * 调用微信接口查询申请审核状态
     * @param applymentId
     */
    private void queryApplyStatusByApplymentId(String applymentId, Long shopId) {
        try {
            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);
    }
}