无关风月
2025-01-08 3725c177bb38ee248d0769eebddbc13379cbdc98
bug修改
15个文件已修改
1个文件已添加
270 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/request/ChangeDispatchRequest.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java 191 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/TFranchiseeBalanceChange.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/importExcel/FrozenBuckleImportDTO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MenuServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/TencentCosUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MoneyRecentQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/resources/template/加盟商余额记录.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/resources/template/加盟商扣款记录.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/resources/template/导表录单导入模板 .xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChangeDispatchController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/request/ChangeDispatchRequest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vx/GetTransferBatchByOutNo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ChangeDispatchMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/request/ChangeDispatchRequest.java
@@ -13,6 +13,7 @@
public class ChangeDispatchRequest {
    private String workerName;
    private String reservationName;
    private String orderNumber;
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
@@ -61,6 +61,7 @@
    @GetMapping(value = "/page")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "师傅名称", name = "workerName", dataType = "String"),
            @ApiImplicitParam(value = "预约人名称", name = "reservationName", dataType = "String"),
            @ApiImplicitParam(value = "订单编号", name = "orderNumber", dataType = "String"),
            @ApiImplicitParam(value = "下单用户名称", name = "userName", dataType = "String"),
            @ApiImplicitParam(value = "地址", name = "reservationAddress", dataType = "String"),
