ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -2,9 +2,12 @@
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;
@@ -18,6 +21,7 @@
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;
@@ -124,6 +128,7 @@
    /**
     * 获取商户详情
     *
     * @param shopId
     * @return
     */
@@ -159,6 +164,7 @@
    /**
     * 创建商户
     *
     * @param mgtEditShopDto
     */
    @Override
@@ -321,12 +327,12 @@
    }
    /**
     * @description  商户关联类初始化
     * @author  jqs
     * @date    2023/7/7 11:25
     * @param shop
     * @param userId
     * @return  void
     * @description 商户关联类初始化
     * @author jqs
     * @date 2023/7/7 11:25
     */
    private void initNewShop(Shop shop,Long userId){
        BigDecimal zeroBig = new BigDecimal("0.00");
@@ -394,11 +400,11 @@
    }
    /**
     * @param mgtTerminateCooperationDto
     * @return void
     * @description  终止合作
     * @author  jqs
     * @date    2023/6/20 12:01
     * @param mgtTerminateCooperationDto
     * @return  void
     */
    @Override
    public void terminateMgtCooperation(MgtTerminateCooperationDto mgtTerminateCooperationDto){
@@ -422,11 +428,11 @@
    }
    /**
     * @param mgtFrozenShopDto
     * @return void
     * @description  冻结商户
     * @author  jqs
     * @date    2023/7/15 13:56
     * @param mgtFrozenShopDto
     * @return  void
     */
    @Override
    public void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto){
@@ -441,11 +447,11 @@
    }
    /**
     * @param
     * @return Integer
     * @description  处理商户状态
     * @author  jqs
     * @date    2023/7/15 14:09
     * @param
     * @return  Integer
     */
    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){
        Integer shopStatus = 1;
@@ -467,6 +473,7 @@
    /**
     * 修改合作时间
     *
     * @param mgtChangeCoopDto
     */
    @Override
@@ -500,6 +507,7 @@
    /**
     * 分页获取商户
     *
     * @param page
     * @param mgtShopPageDto
     * @return
@@ -563,6 +571,7 @@
    /**
     * 获取商户详情
     *
     * @param shopId
     * @return
     */
@@ -628,6 +637,7 @@
    /**
     * 修改商户标签
     *
     * @param mgtEditShopTagDto
     */
    @Override
@@ -662,11 +672,11 @@
    /**
     * @param mgtTransferShopDto
     * @return void
     * @description  转移客户
     * @author  jqs
     * @date    2023/6/28 16:36
     * @param mgtTransferShopDto
     * @return  void
     */
    @Override
    public void transferMgtShop(MgtTransferShopDto mgtTransferShopDto){
@@ -699,6 +709,7 @@
    /**
     * 获取附近门店
     *
     * @param appNearbyShopDto
     * @return
     */
@@ -733,7 +744,6 @@
    }
    /**
     *
     * @param shopId
     * @return
     */
@@ -747,6 +757,7 @@
    /**
     * 获取获取员工端首页统计
     *
     * @param userId
     * @return
     */
@@ -776,8 +787,10 @@
        staffHomeShopTotalVo.setShopTask(shopTaskCount);
        return staffHomeShopTotalVo;
    }
    /**
     * 获取商户端
     *
     * @param merBaseDto
     * @return
     */
@@ -812,6 +825,7 @@
    /**
     * 获取商户绑定代理商
     *
     * @param page
     * @param merAgencyPageDto
     * @return
@@ -824,6 +838,7 @@
    /**
     * 处理商户员工
     *
     * @param shopId
     * @param sysUser
     */
