xuhy
8 天以前 640d93c464c65a0ef128f7f357a3e9abe44fbd2c
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java
@@ -11,13 +11,13 @@
import com.alipay.api.AlipayApiException;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.config.WeChatConfig;
import com.ruoyi.admin.entity.*;
import com.ruoyi.admin.service.*;
import com.ruoyi.admin.utils.MD5AndKL;
import com.ruoyi.admin.utils.WeChatUtil;
import com.ruoyi.admin.utils.util.CreateLinkStringByGet1;
import com.ruoyi.admin.utils.util.HttpRequester;
import com.ruoyi.admin.utils.util.HttpRespons;
@@ -34,12 +34,7 @@
import com.wechat.pay.java.core.exception.MalformedMessageException;
import com.wechat.pay.java.core.exception.ServiceException;
import com.wechat.pay.java.core.notification.NotificationParser;
import com.wechat.pay.java.service.partnerpayments.app.model.Transaction;
import com.wechat.pay.java.service.payments.jsapi.model.Amount;
import com.wechat.pay.java.service.payments.jsapi.JsapiService;
import com.wechat.pay.java.service.payments.jsapi.model.Payer;
import com. wechat. pay. java. service. payments. jsapi. model. PrepayRequest;
import com.wechat.pay.java.service.payments.jsapi.model.PrepayResponse;
import com.wechat.pay.java.service.payments.nativepay.NativePayService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -48,9 +43,9 @@
import lombok.Getter;
import org.apache.commons.codec.CharEncoding;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -60,14 +55,12 @@
import java.io.*;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.PrivateKey;
import java.security.SecureRandom;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
@@ -407,7 +400,7 @@
        TFranchiseeBalanceChange tFranchiseeBalanceChange = new TFranchiseeBalanceChange();
        tFranchiseeBalanceChange.setAmount(money.multiply(new BigDecimal("0.9972")).setScale(2,BigDecimal.ROUND_DOWN));
        tFranchiseeBalanceChange.setAmount(money.multiply(new BigDecimal("0.9962")).setScale(2,BigDecimal.ROUND_DOWN));
        tFranchiseeBalanceChange.setIs_pay(0);
        tFranchiseeBalanceChange.setFranchiseeName(byId.getName());
        tFranchiseeBalanceChange.setFranchiseeId(String.valueOf(byId.getId()));
@@ -450,7 +443,7 @@
        BigDecimal money = new BigDecimal(2);
        System.err.println(money.multiply(new BigDecimal("0.9972")).setScale(2,BigDecimal.ROUND_DOWN));
        System.err.println(money.multiply(new BigDecimal("0.9962")).setScale(2,BigDecimal.ROUND_DOWN));
    }
    @ApiOperation(value = "扫码支付",tags = {"后台2.0-加盟商列表余额"})
@@ -509,7 +502,7 @@
//                com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse prepay = nativePayService.prepay(prepayRequest);
            //预支付成功,创建预支付订单
            TFranchiseeBalanceChange tFranchiseeBalanceChange = new TFranchiseeBalanceChange();
            tFranchiseeBalanceChange.setAmount(money.multiply(new BigDecimal("0.9972")).setScale(2,BigDecimal.ROUND_DOWN));
            tFranchiseeBalanceChange.setAmount(money.multiply(new BigDecimal("0.9962")).setScale(2,BigDecimal.ROUND_DOWN));
            tFranchiseeBalanceChange.setIs_pay(0);
            tFranchiseeBalanceChange.setFranchiseeName(byId.getName());
            tFranchiseeBalanceChange.setFranchiseeId(String.valueOf(byId.getId()));
@@ -591,7 +584,7 @@
//                com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse prepay = nativePayService.prepay(prepayRequest);
            //预支付成功,创建预支付订单
            TFranchiseeBalanceChange tFranchiseeBalanceChange = new TFranchiseeBalanceChange();
            tFranchiseeBalanceChange.setAmount(money.multiply(new BigDecimal("0.9972")).setScale(2,BigDecimal.ROUND_DOWN));
            tFranchiseeBalanceChange.setAmount(money.multiply(new BigDecimal("0.9962")).setScale(2,BigDecimal.ROUND_DOWN));
            tFranchiseeBalanceChange.setIs_pay(0);
            tFranchiseeBalanceChange.setFranchiseeName(byId.getName());
            tFranchiseeBalanceChange.setFranchiseeId(String.valueOf(byId.getId()));
@@ -777,12 +770,12 @@
        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(",")));
            }
        }
@@ -906,6 +899,11 @@
                .eq(SysUser::getIsEnable, 1).eq(SysUser::getIsDelete, 0).list();
        if(!list1.isEmpty()){
            return R.passwordError("该管理员账号已存在!");
        }
        // 设置加盟商初始密码
        List<Franchisee> franchiseeList = franchiseeService.list();
        if (!CollectionUtils.isEmpty(franchiseeList)){
            franchisee.setPayPassword(franchiseeList.get(0).getPayPassword());
        }
        boolean save = franchiseeService.save(franchisee);
        // 生成sysUser账号
@@ -1060,4 +1058,68 @@
        return franchiseeService.updateBatchById(list) ? R.ok() : R.fail();
    }
    /**
     * 设置加盟商操作密码
     *
     */
    @ApiOperation(value = "设置加盟商操作密码【202506】", tags = {"后台-加盟商管理"})
    @PutMapping(value = "/setPayPassword")
    public R<String> setPayPassword(@RequestParam(value = "payPassword") String payPassword) {
        List<Franchisee> franchisee = franchiseeService.list();
        for (Franchisee franchisee1 : franchisee) {
            franchisee1.setPayPassword(payPassword);
        }
        return franchiseeService.updateBatchById(franchisee) ? R.ok() : R.fail();
    }
    @ApiOperation(value = "获取加盟商操作密码", tags = {"后台-加盟商管理"})
    @PutMapping(value = "/getPayPassword")
    public R<String> getPayPassword() {
        List<Franchisee> franchisee = franchiseeService.list();
        if (!franchisee.isEmpty()){
            return R.ok(franchisee.get(0).getPayPassword());
        }
        return R.ok();
    }
    /**
     * 设置加盟商操作密码
     *
     */
    @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(!payPassword.equals(franchisee.getPayPassword())){
            return R.fail("密码错误!");
        }
        franchisee.setBalance(franchisee.getBalance().add(balanceChange.getAmount()));
        franchiseeService.updateById(franchisee);
        // 删除操作记录
        balanceChangeService.removeById(id);
        return R.ok();
    }
    /**
     * 设置加盟商是否显示司机信息
     *
     */
    @ApiOperation(value = "加盟商设置是否显示【202509】",notes = "id:加盟商id,isDisplay:是否显示 1=是 0=否", tags = {"后台-加盟商管理"})
    @PutMapping(value = "/setIsDisplay")
    public R<String> setIsDisplay(@RequestParam(value = "id") Integer id,
                                 @RequestParam(value = "isDisplay") Integer isDisplay) {
        Franchisee franchisee = franchiseeService.getById(id);
        franchisee.setIsDisplay(isDisplay);
        franchiseeService.updateById(franchisee);
        // 查询用户信息
        SysUser sysUser = sysUserService.getOne(Wrappers.lambdaQuery(SysUser.class)
                .eq(SysUser::getFranchiseeId, id));
        if (Objects.nonNull(sysUser)) {
            sysUser.setIsDisplay(isDisplay);
            sysUserService.updateById(sysUser);
        }
        return R.ok();
    }
}