@@ -68,6 +69,7 @@
            @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true)
    })
    public R<Page<ChangeDispatch>> queryPageList(String workerName, String orderNumber, String userName,String reservationAddress,
                                                 String reservationName,
                                                 @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                                                 @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        LoginUser loginUser = tokenService.getLoginUser();
@@ -83,7 +85,7 @@
        changeDispatchRequest.setPageNum(pageNum);
        changeDispatchRequest.setPageSize(pageSize);
        changeDispatchRequest.setCityList(cityList);
        changeDispatchRequest.setReservationName(reservationName);
        Integer franchiseeId = loginUser.getSysUser().getFranchiseeId();
        if (franchiseeId!=null) {
            Franchisee byId = franchiseeService.getById(franchiseeId);
@@ -163,10 +165,14 @@
    @ApiOperation(value = "订单改派师傅", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/changeWorker")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "改派订单id", name = "changeId", dataType = "Integer", required = true),
            @ApiImplicitParam(value = "师傅id", name = "workerId", dataType = "Integer", required = true)
            @ApiImplicitParam(value = "改派订单id", name = "changeId", dataType = "String", required = true),
            @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "String", required = true),
            @ApiImplicitParam(value = "师傅id", name = "workerId", dataType = "Integer", required = true),
            @ApiImplicitParam(value = "时间", name = "arriveTime", dataType = "String", required = true),
    })
    public R<String> changeWorker(@RequestParam String changeId, @RequestParam Integer workerId,@RequestParam String orderId,@RequestParam String reason,
    public R<String> changeWorker(@RequestParam String changeId,
                                  @RequestParam String orderId,
                                  @RequestParam Integer workerId,
                                  @RequestParam  String arriveTime) {
        MasterWorker masterWorker = masterWorkerService.lambdaQuery()
                .eq(MasterWorker::getId, workerId).eq(MasterWorker::getIsDelete, 0).one();
@@ -184,7 +190,7 @@
                NettyWebSocketController.sendMsgToClient(context, "您有一条新的订单,请注意查收!");
            }
            dispatchClient.changeReason(orderId, reason);
//            dispatchClient.changeReason(orderId, reason);
            orderClient.updateArrivalTime(orderId,arriveTime);
            return R.ok();
//            try {
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java
@@ -9,6 +9,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -115,24 +116,46 @@
    @ApiOperation(value = "加盟商列表余额", tags = {"后台2.0-加盟商列表余额"})
    @PostMapping(value = "/recent/money")
    public R<RencentBalance> recentmoney() {
    @GetMapping(value = "/recent/money")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "加盟商名称", name = "name", dataType = "String"),
            @ApiImplicitParam(value = "管理员", name = "head", dataType = "String"),
            @ApiImplicitParam(value = "手机号码", name = "phone", dataType = "String"),
            @ApiImplicitParam(value = "管辖城市", name = "city", dataType = "String"),
            @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
            @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true)
    })
    public R<RencentBalance> recentmoney(String name, String head, String phone, String city,
                                         @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                                         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        BigDecimal balance = new BigDecimal(0);
        List<Franchisee> list = franchiseeService.lambdaQuery().list();
        LambdaQueryWrapper<Franchisee> franchiseeLambdaQueryWrapper = new LambdaQueryWrapper<>();
        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);
        List<Integer> collect = list.stream().map(Franchisee::getId).collect(Collectors.toList());
        if (collect.isEmpty())collect.add(-1);
        for (Franchisee franchisee : list) {
            balance = balance.add(franchisee.getBalance());
        }
        //充值的金额
        BigDecimal balance1 = new BigDecimal(0);
        List<TFranchiseeBalanceChange> list1 = balanceChangeService.lambdaQuery().eq(TFranchiseeBalanceChange::getType, 1).list();
        List<TFranchiseeBalanceChange> list1 = balanceChangeService.lambdaQuery()
                .in(TFranchiseeBalanceChange::getFranchiseeId,collect)
                .eq(TFranchiseeBalanceChange::getType, 1).list();
        for (TFranchiseeBalanceChange franchiseeBalanceChange : list1) {
            balance1 = balance1.add(franchiseeBalanceChange.getAmount());
        }
        //扣除的金额
        BigDecimal balance2 = new BigDecimal(0);
        List<TFranchiseeBalanceChange> list2 = balanceChangeService.lambdaQuery().eq(TFranchiseeBalanceChange::getType, 2).list();
        for (TFranchiseeBalanceChange franchiseeBalanceChange : list1) {
        List<TFranchiseeBalanceChange> list2 = balanceChangeService.lambdaQuery()
                .in(TFranchiseeBalanceChange::getFranchiseeId,collect)
                .eq(TFranchiseeBalanceChange::getType, 2)
                .eq(TFranchiseeBalanceChange::getIs_pay,1).list();
        for (TFranchiseeBalanceChange franchiseeBalanceChange : list2) {
            balance2 = balance2.add(franchiseeBalanceChange.getAmount());
        }
@@ -157,9 +180,11 @@
    @ApiOperation(value = "扣款记录及充值记录", tags = {"后台2.0-统一充值扣款列表","师傅段2.0-统一充值扣款列表"})
    @PostMapping(value = "/recent/money/list")
    public R<Page<TFranchiseeBalanceChange>> recentmoneylist(@RequestBody MoneyRecentQuery moneyRecentQuery) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserService.getById(userid);
        Page<TFranchiseeBalanceChange> page = balanceChangeService.lambdaQuery().eq(moneyRecentQuery.getType() != null, TFranchiseeBalanceChange::getType, moneyRecentQuery.getType())
                .eq(moneyRecentQuery.getFranchId() != null, TFranchiseeBalanceChange::getFranchiseeId, moneyRecentQuery.getFranchId())
                .eq(moneyRecentQuery.getFranchName() != null && !"".equals(moneyRecentQuery.getFranchName()), TFranchiseeBalanceChange::getFranchiseeName, moneyRecentQuery.getFranchName())
                .eq(sysUser.getFranchiseeId() != null, TFranchiseeBalanceChange::getFranchiseeId, sysUser.getFranchiseeId())
                .eq(moneyRecentQuery.getName() != null && !"".equals(moneyRecentQuery.getName()), TFranchiseeBalanceChange::getFranchiseeName, moneyRecentQuery.getName())
                .ge(moneyRecentQuery.getDate1() != null, TFranchiseeBalanceChange::getCreateTime, moneyRecentQuery.getDate1())
                .le(moneyRecentQuery.getDate2() != null, TFranchiseeBalanceChange::getCreateTime, moneyRecentQuery.getDate2())
                .eq(TFranchiseeBalanceChange::getIs_pay,1)
@@ -186,14 +211,23 @@
    @ApiOperation(value = "导出", tags = {"后台2.0-统一充值扣款列表"})
    @PostMapping(value = "/recent/money/list/export")
    public R<Page<TFranchiseeBalanceChange>> export(@RequestBody MoneyRecentQuery moneyRecentQuery, HttpServletResponse response) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserService.getById(userid);
        if (moneyRecentQuery.getType()==2) {
            List<TFranchiseeBalanceChange> page = balanceChangeService.lambdaQuery().eq(moneyRecentQuery.getType() != null, TFranchiseeBalanceChange::getType, moneyRecentQuery.getType())
                    .eq(moneyRecentQuery.getFranchId() != null, TFranchiseeBalanceChange::getFranchiseeId, moneyRecentQuery.getFranchId())
                    .eq(moneyRecentQuery.getFranchName() != null && !"".equals(moneyRecentQuery.getFranchName()), TFranchiseeBalanceChange::getFranchiseeName, moneyRecentQuery.getFranchName())
                    .eq(sysUser.getFranchiseeId() != null, TFranchiseeBalanceChange::getFranchiseeId, sysUser.getFranchiseeId())
                    .eq(moneyRecentQuery.getName() != null && !"".equals(moneyRecentQuery.getName()), TFranchiseeBalanceChange::getFranchiseeName, moneyRecentQuery.getName())
                    .ge(moneyRecentQuery.getDate1() != null, TFranchiseeBalanceChange::getCreateTime, moneyRecentQuery.getDate1())
                    .le(moneyRecentQuery.getDate2() != null, TFranchiseeBalanceChange::getCreateTime, moneyRecentQuery.getDate2())
                    .eq(TFranchiseeBalanceChange::getIs_pay,1)
                    .orderByDesc(TFranchiseeBalanceChange::getCreateTime)
                    .list();
            for (TFranchiseeBalanceChange tFranchiseeBalanceChange : page) {
                tFranchiseeBalanceChange.setPayStr("微信支付");
                LocalDateTime createTime = tFranchiseeBalanceChange.getCreateTime();
                // 转化为String类型的格式字符串yyyy-MM-dd HH:mm:ss
                tFranchiseeBalanceChange.setCreateTimeStr(createTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            }
            try {
                response.setCharacterEncoding(Constants.UTF8);
                response.setContentType("application/vnd.ms-excel");
@@ -221,13 +255,17 @@
            return R.ok();
        }else {
            List<TFranchiseeBalanceChange> page = balanceChangeService.lambdaQuery().eq(moneyRecentQuery.getType() != null, TFranchiseeBalanceChange::getType, moneyRecentQuery.getType())
                    .eq(moneyRecentQuery.getFranchId() != null, TFranchiseeBalanceChange::getFranchiseeId, moneyRecentQuery.getFranchId())
                    .eq(moneyRecentQuery.getFranchName() != null && !"".equals(moneyRecentQuery.getFranchName()), TFranchiseeBalanceChange::getFranchiseeName, moneyRecentQuery.getFranchName())
                    .eq(sysUser.getFranchiseeId() != null, TFranchiseeBalanceChange::getFranchiseeId, sysUser.getFranchiseeId())
                    .eq(moneyRecentQuery.getName() != null && !"".equals(moneyRecentQuery.getName()), TFranchiseeBalanceChange::getFranchiseeName, moneyRecentQuery.getName())
                    .ge(moneyRecentQuery.getDate1() != null, TFranchiseeBalanceChange::getCreateTime, moneyRecentQuery.getDate1())
                    .le(moneyRecentQuery.getDate2() != null, TFranchiseeBalanceChange::getCreateTime, moneyRecentQuery.getDate2())
                    .orderByDesc(TFranchiseeBalanceChange::getCreateTime)
                    .list();
            for (TFranchiseeBalanceChange tFranchiseeBalanceChange : page) {
                LocalDateTime createTime = tFranchiseeBalanceChange.getCreateTime();
                // 转化为String类型的格式字符串yyyy-MM-dd HH:mm:ss
                tFranchiseeBalanceChange.setCreateTimeStr(createTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            }
            try {
                response.setCharacterEncoding(Constants.UTF8);
                response.setContentType("application/vnd.ms-excel");
@@ -299,7 +337,7 @@
        map.put("p4_Cur", "1"); /**交易币种 */
        map.put("q5_OpenId", openId);
        map.put("p5_ProductName", "加盟商充值"); /** 商品名称 */
        map.put("p9_NotifyUrl", "http://www.zhipingwang.com.cn:9100/admin/franchisee/callBack"); /** 服务器异步通知地址 */
        map.put("p9_NotifyUrl", "https://v7ro848ar5jx.ngrok.xiaomiqiu123.top/admin/franchisee/callBack"); /** 服务器异步通知地址 */
        map.put("q1_FrpCode", "WEIXIN_APP3"); /** 交易类型*/
        map.put("q7_AppId", "wx1a4a7760be53a835"); /** 交易类型*/
        map.put("qa_TradeMerchantNo", "777165000859101"); /** 777开头的报备商户号   必填!*/
@@ -357,6 +395,7 @@
        tFranchiseeBalanceChange.setFranchiseeName(byId.getName());
        tFranchiseeBalanceChange.setFranchiseeId(String.valueOf(byId.getId()));
        tFranchiseeBalanceChange.setType(2);
        tFranchiseeBalanceChange.setRemark("微信支付");
        tFranchiseeBalanceChange.setCode(code);
        balanceChangeService.save(tFranchiseeBalanceChange);
@@ -392,52 +431,86 @@
    @ApiOperation(value = "扫码支付",tags = {"后台2.0-加盟商列表余额"})
    @PostMapping(value = "/code/buy")
    public R buy(@RequestParam BigDecimal money) throws AlipayApiException {
    public R buy(@RequestParam BigDecimal money) throws AlipayApiException, IOException {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser byId1 = sysUserService.getById(userid);
        Franchisee byId = franchiseeService.getById(byId1.getFranchiseeId());
        String code = generateTradeNumber();
        int i = money.multiply(BigDecimal.valueOf(100)).intValue();
        com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest prepayRequest = new com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest();
            prepayRequest.setAppid(weChatConfig.appId);
            prepayRequest.setMchid(weChatConfig.merchantId);
            prepayRequest.setOutTradeNo(code);
            prepayRequest.setDescription("购买资料");
            prepayRequest.setNotifyUrl("http://www.zhipingwang.com.cn:9090/admin/franchisee/callBack");
            com.wechat.pay.java.service.payments.nativepay.model.Amount amount = new com.wechat.pay.java.service.payments.nativepay.model.Amount();
            amount.setTotal(i);
            prepayRequest.setAmount(amount);
            // 调用下单方法,得到应答
            com.wechat.pay.java.service.partnerpayments.app.model.PrepayResponse response;
            try {
                com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse prepay = nativePayService.prepay(prepayRequest);
                //预支付成功,创建预支付订单
                TFranchiseeBalanceChange tFranchiseeBalanceChange = new TFranchiseeBalanceChange();
                tFranchiseeBalanceChange.setAmount(money);
                tFranchiseeBalanceChange.setIs_pay(0);
                tFranchiseeBalanceChange.setFranchiseeName(byId.getName());
                tFranchiseeBalanceChange.setFranchiseeId(String.valueOf(byId.getId()));
                tFranchiseeBalanceChange.setType(2);
                tFranchiseeBalanceChange.setCode(code);
                balanceChangeService.save(tFranchiseeBalanceChange);
        String key = "ad273ceb5e1b49e68d5c565d28d1d305";/** md5密钥商户后台-商户中心-商户设置-密钥管理获取 必填!*/
        Map<String, String> map = new HashMap<String, String>();
        map.put("p0_Version", "2.5");/** 版本号 */
        map.put("p1_MerchantNo", "888122400007793");/** 商户编号 */
        map.put("p2_OrderNo", code); /**商户订单号*/
        map.put("p3_Amount", String.valueOf(money));/**订单金额*/
        map.put("p4_Cur", "1"); /**交易币种 */
        map.put("p5_ProductName", "充值"); /** 商品名称 */
        map.put("p6_ProductDesc", "加盟商充值"); /** 商品名称 */
//        map.put("p7_Mp", ""); /** 如果商户请求时传递了该参数,则返回给商户时会原值传 回。 */
        map.put("p9_NotifyUrl", "https://v7ro848ar5jx.ngrok.xiaomiqiu123.top/admin/franchisee/callBack"); /** 服务器异步通知地址 */
        map.put("q1_FrpCode", "WEIXIN_NATIVE"); /** 微信扫码(主扫)【注:此为用户主扫,商户被扫】*/
        map.put("q4_IsShowPic", "1"); /** 是否展示二 维码图片 1表示输出*/
        map.put("q7_AppId", "wx1a4a7760be53a835"); /** 交易类型*/
        map.put("qa_TradeMerchantNo", "777165000859101"); /** 777开头的报备商户号   必填!*/
        map.put("qi_FqSellerPercen", "0"); /** 卖家承担收 费比例 目前仅支持传入 0 ,即用户承 担手续费!*/
        String Strmap = CreateLinkStringByGet1.createLinkStringByGet(map);
        // 签名
        String sign = "";
        sign = Md5_Sign.SignByMD5(Strmap, key);
        map.put("hmac", sign);/** 签名数据 */
        System.out.println("发送:" + JSON.toJSONString(map).toString());
        // post请求参数内容
        HttpRequester hr = new HttpRequester();
        HttpRespons HP = hr.sendPost("https://trade.joinpay.com/tradeRt/uniPay", map);
        System.out.println("接收返回参数:" + HP.getContent());
        JSONObject jsonObject = JSONObject.parseObject(HP.getContent());
        String rcResult = jsonObject.getString("rd_Pic");
        Map<String, Object> map2 = new HashMap<>();
        map2.put("rcResult", rcResult);
//        com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest prepayRequest = new com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest();
//            prepayRequest.setAppid(weChatConfig.appId);
//            prepayRequest.setMchid(weChatConfig.merchantId);
//            prepayRequest.setOutTradeNo(code);
//            prepayRequest.setDescription("购买资料");
//            prepayRequest.setNotifyUrl("http://www.zhipingwang.com.cn:9090/admin/franchisee/callBack");
//            com.wechat.pay.java.service.payments.nativepay.model.Amount amount = new com.wechat.pay.java.service.payments.nativepay.model.Amount();
//            amount.setTotal(i);
//            prepayRequest.setAmount(amount);
//            // 调用下单方法,得到应答
//            com.wechat.pay.java.service.partnerpayments.app.model.PrepayResponse response;
        try {
//                com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse prepay = nativePayService.prepay(prepayRequest);
            //预支付成功,创建预支付订单
            TFranchiseeBalanceChange tFranchiseeBalanceChange = new TFranchiseeBalanceChange();
            tFranchiseeBalanceChange.setAmount(money);
            tFranchiseeBalanceChange.setIs_pay(0);
            tFranchiseeBalanceChange.setFranchiseeName(byId.getName());
            tFranchiseeBalanceChange.setFranchiseeId(String.valueOf(byId.getId()));
            tFranchiseeBalanceChange.setType(2);
            tFranchiseeBalanceChange.setCode(code);
            tFranchiseeBalanceChange.setRemark("加盟商扫码充值");
            balanceChangeService.save(tFranchiseeBalanceChange);
                PayDto payDto = new PayDto();
                payDto.setOrderId(tFranchiseeBalanceChange.getId());
                payDto.setQrCode(prepay.getCodeUrl());
            PayDto payDto = new PayDto();
            payDto.setOrderId(tFranchiseeBalanceChange.getId());
            payDto.setQrCode(rcResult);
                return R.ok(payDto);
            } catch (HttpException e) { // 发送HTTP请求失败
            return R.ok(payDto);
        } catch (HttpException e) { // 发送HTTP请求失败
//                log.error("发送HTTP请求失败: {}", e.getHttpRequest());
            } catch (ServiceException e) { // 服务返回状态小于200或大于等于300,例如500
        } catch (ServiceException e) { // 服务返回状态小于200或大于等于300,例如500
//                log.error("服务返回状态异常: {}", e.getResponseBody());
            } catch (MalformedMessageException e) { // 服务返回成功,返回体类型不合法,或者解析返回体失败
        } catch (MalformedMessageException e) { // 服务返回成功,返回体类型不合法,或者解析返回体失败
//                log.error("返回体类型不合法: {}", e.getMessage());
            } catch (Exception e) {
        } catch (Exception e) {
//                log.error("预下单异常: {}", e.getMessage());
            }
            return null;
        }
        return null;
    }
@@ -461,6 +534,22 @@
    public R payNotify(HttpServletRequest request,String r2_OrderNo) throws Exception{
        System.err.println("======回调开始");
        System.err.println("======回调开始"+r2_OrderNo);
        System.err.println("请求"+request.getParameterMap());
        Map<String, String[]> parameterMap = request.getParameterMap();
        String r6Status = request.getParameter("r6_Status");
        if (org.springframework.util.StringUtils.hasLength(r6Status)){
            if (r6Status.equals("101")){
                return R.errorCode("支付失败");
            }
        }
        // 循环打印
        for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
            String key = entry.getKey();
            String[] values = entry.getValue();
            for (String value : values) {
                System.err.println("======回调开始"+key + ":" + value);
            }
        }
//        Transaction transaction;
//        transaction = notificationParser.parse(WeChatUtil.handleNodifyRequestParam(request), Transaction.class);
//        if (transaction.getTradeState() == Transaction.TradeStateEnum.SUCCESS) {
@@ -473,11 +562,11 @@
                franchiseeService.updateById(byId);
                one.setIs_pay(1);
                balanceChangeService.updateById(one);
                return R.ok(null,"success");
//            }
        }
        return R.ok(null,"SUCCESS");
        return R.ok(null,"error");
    }
    public static String generateTradeNumber() {
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
@@ -769,9 +769,7 @@
    public R<String> importTemplate(HttpServletResponse response) throws Exception {
        List<FrozenBuckleImportDTO> list = new ArrayList<>();
        FrozenBuckleImportDTO bean = new FrozenBuckleImportDTO();
        list.add(bean);
        // 这里URLEncoder.encode可以防止中文乱码
        String fileName = URLEncoder.encode("订单导入模板", "UTF-8");
        response.setContentType("application/vnd.ms-excel");
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/TFranchiseeBalanceChange.java
@@ -71,7 +71,8 @@
    @TableField("createTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @TableField(exist = false)
    private String createTimeStr;
    @TableField("updateTime")
    private LocalDateTime updateTime;
@@ -85,7 +86,7 @@
    @TableLogic
    private Integer isDelete;
    @TableField(exist = false)
    private String payStr = "微信支付";
    private String payStr = "扣除旧机款";
    @TableField(exist = false)
    private List<Region> list;
    @TableField(exist = false)
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/importExcel/FrozenBuckleImportDTO.java
@@ -20,15 +20,15 @@
    private String reservationName;
    @ExcelProperty(value = "预约电话")
    private String reservationPhone;
    @ExcelProperty(value = "省份")
    @ExcelProperty(value = "省份(四川省)")
    private String province;
    @ExcelProperty(value = "市")
    @ExcelProperty(value = "市(成都市)")
    private String city;
    @ExcelProperty(value = "区")
    @ExcelProperty(value = "区(武侯区)")
    private String area;
    @ExcelProperty(value = "详细地址")
    private String reservationAddress;
    @ExcelProperty(value = "上门时间")
    @ExcelProperty(value = "上门时间(2025.01.01)")
    private String time;
    @ExcelProperty(value = "服务人员")
    private String serverName;
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MenuServiceImpl.java
@@ -2,17 +2,17 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.admin.entity.Menu;
import com.ruoyi.admin.entity.SysUser;
import com.ruoyi.admin.mapper.MenuMapper;
import com.ruoyi.admin.mapper.SysUserMapper;
import com.ruoyi.admin.service.MenuService;
import com.ruoyi.common.core.constant.RedisConstants;
import com.ruoyi.common.security.service.TokenService;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -29,17 +29,29 @@
    @Resource
    private RedisTemplate<Object, Object> redisTemplate;
    @Resource
    private SysUserMapper sysUserMapper;
    @Resource
    private TokenService tokenService;
    @Override
    public List<Menu> menuTree() {
        // redis缓存
        Map<Object, Object> regionList = redisTemplate.opsForHash().entries(RedisConstants.MENU_TREE);
        // 获取所有地区信息 省市区三级
        List<Menu> regions = getReginList(regionList);
        // 所有地区
        Map<String, Menu> courseTypeMap = regions.stream().
                collect(Collectors.toMap(region -> region.getMenuId().toString()
                        , region -> region));
        Map<String, Menu> courseTypeMap = new HashMap<>();
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserMapper.selectById(userid);
        if (sysUser.getFranchiseeId()==null){
            // 加盟商才有加盟商余额管理
            courseTypeMap = regions.stream().filter(region -> region.getMenuId() != 88900&&
                            region.getMenuId() != 88901&&
                            region.getMenuId() != 88902&&
                            region.getMenuId() != 88903).
                    collect(Collectors.toMap(region -> region.getMenuId().toString()
                            , region -> region));
        }
        redisTemplate.opsForHash().putAll(RedisConstants.MENU_TREE, courseTypeMap);
        redisTemplate.expire(RedisConstants.MENU_TREE, 30, TimeUnit.MINUTES);
        // 生成map集合
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/TencentCosUtil.java
@@ -94,7 +94,7 @@
            //上传文件
            PutObjectResult putResult = getCosClient().putObject(bucketName, key, inputStream, objectMetadata);
            // 创建文件的网络访问路径
            String url = rootSrc + key;
            String url = "https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/" + key;
            //关闭 cosClient,并释放 HTTP 连接的后台管理线程
            getCosClient().shutdown();
            return url;
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/MoneyRecentQuery.java
@@ -11,7 +11,7 @@
    @ApiModelProperty("加盟商id")
    private Integer franchId;
    @ApiModelProperty("加盟商名字,查询用")
    private Integer franchName;
    private Integer name;
    @ApiModelProperty("1扣款2充值")
    private Integer type;
    @ApiModelProperty("扣款时间1")
ruoyi-service/ruoyi-admin/src/main/resources/template/加盟商余额记录.xlsx
Binary files differ
ruoyi-service/ruoyi-admin/src/main/resources/template/加盟商扣款记录.xlsx
Binary files differ
ruoyi-service/ruoyi-admin/src/main/resources/template/导表录单导入模板 .xlsx
Binary files differ
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChangeDispatchController.java
@@ -53,6 +53,7 @@
    @PostMapping(value = "/page")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "师傅名称", name = "workerName", dataType = "String"),
            @ApiImplicitParam(value = "预约人姓名", name = "reservationName", dataType = "String"),
            @ApiImplicitParam(value = "订单编号", name = "orderNumber", dataType = "String"),
            @ApiImplicitParam(value = "下单用户名称", name = "userName", dataType = "String"),
            @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/request/ChangeDispatchRequest.java
@@ -18,6 +18,8 @@
    private String reservationAddress;
    private String userName;
    private String reservationPhone;
    private String reservationName;
    private Integer pageNum;
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vx/GetTransferBatchByOutNo.java
@@ -9,7 +9,7 @@
public class GetTransferBatchByOutNo {            /** 商户号 */
  public static String merchantId = "1665330417"; /** 商户API私钥路径 */
  public static String privateKeyPath =
      "/usr/local/vx/apiclient_key.pem"; /** 商户证书序列号 */
      "E:/cert/ershou/apiclient_key.pem"; /** 商户证书序列号 */
  public static String merchantSerialNumber =
      "7EEA04429B006E12AAA421C002EC48BBEED5BE94"; /** 商户APIV3密钥 */
  public static String apiV3Key = "TA2npSNWmS0GcB0tFFRWA94rm1M0iSFs";
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ChangeDispatchMapper.xml
@@ -40,7 +40,13 @@
                and c.user_name like concat('%', #{data.userName}, '%')
            </if>
            <if test="data.reservationAddress != null and data.reservationAddress != ''">
                and o.reservationAddress like concat('%', #{data.reservationAddress}, '%')
                and o.reservation_address like concat('%', #{data.reservationAddress}, '%')
            </if>
            <if test="data.reservationPhone != null and data.reservationPhone != ''">
                and o.reservation_phone like concat('%', #{data.reservationPhone}, '%')
            </if>
            <if test="data.reservationName != null and data.reservationName != ''">
                and o.reservation_name like concat('%', #{data.reservationName}, '%')
            </if>
            <if test="data.cityList != null and data.cityList.size() != 0">
                and o.city_code in