@@ -847,12 +862,12 @@
    }
    /**
     * @description  平台获取商户分成列表
     * @author  jqs
     * @date    2023/6/8 9:25
     * @param page
     * @param mgtShopProportionPageDto
     * @return  List<MgtShopProportionPageVo>
     * @description 平台获取商户分成列表
     * @author jqs
     * @date 2023/6/8 9:25
     */
    @Override
    public List<MgtShopProportionPageVo> pageMgtShopProportion(Page page, MgtShopProportionPageDto mgtShopProportionPageDto){
@@ -860,11 +875,11 @@
    }
    /**
     * @param shopTag
     * @return void
     * @description  删除商户标签
     * @author  jqs
     * @date    2023/6/8 15:53
     * @param shopTag
     * @return  void
     */
    @Override
    public void deleteShopTag(String shopTag){
@@ -872,11 +887,11 @@
    }
    /**
     * @param mgtShopIdByCodeDto
     * @return MgtShopIdByCodeVo
     * @description  通过code获取shopId
     * @author  jqs
     * @date    2023/6/9 16:40
     * @param mgtShopIdByCodeDto
     * @return  MgtShopIdByCodeVo
     */
    @Override
    public MgtShopIdByCodeVo getShopIdByCode(MgtShopIdByCodeDto mgtShopIdByCodeDto){
@@ -892,11 +907,11 @@
    }
    /**
     * @param mgtShopListDto
     * @return List<MgtShopListSimpleVo>
     * @description  获取商户list
     * @author  jqs
     * @date    2023/6/12 14:37
     * @param mgtShopListDto
     * @return  List<MgtShopListSimpleVo>
     */
    @Override
    public List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto){
@@ -904,11 +919,11 @@
    }
    /**
     * @param shopIds
     * @return List<MgtShopListSimpleVo>
     * @description  通过id获取商户列表
     * @author  jqs
     * @date    2023/6/14 17:53
     * @param shopIds
     * @return  List<MgtShopListSimpleVo>
     */
    @Override
    public List<MgtSimpleShopVo> listShopSimpleVoByIds(String shopIds){
@@ -916,10 +931,10 @@
    }
    /**
     * @description pageMgtShopByCityCode
     * @param page
     * @param mgtShopByCodePageDto
     * @return List<MgtSimpleShopVo>
     * @description pageMgtShopByCityCode
     * @author jqs34
     * @date 2023/6/14 20:56
     */
@@ -929,10 +944,10 @@
    }
    /**
     * @description pageMgtShopAuth
     * @param page
     * @param mgtShopAuthPageDto
     * @return List<MgtShopAuthPageVo>
     * @description pageMgtShopAuth
     * @author jqs34
     * @date 2023/6/14 23:01
     */
@@ -942,9 +957,9 @@
    }
    /**
     * @description boardShopTotal
     * @param
     * @return MgtBulletinBoardVo
     * @description boardShopTotal
     * @author jqs34
     * @date 2023/6/18 16:59
     */
@@ -955,11 +970,11 @@
    }
    /**
     * @param mgtShopAuthDto
     * @return void
     * @description  商户进件
     * @author  jqs
     * @date    2023/6/19 11:02
     * @param mgtShopAuthDto
     * @return  void
     */
    @Override
    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException {
@@ -968,17 +983,21 @@
        String applyNumber = IdUtils.simpleUUID();
        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
        shopAuthentication.setApplyNumber(applyNumber);
        shopAuthentication.setAuditStatus(3);
        // 提交申请 -> 资料校验中
        shopAuthentication.setAuditStatus(1);
        ApplymentsResult result = wechatPayUtils.ecommerceApply(shopAuthentication, applyNumber, shop);
        // 微信支付申请单号
        shopAuthentication.setApplymentId(result.getApplymentId());
        shopAuthenticationService.saveOrUpdate(shopAuthentication);
        wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop);
    }
    /**
     * @param mgtBasePlatformDto
     * @return MgtPlTotalShopTotalVo
     * @description  获取平台商户统计
     * @author  jqs
     * @date    2023/6/21 16:25
     * @param mgtBasePlatformDto
     * @return  MgtPlTotalShopTotalVo
     */
    @Override
    public MgtPlTotalShopTotalVo getPlTotalShopTotal(MgtBasePlatformDto mgtBasePlatformDto) {
@@ -1049,11 +1068,11 @@
    }
    /**
     * @param MgtMapIntTotalVos
     * @return List<MgtMapIntTotalVo>
     * @description  去除空字符串
     * @author  jqs
     * @date    2023/6/27 17:35
     * @param MgtMapIntTotalVos
     * @return  List<MgtMapIntTotalVo>
     */
    private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos){
        for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
@@ -1065,9 +1084,9 @@
    }
    /**
     * @description 获取平台统计shopId
     * @param mgtBasePlatformDto
     * @return List<Long>
     * @description 获取平台统计shopId
     * @author jqs34
     * @date 2023/6/23 14:12
     */
