liujie
2025-11-22 ebc8a82dba933c3da335081e0b69bf3417e4c991
DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -2,22 +2,20 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.huifu.bspay.sdk.opps.core.utils.RsaUtils;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal;
import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService;
import com.stylefeng.guns.modular.account.service.UserWithdrawalService;
import com.stylefeng.guns.modular.account.util.Base64Util;
import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
import com.stylefeng.guns.modular.cloudPayment.example.DepositExample;
import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper;
import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper;
import com.stylefeng.guns.modular.enums.PaymentTypeEnum;
import com.stylefeng.guns.modular.system.model.Company;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.Reassign;
@@ -30,7 +28,6 @@
import com.stylefeng.guns.modular.system.util.SystemException;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.unionpay.upyzt.resp.AllocationResp;
import com.unionpay.upyzt.resp.DepositResp;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -42,8 +39,6 @@
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
@@ -266,9 +261,14 @@
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            Driver driver = driverService.selectById(uid);
            if(driver.getAppletsOpenId()==null && payType==1){
                return ResultUtil.openIdError();
            }
            switch (orderType){
                case 3:
                    return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type);
                    return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type,driver.getAppletsOpenId());
            }
            return ResultUtil.success(new Object());
        }catch (Exception e){
@@ -278,6 +278,105 @@
    }
    /**
     * 完成订单微信支付 斗拱
     * @param request
     */
    @ResponseBody
    @PostMapping("/base/DGPayCrossCity")
    public void DGPayCrossCity(HttpServletRequest request, HttpServletResponse response){
        try {
            String sign =request.getParameter("sign");
            String resp_data = request.getParameter("resp_data");
            System.out.println(sign);
            System.out.println(resp_data);
            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
//            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if(verify){
                JSONObject jsonObject = JSONObject.parseObject(resp_data);
                String transaction_id = jsonObject.get("out_trans_id").toString();
                String out_trade_no = jsonObject.get("req_seq_id").toString();
                String trans_stat = jsonObject.get("trans_stat").toString();
                if("S".equals(trans_stat)){
                    System.out.println("完成订单微信支付回调"+jsonObject);
                    PrintWriter out = response.getWriter();
                    out.write(200);
                    out.flush();
                    out.close();
                    String[] split = out_trade_no.split("_");
                    Integer id = Integer.valueOf(split[0]);
                    Integer type = Integer.valueOf(split[1]);
                    // TODO 司机云闪付 跨城出行微信回调支付充值
//                    OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
//                    if(Objects.isNull(orderCrossCity)){
//                        System.out.println("该订单不存在");
//                        throw new RuntimeException("该订单不存在");
//                    }
//                    cloudPay(orderCrossCity.getDriverId(),map.get("total_fee"),map.get("transaction_id"),1);
                    switch (type){
                        case 3:
                            orderCrossCityService.payOrderCrossCityCallback(id, transaction_id, 1);
                            break;
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     * 完成订单微信支付 斗拱
     * @param request
     */
    @ResponseBody
    @PostMapping("/base/DGPayCrossCityZfb")
    public void DGPayCrossCityZfb(HttpServletRequest request, HttpServletResponse response){
        try {
            String sign =request.getParameter("sign");
            String resp_data = request.getParameter("resp_data");
            System.out.println(sign);
            System.out.println(resp_data);
            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
//            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if(verify){
                JSONObject jsonObject = JSONObject.parseObject(resp_data);
                String transaction_id = jsonObject.get("out_trans_id").toString();
                String out_trade_no = jsonObject.get("req_seq_id").toString();
                String trans_stat = jsonObject.get("trans_stat").toString();
                if("S".equals(trans_stat)){
                    System.out.println("完成订单微信支付回调"+jsonObject);
                    PrintWriter out = response.getWriter();
                    out.write(200);
                    out.flush();
                    out.close();
                    String[] split = out_trade_no.split("_");
                    Integer id = Integer.valueOf(split[0]);
                    Integer type = Integer.valueOf(split[1]);
                    // TODO 司机云闪付 跨城出行微信回调支付充值
//                    OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
//                    if(Objects.isNull(orderCrossCity)){
//                        System.out.println("该订单不存在");
//                        throw new RuntimeException("该订单不存在");
//                    }
//                    cloudPay(orderCrossCity.getDriverId(),map.get("total_fee"),map.get("transaction_id"),1);
                    switch (type){
                        case 3:
                            orderCrossCityService.payOrderCrossCityCallback(id, transaction_id, 2);
                            break;
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     * 完成订单微信支付回调