puzhibing
2023-06-03 06057d33c65653f80ccf716a396b89052e2d8eb6
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,7 +818,8 @@
     */
    @ResponseBody
    @PostMapping("/withdrawCashCallback")
    public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse) {
    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");
@@ -763,12 +830,20 @@
                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());
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
@@ -881,7 +956,8 @@
     */
    @ResponseBody
    @PostMapping("/accountRechargeCallback")
    public void accountRechargeCallback(@RequestBody InterfaceResponse interfaceResponse){
    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");
@@ -897,10 +973,18 @@
                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());
        }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}