@@ -1079,11 +1098,11 @@
    /**
     * @param authId
     * @return MgtShopAuthGetVo
     * @description  获取商户审核资料
     * @author  jqs
     * @date    2023/6/25 10:37
     * @param authId
     * @return  MgtShopAuthGetVo
     */
    @Override
    public MgtShopAuthGetVo getMgtShopAuth(String authId){
@@ -1094,11 +1113,11 @@
    }
    /**
     * @param authId
     * @return MgtShopAuthCodeVo
     * @description  获取商户验证信息
     * @author  jqs
     * @date    2023/6/26 10:38
     * @param authId
     * @return  MgtShopAuthCodeVo
     */
    @Override
    public MgtShopAuthCodeVo getMgtShopAuthCode(String authId){
@@ -1111,11 +1130,11 @@
    /**
     * @param shopId
     * @return List<Long>
     * @description  获取商户下属代理商
     * @author  jqs
     * @date    2023/7/3 17:27
     * @param shopId
     * @return  List<Long>
     */
    @Override
    public List<Long> listShopIdByShopId(Long shopId){
@@ -1126,11 +1145,11 @@
    }
    /**
     * @param shopId
     * @return List<MgtSimpleShopVo>
     * @description  获取商户下属代理商
     * @author  jqs
     * @date    2023/7/3 18:18
     * @param shopId
     * @return  List<MgtSimpleShopVo>
     */
    @Override
    public List<MgtSimpleShopVo> listShopByShop(Long shopId){
@@ -1146,11 +1165,11 @@
    }
    /**
     * @param userId
     * @return Shop
     * @description  获取用户管理商户
     * @author  jqs
     * @date    2023/7/14 10:00
     * @param userId
     * @return  Shop
     */
    @Override
    public Shop getShopByBelongUserId(Long userId){
@@ -1161,12 +1180,12 @@
    }
    /**
     * @description  员工端获取商户列表
     * @author  jqs
     * @date    2023/7/14 15:26
     * @param page
     * @param staffShopPageDto
     * @return  List<StaffShopPageVo>
     * @description 员工端获取商户列表
     * @author jqs
     * @date 2023/7/14 15:26
     */
    @Override
    public List<StaffShopPageVo> pageStaffShop(Page page, StaffShopPageDto staffShopPageDto){
@@ -1175,11 +1194,11 @@
    }
    /**
     * @param userId
     * @return StaffShopSimpleTotalVo
     * @description  获取员工端商户数量统计
     * @author  jqs
     * @date    2023/7/14 15:51
     * @param userId
     * @return  StaffShopSimpleTotalVo
     */
    @Override
    public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){
@@ -1194,11 +1213,11 @@
    }
    /**
     * @param shopId
     * @return StaffShopInfoGetVo
     * @description  员工端获取商户详情
     * @author  jqs
     * @date    2023/7/14 18:32
     * @param shopId
     * @return  StaffShopInfoGetVo
     */
    @Override
    public StaffShopInfoGetVo getStaffShopInfo(Long shopId) {
@@ -1277,11 +1296,11 @@
    }
    /**
     * @param staffShopEstimateEditDto
     * @return void
     * @description  修改商户评估
     * @author  jqs
     * @date    2023/7/15 10:18
     * @param staffShopEstimateEditDto
     * @return  void
     */
    @Override
    public void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto){
@@ -1301,11 +1320,11 @@
    }
    /**
     * @param staffShopECEditDto
     * @return void
     * @description  修改店铺扩展联系人
     * @author  jqs
     * @date    2023/7/15 11:06
     * @param staffShopECEditDto
     * @return  void
     */
    @Override
    public void editExtendContacts(StaffShopECEditDto staffShopECEditDto){
@@ -1323,11 +1342,11 @@
    }
    /**
     * @param staffShopCCEditDto
     * @return void
     * @description  修改店铺状态
     * @author  jqs
     * @date    2023/7/15 11:51
     * @param staffShopCCEditDto
     * @return  void
     */
    @Override
    public void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto){
@@ -1338,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);
    }
}