puzhibing
2023-06-03 06057d33c65653f80ccf716a396b89052e2d8eb6
更新部分代码
6个文件已修改
439 ■■■■ 已修改文件
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Agent.java 164 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/RechargeRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java 188 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zuul/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
@@ -712,7 +712,6 @@
    /**
     * 账户余额充值支付回调
     * @param request
     * @param response
     */
    @ResponseBody
@@ -968,12 +967,36 @@
    /**
     * 注册商户回调
     * @param jsonObject
     */
    @ResponseBody
    @PostMapping("/base/driver/microenterpriseCallback")
    public void microenterpriseCallback(@RequestBody JSONObject jsonObject){
        System.err.println(jsonObject.toJSONString());
    public void microenterpriseCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
        try {
            if("0000".equals(interfaceResponse.getCode())) {
                JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult());
                String status = jsonObject.getString("status");
                String parameter1 = jsonObject.getString("parameter1");
                Driver driver = driverService.selectById(parameter1);
                if ("2".equals(status)) {
                    System.err.println("注册代理商子商户失败");
                }
                if ("0".equals(status)) {
                    System.err.println("注册代理商子商户处理中");
                }
                if ("1".equals(status)) {
                    String userId = jsonObject.getString("userId");
                    driver.setMerchantNumber(userId);
                    driverService.updateById(driver);
                    response.setStatus(200);
                    PrintWriter out = response.getWriter();
                    out.print("OK");
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
@@ -1054,8 +1077,17 @@
     */
    @ResponseBody
    @PostMapping("/base/driver/withdrawCashFZCallback")
    public void withdrawCashFZCallback(@RequestBody InterfaceResponse interfaceResponse){
        cashWithdrawalService.withdrawCashFZCallback(interfaceResponse);
    public void withdrawCashFZCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
        try {
            cashWithdrawalService.withdrawCashFZCallback(interfaceResponse);
            response.setStatus(200);
            PrintWriter out = response.getWriter();
            out.print("OK");
            out.flush();
            out.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
@@ -1066,7 +1098,16 @@
     */
    @ResponseBody
    @PostMapping("/base/driver/withdrawCashCallback")
    public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse){
        cashWithdrawalService.withdrawCashCallback(interfaceResponse);
    public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
        try {
            cashWithdrawalService.withdrawCashCallback(interfaceResponse);
            response.setStatus(200);
            PrintWriter out = response.getWriter();
            out.print("OK");
            out.flush();
            out.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Agent.java
@@ -20,66 +20,180 @@
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @TableField("id")
    private Integer id;
    /**
     * 负责人姓名
     */
    @TableField("principal")
    @TableField(value = "principal")
    private String principal;
    /**
     * 负责人电话
     */
    @TableField("principalPhone")
    @TableField(value = "principalPhone")
    private String principalPhone;
    /**
     * 邮箱
     */
    @TableField("email")
    @TableField(value = "email")
    private String email;
    /**
     * 代理区域省名称
     */
    @TableField("provinceName")
    private String provinceName;
    /**
     * 代理区域省编号
     */
    @TableField("provinceCode")
    @TableField(value = "provinceCode")
    private String provinceCode;
    /**
     * 代理区域省名称
     */
    @TableField(value = "provinceName")
    private String provinceName;
    /**
     * 代理区域市编号
     */
    @TableField("cityCode")
    @TableField(value = "cityCode")
    private String cityCode;
    /**
     * 代理区域市名称
     */
    @TableField("cityName")
    @TableField(value = "cityName")
    private String cityName;
    /**
     * 状态(1=正常,2=冻结,3=删除)
     */
    @TableField("status")
    @TableField(value = "status")
    private Integer status;
    /**
     * 添加时间
     */
    @TableField("createTime")
    @TableField(value = "createTime")
    private Date createTime;
    /**
     * 开户银行
     */
    @TableField("bankDeposit")
    private String bankDeposit;
    /**
     * 银行账号
     */
    @TableField("bankAccount")
    private String bankAccount;
    /**
     * 客服电话
     */
    @TableField("serviceCalls")
    @TableField(value = "serviceCalls")
    private String serviceCalls;
    /**
     * 商户类型(1=个体工商户,2=企业)
     */
    @TableField("userType")
    private Integer userType;
    /**
     * 公司名称
     */
    @TableField("merchantName")
    private String merchantName;
    /**
     * 经营范围
     */
    @TableField("businessScope")
    private String businessScope;
    /**
     * 统一社会信用码
     */
    @TableField("socialCreditCode")
    private String socialCreditCode;
    /**
     * 统一社会信用证有效期
     */
    @TableField("socialCreditCodeExpires")
    private Date socialCreditCodeExpires;
    /**
     * 企业注册省编号
     */
    @TableField("provCodeEnterprise")
    private String provCodeEnterprise;
    /**
     * 企业注册市编号
     */
    @TableField("cityCodeEnterprise")
    private String cityCodeEnterprise;
    /**
     * 企业注册区编号
     */
    @TableField("areaCodeEnterprise")
    private String areaCodeEnterprise;
    /**
     * 企业注册详细地址
     */
    @TableField("address")
    private String address;
    /**
     * 法人姓名
     */
    @TableField("legalPerson")
    private String legalPerson;
    /**
     * 法人身份证号码
     */
    @TableField("merchantIDCode")
    private String merchantIDCode;
    /**
     * 法人身份证有效期
     */
    @TableField("certIdExpires")
    private Date certIdExpires;
    /**
     * 法人手机号
     */
    @TableField("legalPhone")
    private String legalPhone;
    /**
     * 附件编号
     */
    @TableField("fileNo")
    private String fileNo;
    /**
     * 结算账户名
     */
    @TableField("cardName")
    private String cardName;
    /**
     * 结算账户号
     */
    @TableField("cardNo")
    private String cardNo;
    /**
     * 银行账户类型(1=对公,2=对私)
     */
    @TableField("bankAcctType")
    private Integer bankAcctType;
    /**
     * 银行预留手机号
     */
    @TableField("phone")
    private String phone;
    /**
     * 开户行编号
     */
    @TableField("bankCode")
    private String bankCode;
    /**
     * 开户行地区省编号
     */
    @TableField("provCodeBank")
    private String provCodeBank;
    /**
     * 开户行地区市编号
     */
    @TableField("cityCodeBank")
    private String cityCodeBank;
    /**
     * 开户行地区区编号
     */
    @TableField("areaCodeBank")
    private String areaCodeBank;
    /**
     * 商户号
     */
    @TableField("merchantNumber")
    private String merchantNumber;
    /**
     * 商户状态(0=审核中,1=已成功,2=审核失败)
     */
    @TableField("merchantStatus")
    private Integer merchantStatus;
    /**
     * 结算账户状态(0=审核中,1=已成功,2=审核失败)
     */
    @TableField("bankStatus")
    private Integer bankStatus;
}
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/RechargeRecord.java
@@ -23,7 +23,7 @@
    @TableField("id")
    private Integer id;
    /**
     * 数据类型(1=用户,2=司机,3=代理商)
     * 数据类型(1=用户,2=司机,3=代理商,4=平台)
     */
    @TableField("type")
    private Integer type;
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -718,6 +718,7 @@
        if("2".equals(status)){
            return ResultUtil.error("失败");
        }
        String merOrderId = jsonObject.getString("merOrderId");
        String payCode = jsonObject.getString("payCode");
        if(ToolUtil.isNotEmpty(payCode)){
            new Thread(new Runnable() {
@@ -734,13 +735,7 @@
                                return;
                            }
                            QueryOrder queryOrder = new QueryOrder();
                            /**
                             * 原请求订单号(必填)  字段长度最长:32位
                             */
                            queryOrder.setOriginalMerOrderId(out_trade_no);
                            /**
                             * 1:支付查询 2:退款查询 3:确认收货查询 4:结算查询 5:充值查询 6:转账查询 7:异步分账查询(必填)  字段长度最长:1位
                             */
                            queryOrder.setOriginalMerOrderId(merOrderId);
                            queryOrder.setQueryType("1");
                            TrhRequest<QueryOrder> request = new TrhRequest();
                            InterfaceResponse execute1 = request.execute(queryOrder, QueryOrder.SERVICE_CODE);
@@ -942,6 +937,7 @@
        registerVO.setUserName(name);
        registerVO.setCertId(number);
        registerVO.setNotifyUrl(callbackPath + notifyUrl);
        registerVO.setParameter1(uid.toString());
        TrhRequest<Register> request = new TrhRequest();
        InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE);
        if(!"0000".equals(execute.getCode())){
@@ -953,6 +949,10 @@
            return ResultUtil.error("失败");
        }
        if("0".equals(status)){
            driver.setMerchantIDCode(number);
            driver.setMerchantName(name);
            driver.setMerchantPhone(phone);
            this.updateById(driver);
            return ResultUtil.error("处理中");
        }
        String userId = jsonObject.getString("userId");
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
@@ -3,6 +3,7 @@
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.server.HttpServerResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -254,7 +255,7 @@
            registerVO.setUserType("0");
            registerVO.setUserName(tAgent.getMerchantName());
            registerVO.setCertId(tAgent.getMerchantIDCode());
            registerVO.setNotifyUrl(callbackPath + "/base/driver/microenterpriseCallback");
            registerVO.setNotifyUrl(callbackPath + "/tAgent/microenterpriseCallback");
            TrhRequest<Register> request = new TrhRequest();
            InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE);
            if("0000".equals(execute.getCode())){
@@ -325,16 +326,10 @@
            registerVO.setLegalPhone(tAgent.getLegalPhone());
            registerVO.setLegalPerson(tAgent.getLegalPerson());
            registerVO.setAddress(tAgent.getAddress());
            /**
             * 省份编码(子商户类型非小微必填) 字段长度最长:4位
             */
            registerVO.setProvCode("0035");
            /**
             * 地区编码(子商户类型非小微必填) 字段长度最长:4位
             */
            registerVO.setAreaCode("3501");
            registerVO.setProvCode(tAgent.getProvCodeEnterprise());
            registerVO.setAreaCode(tAgent.getAreaCodeEnterprise());
            registerVO.setFileNo(tAgent.getFileNo());
            registerVO.setNotifyUrl(callbackPath + "/base/driver/microenterpriseCallback");
            registerVO.setNotifyUrl(callbackPath + "/tAgent/microenterpriseCallback");
            registerVO.setParameter1(tAgent.getId().toString());
            TrhRequest<Register> request = new TrhRequest();
@@ -367,14 +362,8 @@
                    bindAccount.setBankAcctType(tAgent.getBankAcctType().toString());
                    bindAccount.setPhone(tAgent.getPhone());
                    bindAccount.setBankCode(tAgent.getBankCode());
                    /**
                     * 省份编码
                     */
                    bindAccount.setProvCode("0035");
                    /**
                     * 地区编码
                     */
                    bindAccount.setAreaCode("3501");
                    bindAccount.setProvCode(tAgent.getProvCodeBank());
                    bindAccount.setAreaCode(tAgent.getAreaCodeBank());
                    TrhRequest<BindAccount> request1 = new TrhRequest();
                    InterfaceResponse execute = request1.execute(bindAccount, BindAccount.SERVICE_CODE);
                    if("0000".equals(execute.getCode())){
@@ -405,6 +394,83 @@
            }
        }
    }
    /**
     * 注册商户回调
     */
    @ResponseBody
    @PostMapping("/microenterpriseCallback")
    public void microenterpriseCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
        try {
            if("0000".equals(interfaceResponse.getCode())) {
                JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult());
                String status = jsonObject.getString("status");
                String parameter1 = jsonObject.getString("parameter1");
                TAgent tAgent = tAgentService.selectById(parameter1);
                if ("2".equals(status)) {
                    tAgent.setMerchantStatus(2);
                    tAgentService.updateById(tAgent);
                    System.err.println("注册代理商子商户失败");
                }
                if ("0".equals(status)) {
                    tAgent.setMerchantStatus(0);
                    tAgentService.updateById(tAgent);
                    System.err.println("注册代理商子商户处理中");
                }
                if ("1".equals(status)) {
                    String userId = jsonObject.getString("userId");
                    tAgent.setMerchantNumber(userId);
                    tAgent.setMerchantStatus(1);
                    tAgentService.updateById(tAgent);
                    //开始绑定结算账户
                    BindAccount bindAccount = new BindAccount();
                    bindAccount.setUserId(tAgent.getMerchantNumber());
                    bindAccount.setCertId(tAgent.getMerchantIDCode());
                    bindAccount.setCardName(tAgent.getCardName());
                    bindAccount.setCardNo(tAgent.getCardNo());
                    bindAccount.setBankAcctType(tAgent.getBankAcctType().toString());
                    bindAccount.setPhone(tAgent.getPhone());
                    bindAccount.setBankCode(tAgent.getBankCode());
                    bindAccount.setProvCode(tAgent.getProvCodeBank());
                    bindAccount.setAreaCode(tAgent.getAreaCodeBank());
                    TrhRequest<BindAccount> request1 = new TrhRequest();
                    InterfaceResponse execute = request1.execute(bindAccount, BindAccount.SERVICE_CODE);
                    if ("0000".equals(execute.getCode())) {
                        JSONObject jsonObject1 = JSON.parseObject(execute.getResult());
                        String status1 = jsonObject1.getString("status");
                        if ("2".equals(status1)) {
                            tAgent.setBankStatus(2);
                            tAgentService.updateById(tAgent);
                            System.err.println("绑定结算账户失败");
                        }
                        if ("1".equals(status1)) {
                            tAgent.setBankStatus(1);
                            tAgentService.updateById(tAgent);
                            System.err.println("绑定结算账户成功");
                        }
                        if ("0".equals(status1)) {
                            tAgent.setBankStatus(0);
                            tAgentService.updateById(tAgent);
                            System.err.println("绑定结算账户处理中");
                        }
                    } else {
                        System.err.println("绑定结算账户失败:" + execute.getMsg());
                    }
                    response.setStatus(200);
                    PrintWriter out = response.getWriter();
                    out.print("OK");
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
@@ -752,23 +818,32 @@
     */
    @ResponseBody
    @PostMapping("/withdrawCashCallback")
    public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse) {
        if("0000".equals(interfaceResponse.getCode())){
            JSONObject jsonObject1 = JSON.parseObject(interfaceResponse.getResult());
            String merOrderId1 = jsonObject1.getString("merOrderId");
            Integer status = jsonObject1.getInteger("status");//0:待处理;1:成功;2:失败
            if(1 == status){
                String parameter1 = jsonObject1.getString("parameter1");
                SettlementRecord settlementRecord = settlementRecordService.selectById(parameter1);
                settlementRecord.setOrderNumber(merOrderId1);
                settlementRecord.setArrivalTime(new Date());
                settlementRecordService.updateById(settlementRecord);
    public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response) {
        try {
            if("0000".equals(interfaceResponse.getCode())){
                JSONObject jsonObject1 = JSON.parseObject(interfaceResponse.getResult());
                String merOrderId1 = jsonObject1.getString("merOrderId");
                Integer status = jsonObject1.getInteger("status");//0:待处理;1:成功;2:失败
                if(1 == status){
                    String parameter1 = jsonObject1.getString("parameter1");
                    SettlementRecord settlementRecord = settlementRecordService.selectById(parameter1);
                    settlementRecord.setOrderNumber(merOrderId1);
                    settlementRecord.setArrivalTime(new Date());
                    settlementRecordService.updateById(settlementRecord);
                    response.setStatus(200);
                    PrintWriter out = response.getWriter();
                    out.print("OK");
                    out.flush();
                    out.close();
                }
                if(2 == status){
                    System.err.println("结算接口异常【提现】:" + jsonObject1.getString("statusMsg"));
                }
            }else{
                System.err.println("结算接口异常【提现】:" + interfaceResponse.getMsg());
            }
            if(2 == status){
                System.err.println("结算接口异常【提现】:" + jsonObject1.getString("statusMsg"));
            }
        }else{
            System.err.println("结算接口异常【提现】:" + interfaceResponse.getMsg());
        }catch (Exception e){
            e.printStackTrace();
        }
    }
@@ -881,25 +956,34 @@
     */
    @ResponseBody
    @PostMapping("/accountRechargeCallback")
    public void accountRechargeCallback(@RequestBody InterfaceResponse interfaceResponse){
        if("0000".equals(interfaceResponse.getCode())){
            JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult());
            Integer status = jsonObject.getInteger("status");
            if(2 == status){
                System.err.println("支付异常");
                return;
    public void accountRechargeCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
        try {
            if("0000".equals(interfaceResponse.getCode())){
                JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult());
                Integer status = jsonObject.getInteger("status");
                if(2 == status){
                    System.err.println("支付异常");
                    return;
                }
                if(1 == status){
                    String parameter1 = jsonObject.getString("parameter1");
                    RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1);
                    rechargeRecord.setPayStatus(2);
                    rechargeRecord.setPayTime(new Date());
                    rechargeRecord.setOrderNumber(jsonObject.getString("merOrderId"));
                    rechargeRecord.setSurplusDividedAmount(rechargeRecord.getAmount());
                    rechargeRecordService.updateById(rechargeRecord);
                    response.setStatus(200);
                    PrintWriter out = response.getWriter();
                    out.print("OK");
                    out.flush();
                    out.close();
                }
            }else{
                System.err.println(interfaceResponse.getMsg());
            }
            if(1 == status){
                String parameter1 = jsonObject.getString("parameter1");
                RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1);
                rechargeRecord.setPayStatus(2);
                rechargeRecord.setPayTime(new Date());
                rechargeRecord.setOrderNumber(jsonObject.getString("merOrderId"));
                rechargeRecord.setSurplusDividedAmount(rechargeRecord.getAmount());
                rechargeRecordService.updateById(rechargeRecord);
            }
        }else{
            System.err.println(interfaceResponse.getMsg());
        }catch (Exception e){
            e.printStackTrace();
        }
    }
zuul/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java
@@ -14,13 +14,13 @@
    @Override
    protected void initChannel(SocketChannel socketChannel) throws Exception {
//        String path = "C:\\Program Files\\Apache Software Foundation\\Tomcat 8.5\\cert\\SHA256withRSA_lzhyc.cn.pfx";
        String path = "/usr/local/server/app/cert/tomcat/scs1680576839056_chaoshengdaijia.com_server.jks";
        SSLContext sslContext = createSSLContext.createSSLContext("JKS"
                , path, "Zf3^5v6OoWmOVgeQ");
        //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信
        SSLEngine engine = sslContext.createSSLEngine();
        engine.setUseClientMode(false);
        socketChannel.pipeline().addLast("ssl", new SslHandler(engine));
//        String path = "/usr/local/server/app/cert/tomcat/scs1680576839056_chaoshengdaijia.com_server.jks";
//        SSLContext sslContext = createSSLContext.createSSLContext("JKS"
//                , path, "Zf3^5v6OoWmOVgeQ");
//        //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信
//        SSLEngine engine = sslContext.createSSLEngine();
//        engine.setUseClientMode(false);
//        socketChannel.pipeline().addLast("ssl", new SslHandler(engine));
        // 设置30秒没有读到数据,则触发一个READER_IDLE事件。
        // pipeline.addLast(new IdleStateHandler(30, 0, 0));