xuhy
2023-06-14 17f18c3d56a70327874aa7dda0adfa2f5e3dafce
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;
@@ -134,10 +135,59 @@
     */
    @RequestMapping("/areaDetail")
    public String areaDetail(String area,String areaId,Model model) {
//        String[] split1 = areaId.split("/");
//        List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
//        model.addAttribute("provinceList",tRegions);
////        List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
////        // 查询市
////        List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0]));
////        model.addAttribute("cityList",tRegions1);
////
////        // 查询区
////        List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList());
////        List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", cityIds));
////        model.addAttribute("districtList",tRegions2);
//
//        if(StringUtils.hasLength(area) && StringUtils.hasLength(areaId)){
//            String[] split = area.split("/");
//            model.addAttribute("provinceName",split[0]);
//            model.addAttribute("cityName",split[1]);
//            if(split.length>2){
//                model.addAttribute("districtName",split[2]);
//            }else {
//                model.addAttribute("districtName","");
//            }
//
//            model.addAttribute("provinceId",split1[0]);
//            model.addAttribute("cityId",split1[1]);
//            if(split1.length>2) {
//                model.addAttribute("districtId", split1[2]);
//            }else {
//                model.addAttribute("districtId", "");
//            }
//
//            List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0]));
//            model.addAttribute("cityList",tRegions1);
//
//            // 查询区
//            List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", split1[1]));
//            model.addAttribute("districtList",tRegions2);
//        }else {
//            model.addAttribute("cityList",new ArrayList<>());
//            model.addAttribute("districtList",new ArrayList<>());
//
//            model.addAttribute("provinceName","");
//            model.addAttribute("cityName","");
//            model.addAttribute("districtName","");
//
//            model.addAttribute("provinceId","");
//            model.addAttribute("cityId","");
//            model.addAttribute("districtId", "");
//        }
        String[] split1 = areaId.split("/");
        List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
        model.addAttribute("province",tRegions);
        List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
        model.addAttribute("provinceList",tRegions);
//        List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
        // 查询市
        List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0]));
        model.addAttribute("cityList",tRegions1);
@@ -189,7 +239,12 @@
        String[] split1 = tAgent.getArea().split("/");
        int count = tAgentService.selectCount(new EntityWrapper<TAgent>().eq("provinceName", split1[0]).eq("cityName",split1[1]));
//        int count = tAgentService.selectCount(new EntityWrapper<TAgent>()
//                .eq("provinceName", split1[0])
//                .eq("cityName",split1[1])
//                .eq("districtName",sp));
        int count = tAgentService.selectCount(new EntityWrapper<TAgent>()
                .eq("merchantName", tAgent.getMerchantName()));
        if(count>0){
            return new SuccessTip(500,"该代理商已存在!");
        }
@@ -254,7 +309,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 +380,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 +416,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 +448,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();
        }
    }
@@ -643,7 +763,7 @@
        model.addAttribute("roleType", roleType);
        model.addAttribute("item", tAgent);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        model.addAttribute("socialCreditCodeExpires", roleType == 1 ? "" : sdf.format(tAgent.getSocialCreditCodeExpires()));
        model.addAttribute("socialCreditCodeExpires", roleType == 1 ? "" :Objects.isNull(tAgent.getSocialCreditCodeExpires())?"": sdf.format(tAgent.getSocialCreditCodeExpires()));
        model.addAttribute("certIdExpires", roleType == 1 ? "" : sdf.format(tAgent.getCertIdExpires()));
        Wrapper<SettlementRecord> settlementRecordWrapper = new EntityWrapper<SettlementRecord>().eq("type", roleType == 1 ? 1 : 2);
        if(roleType == 2){
@@ -752,23 +872,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 +1010,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();
        }
    }