无关风月
2 天以前 3044a637a15e09d50ad733fd482c6e64e90df2f9
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java
@@ -29,6 +29,7 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.wechat.pay.contrib.apache.httpclient.auth.PrivateKeySigner;
import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
import com.wechat.pay.java.core.exception.MalformedMessageException;
@@ -133,8 +134,16 @@
        franchiseeLambdaQueryWrapper = StringUtils.isNotBlank(name) ? franchiseeLambdaQueryWrapper.like(Franchisee::getName, name) : franchiseeLambdaQueryWrapper;
        franchiseeLambdaQueryWrapper = StringUtils.isNotBlank(head) ? franchiseeLambdaQueryWrapper.like(Franchisee::getHead, head) : franchiseeLambdaQueryWrapper;
        franchiseeLambdaQueryWrapper = StringUtils.isNotBlank(phone) ? franchiseeLambdaQueryWrapper.like(Franchisee::getHeadPhone, phone) : franchiseeLambdaQueryWrapper;
        franchiseeLambdaQueryWrapper = StringUtils.isNotBlank(city) ? franchiseeLambdaQueryWrapper.like(Franchisee::getCity, city) : franchiseeLambdaQueryWrapper;
        List<Franchisee> list = franchiseeService.list(franchiseeLambdaQueryWrapper);
        if (org.springframework.util.StringUtils.hasLength(city)){
            String[] cityCodes = city.split(",");
            franchiseeLambdaQueryWrapper.and(e->{
                List<String> list = Arrays.asList(cityCodes);
                e.like(Franchisee::getCityCode,list.get(0));
                for (int i = 1; i < list.size(); i++) {
                    e.or().like(Franchisee::getCityCode,list.get(i));
                }
            });
        }        List<Franchisee> list = franchiseeService.list(franchiseeLambdaQueryWrapper);
        List<Integer> collect = list.stream().map(Franchisee::getId).collect(Collectors.toList());
        if (collect.isEmpty())collect.add(-1);
        for (Franchisee franchisee : list) {
@@ -738,21 +747,43 @@
        wrapper = StringUtils.isNotBlank(dto.getPhone()) ? wrapper.like(Franchisee::getHeadPhone, dto.getPhone()) : wrapper;
        if (org.springframework.util.StringUtils.hasLength(dto.getCity())){
            String[] cityCodes = dto.getCity().split(",");
            wrapper.and(wrapperLike -> {
                Arrays.stream(cityCodes)
                        .forEach(code -> wrapperLike.like(Franchisee::getCityCode, code));
            wrapper.and(e->{
                List<String> list = Arrays.asList(cityCodes);
                e.like(Franchisee::getCityCode,list.get(0));
                for (int i = 1; i < list.size(); i++) {
                    e.or().like(Franchisee::getCityCode,list.get(i));
                }
            });
        }
//        if (StringUtils.isNotBlank(dto.getCity())) {
//            String[] cityCodes = Arrays.stream(dto.getCity().split(","))
//                    .map(String::trim)
//                    .filter(StringUtils::isNotBlank)
//                    .distinct()
//                    .toArray(String[]::new);
//
//            if (cityCodes.length > 0) {
//                wrapper.and(andWrapper -> {
//                    Arrays.stream(cityCodes).forEach(code ->
//                            andWrapper.or()
//                                    .apply("CONCAT(',', city_code, ',') LIKE CONCAT('%,', {0}, ',%')", code)
//                    );
//                });
//            }
//        }
        Page<Franchisee> page = wrapper.eq(Franchisee::getIsDelete, 0)
                .orderByDesc(Franchisee::getCreateTime).page(Page.of(dto.getPageNum(), dto.getPageSize()));
        wrapper.eq(Franchisee::getIsDelete, 0).orderByDesc(Franchisee::getCreateTime);
        Page<Franchisee> page = wrapper.page(Page.of(dto.getPageNum(), dto.getPageSize()));
        for (Franchisee record : page.getRecords()) {
                if (record.getSiteIds()!=null){
                    String[] split = record.getSiteIds().split(",");
                    List<Site> list = siteService.lambdaQuery().in(Site::getId, split).list();
                        //用 , 拼接
                    record.setSiteStr(list.stream().map(Site::getSiteName).collect(Collectors.joining(",")));
                }
            if (record.getSiteIds()!=null){
                String[] split = record.getSiteIds().split(",");
                List<Site> list = siteService.lambdaQuery().in(Site::getId, split).list();
                //用 , 拼接
                record.setSiteStr(list.stream().map(Site::getSiteName).collect(Collectors.joining(",")));
            }
        }
@@ -1030,4 +1061,47 @@
        return franchiseeService.updateBatchById(list) ? R.ok() : R.fail();
    }
    /**
     * 设置加盟商操作密码
     *
     */
    @ApiOperation(value = "设置加盟商操作密码【202506】", tags = {"后台-加盟商管理"})
    @PutMapping(value = "/setPayPassword")
    public R<String> setPayPassword(@RequestParam(value = "payPassword") String payPassword) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserService.getById(userid);
        if(Objects.isNull(sysUser.getFranchiseeId())){
            return R.fail("加盟商信息不存在!");
        }
        Franchisee franchisee = franchiseeService.getById(sysUser.getFranchiseeId());
        franchisee.setPayPassword(SecurityUtils.encryptPassword(payPassword));
        return franchiseeService.updateById(franchisee) ? R.ok() : R.fail();
    }
    /**
     * 设置加盟商操作密码
     *
     */
    @ApiOperation(value = "加盟商余额扣除撤回【202506】", tags = {"后台-加盟商管理"})
    @PutMapping(value = "/balanceWithdraw")
    public R<String> balanceWithdraw(@RequestParam(value = "id") Integer id,
                                     @RequestParam(value = "payPassword") String payPassword) {
        TFranchiseeBalanceChange balanceChange = balanceChangeService.getById(id);
        Franchisee franchisee = franchiseeService.getById(balanceChange.getFranchiseeId());
        if(!SecurityUtils.matchesPassword(payPassword, franchisee.getPayPassword())){
            return R.fail("密码错误!");
        }
        franchisee.setBalance(franchisee.getBalance().add(balanceChange.getAmount()));
        franchiseeService.updateById(franchisee);
        // 删除操作记录
        balanceChangeService.removeById(id);
        return R.ok();
    }
}