From e927841a130fa7d37a5ea560d3ddc86c64ce2e26 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 18 十一月 2025 21:00:00 +0800
Subject: [PATCH] 用户端司机端汇付进件对接

---
 DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java |  190 ++++++++++++++++++++++++-----------------------
 1 files changed, 96 insertions(+), 94 deletions(-)

diff --git a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java
index 2021021..c2c7762 100644
--- a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java
+++ b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/UserWithdrawalController.java
@@ -1,5 +1,6 @@
 package com.stylefeng.guns.modular.account.controller;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.account.model.TBankNext;
@@ -10,6 +11,7 @@
 import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
 import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq;
 import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq;
+import com.stylefeng.guns.modular.huifu.biz.DouGongBasicDataBiz;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.IBankCardService;
 import com.stylefeng.guns.modular.system.service.ICompanyService;
@@ -39,6 +41,7 @@
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 @Api(tags = "司机进件(提现操作)/创建电子账簿")
@@ -55,9 +58,10 @@
     private final IDriverService driverService;
     private final ICompanyService companyService;
     private final ITBankNextService bankNextService;
+    private final DouGongBasicDataBiz douGongBasicDataBiz;
 
     @Autowired
-    public UserWithdrawalController(ElectronicLedgerService electronicLedgerService, UserWithdrawalService userWithdrawalService, UserBankAccountService userBankAccountService, IBankCardService bankCardService, IDriverService driverService, ICompanyService companyService, ITBankNextService bankNextService) {
+    public UserWithdrawalController(ElectronicLedgerService electronicLedgerService, UserWithdrawalService userWithdrawalService, UserBankAccountService userBankAccountService, IBankCardService bankCardService, IDriverService driverService, ICompanyService companyService, ITBankNextService bankNextService, DouGongBasicDataBiz douGongBasicDataBiz) {
         this.electronicLedgerService = electronicLedgerService;
         this.userWithdrawalService = userWithdrawalService;
         this.userBankAccountService = userBankAccountService;
@@ -65,6 +69,7 @@
         this.driverService = driverService;
         this.companyService = companyService;
         this.bankNextService = bankNextService;
+        this.douGongBasicDataBiz = douGongBasicDataBiz;
     }
 
 
@@ -82,8 +87,8 @@
             userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")"));
         }
 
-        userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+"));
-        userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+"));
+        //userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+"));
+        //userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+"));
         // 用户进件
         // 获取当前用户id
         Integer driverId = null;
@@ -97,19 +102,28 @@
         }
         // 查询司机
 //        Driver driver = driverService.selectById(id);
-
+        Driver driver = driverService.selectById(driverId);
+        List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone",driver.getPhone()).eq("type", 1));
+        if (CollUtil.isNotEmpty(userWithdrawals)) {
+            return ResultUtil.error("该手机号已绑定进件信息");
+        }
         userWithdrawalReq.setOutRequestNo(ToolUtil.getRandomString(32));
         UserWithdrawal userWithdrawal = new UserWithdrawal();
         BeanUtils.copyProperties(userWithdrawalReq,userWithdrawal);
 
-        String password = userWithdrawal.getTransactionAuthorizationCode();
+        //String password = userWithdrawal.getTransactionAuthorizationCode();
         userWithdrawal.setOutRequestNo(ToolUtil.getRandomString(32));
         try {
             // 司机进件
-            CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq);
-            System.out.println(cusApplicationResp);
+            Map<String, Object> resultMap = douGongBasicDataBiz.userBasicDataIndv(userWithdrawalReq);
+            String respCode = (String) resultMap.get("resp_code");
+            if(!"00000000".equals(respCode)) {
+                return ResultUtil.error((String) resultMap.get("resp_desc"));
+            }
+            //CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq);
+            //System.out.println(cusApplicationResp);
             // 交易授权码加密,并保存司机进件信息
-            userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(userWithdrawal.getTransactionAuthorizationCode()));
+            //userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(userWithdrawal.getTransactionAuthorizationCode()));
 //            userWithdrawal.setUserId(userWithdrawal.getUserId());
             userWithdrawal.setUserId(driverId);
             userWithdrawal.setUserType(2);
@@ -117,6 +131,14 @@
             userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture());
             userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1());
             userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2());
+            userWithdrawal.setHuiFuId((String) resultMap.get("huifu_id"));
+            //调用汇付业务入驻接口
+            Map<String, Object> map = douGongBasicDataBiz.userBusinessOpen(userWithdrawal);
+            if (!"00000000".equals(map.get("resp_code"))){
+                return ResultUtil.error((String) map.get("resp_desc"));
+            }
+            String tokenNo = (String) map.get("token_no");
+            userWithdrawal.setTokenNo(tokenNo);
             userWithdrawalService.insert(userWithdrawal);
 
             // 通过司机进件信息封装银行卡信息进行数据库存储
@@ -127,48 +149,32 @@
             userBankAccountService.insert(userBankAccount);
 
             // 判断是否开户成功
-            if("succeeded".equals(cusApplicationResp.getApplicationStatus())){
-
-                // 开户将司机进件返回的信息进行保存
-                userWithdrawalService.cusApplicationRespToUserWithdrawal(userWithdrawal,cusApplicationResp);
-                userWithdrawalService.updateById(userWithdrawal);
-                System.out.println("开户将司机进件返回的信息");
-                // 开户成功,开通电子账户,绑定账户
-                // 开通电子账簿
+            // 开户将司机进件返回的信息进行保存
+            //userWithdrawalService.cusApplicationRespToUserWithdrawal(userWithdrawal,cusApplicationResp);
+            //userWithdrawalService.updateById(userWithdrawal);
+            //System.out.println("开户将司机进件返回的信息");
+            // 开户成功,开通电子账户,绑定账户
+            // 开通电子账簿
 //                BalanceAcctReq balanceAcctReq = electronicLedgerService.createBalanceAcctReq(userWithdrawal.getCusId(),password);
 //                BalanceAcctStoreResp balanceAcctStoreResp = BalanceAcctExample.create(balanceAcctReq);
 
-                // 开通电子账簿成功,封装实体
-                ElectronicLedger electronicLedger = electronicLedgerService.createElectronicLedger(cusApplicationResp,userWithdrawal,password);
-                System.out.println("开通电子账簿成功,封装实体11111");
-                electronicLedgerService.insert(electronicLedger);
-                System.out.println("开通电子账簿成功,封装实体22222");
+            // 开通电子账簿成功,封装实体
+            //ElectronicLedger electronicLedger = electronicLedgerService.createElectronicLedger(cusApplicationResp,userWithdrawal,password);
+            //System.out.println("开通电子账簿成功,封装实体11111");
+            //electronicLedgerService.insert(electronicLedger);
+            //System.out.println("开通电子账簿成功,封装实体22222");
 
-                // 绑定银行卡
+            // 绑定银行卡
 //                UserBankAccountReq userBankAccountReq = electronicLedgerService.createUserBankAccountReq(bankCard,userWithdrawal.getCusId(),userWithdrawal.getCode());
 //                SettleAcctResp settleAcctResp = SettleAcctExample.create(userBankAccountReq);
 
-                // 保存绑定银行卡返回信息
+            // 保存绑定银行卡返回信息
 //                bankCard.setVerifyStatus(settleAcctResp.getVerifyStatus());
 //                bankCard.setSettleAcctId(settleAcctResp.getSettleAcctId());
 //                bankCard.setAcctValidationFailureMsg(settleAcctResp.getAcctValidationFailureMsg());
 //                bankCard.setAcctValidationFinishedAt(settleAcctResp.getAcctValidationFinishedAt());
 //                bankCardService.updateById(bankCard);
-                return ResultUtil.success();
-            }
-            if("failed".equals(cusApplicationResp.getApplicationStatus())){
-                List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs();
-                if(failureMsgs != null && failureMsgs.size()>0){
-                    return ResultUtil.error(failureMsgs.get(0).getReason());
-                }
-            }
             return ResultUtil.success();
-        }catch (UpyztException e){
-            e.printStackTrace();
-            if(e.getCode().equals("100101")){
-                return ResultUtil.error(e.getIssue());
-            }
-            return ResultUtil.error(e.getMessage());
         } catch (Exception e){
             return ResultUtil.error(e.getMessage());
         }
@@ -205,6 +211,7 @@
             UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
                     .eq("userId",driver.getId())
                             .eq("userType",2)
+                            .eq("type", 1)
                     .last("LIMIT 1"));
             if(Objects.isNull(userWithdrawal1)){
                 return ResultUtil.error("请先进行个人用户进件信息填写");
@@ -228,68 +235,62 @@
             userWithdrawal.setCertificateExpireTime(certificateExpireTime);
             userWithdrawal.setOpenAccountName(openAccountName);
             userWithdrawal.setBankCardCode(bankCardCode);
-            userWithdrawal.setCusId(userWithdrawal1.getCusId());
+            //userWithdrawal.setCusId(userWithdrawal1.getCusId());
             userWithdrawal.setPhone(phone);
             userWithdrawal.setBankCode(bankCode);
             userWithdrawal.setBankBranchCode(bankBranchCode);
             userWithdrawal.setCode(code);
             System.out.println(userWithdrawal);
-            CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
-            System.out.println("修改个人用户进件信息返回:{}"+renew);
-            if("succeeded".equals(renew.getApplicationStatus())){
-                System.out.println("修改成功");
-                userWithdrawal1.setIdCardFrontPicture(copy1);
-                userWithdrawal1.setIdCardReversePicture(copy2);
-                userWithdrawal1.setImgUrl(idCardFrontPicture);
-                userWithdrawal1.setImgUrlOne(idCardReversePicture);
-                userWithdrawal1.setCertificateCode(certificateCode);
-                userWithdrawal1.setCertificateName(certificateName);
-                userWithdrawal1.setCertificateExpireTime(certificateExpireTime);
-                userWithdrawal1.setOpenAccountName(openAccountName);
-                userWithdrawal1.setBankCardCode(bankCardCode);
-                userWithdrawal1.setBankCode(bankCode);
-                userWithdrawal1.setBankBranchCode(bankBranchCode);
-                userWithdrawal1.setPhone(phone);
-                userWithdrawalService.updateById(userWithdrawal1);
-                // 修改成功  查询该银行卡是否存在 如果不存在则添加
-                System.out.println("修改成功");
-                int count = bankCardService.selectCount(new EntityWrapper<BankCard>()
-                        .eq("code", bankCardCode)
-                        .eq("status",true));
-                System.out.println("查询该银行卡是否存在 如果不存在则添加");
-                if(count<1){
-                    System.out.println("该银行卡不存在则添加");
-                    BankCard bankCard = userBankAccountService.userWithdrawalToBankCard(userWithdrawal);
-                    bankCardService.insert(bankCard);
-                    System.out.println("该银行卡添加成功");
-                }
-                System.out.println("查询该银行卡账户是否存在");
-                int count1 = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
-                        .eq("bankCardCode", bankCardCode)
-                        .eq("userType", 2)
-                                .eq("userId",driverId)
-                        .eq("status",true));
-                if(count1<1){
-                    // 添加用户银行卡
-                    System.out.println("该银行卡账户不存在则添加");
-                    UserBankAccount userBankAccount = userBankAccountService.userWithdrawalToUserBankAccount(userWithdrawal);
-                    userBankAccountService.insert(userBankAccount);
-                    System.out.println("该银行卡账户添加成功");
-                }
+            Map<String, Object> resultMap = douGongBasicDataBiz.userBasicDataIndvModify(userWithdrawal);
+            //CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
+            //System.out.println("修改个人用户进件信息返回:{}"+renew);
+            if (!"00000000".equals(resultMap.get("resp_code"))){
+                return ResultUtil.error((String) resultMap.get("resp_desc"));
             }
-            if("failed".equals(renew.getApplicationStatus())){
-                List<FailureMsgParam> failureMsgs = renew.getFailureMsgs();
-                if(failureMsgs != null && failureMsgs.size()>0){
-                    return ResultUtil.error(failureMsgs.get(0).getReason());
-                }
+            //用户业务入驻修改
+            Map<String, Object> map = douGongBasicDataBiz.userBusinessOpenModify(userWithdrawal);
+            if (!"00000000".equals(map.get("resp_code"))){
+                return ResultUtil.error((String) map.get("resp_desc"));
+            }
+            userWithdrawal1.setIdCardFrontPicture(copy1);
+            userWithdrawal1.setIdCardReversePicture(copy2);
+            userWithdrawal1.setImgUrl(idCardFrontPicture);
+            userWithdrawal1.setImgUrlOne(idCardReversePicture);
+            userWithdrawal1.setCertificateCode(certificateCode);
+            userWithdrawal1.setCertificateName(certificateName);
+            userWithdrawal1.setCertificateExpireTime(certificateExpireTime);
+            userWithdrawal1.setOpenAccountName(openAccountName);
+            userWithdrawal1.setBankCardCode(bankCardCode);
+            userWithdrawal1.setBankCode(bankCode);
+            userWithdrawal1.setBankBranchCode(bankBranchCode);
+            userWithdrawal1.setPhone(phone);
+            userWithdrawalService.updateById(userWithdrawal1);
+            // 修改成功  查询该银行卡是否存在 如果不存在则添加
+            System.out.println("修改成功");
+            int count = bankCardService.selectCount(new EntityWrapper<BankCard>()
+                    .eq("code", bankCardCode)
+                    .eq("status",true));
+            System.out.println("查询该银行卡是否存在 如果不存在则添加");
+            if(count<1){
+                System.out.println("该银行卡不存在则添加");
+                BankCard bankCard = userBankAccountService.userWithdrawalToBankCard(userWithdrawal);
+                bankCardService.insert(bankCard);
+                System.out.println("该银行卡添加成功");
+            }
+            System.out.println("查询该银行卡账户是否存在");
+            int count1 = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
+                    .eq("bankCardCode", bankCardCode)
+                    .eq("userType", 2)
+                    .eq("userId",driverId)
+                    .eq("status",true));
+            if(count1<1){
+                // 添加用户银行卡
+                System.out.println("该银行卡账户不存在则添加");
+                UserBankAccount userBankAccount = userBankAccountService.userWithdrawalToUserBankAccount(userWithdrawal);
+                userBankAccountService.insert(userBankAccount);
+                System.out.println("该银行卡账户添加成功");
             }
             return ResultUtil.success();
-        }catch (UpyztException e){
-            e.printStackTrace();
-            if(e.getCode().equals("100101")){
-                return ResultUtil.error(e.getIssue());
-            }
-            return ResultUtil.error(e.getMessage());
         } catch (Exception e){
             e.printStackTrace();
             return ResultUtil.error(e.getMessage());
@@ -310,8 +311,7 @@
                 return ResultUtil.tokenErr();
             }
             Driver driver = driverService.selectById(driverId);
-            List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("userId",driver.getId())
-                            .eq("userType",2));
+            List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone",driver.getPhone()).eq("type", 1));
             if(userWithdrawals.size()==0){
                 return ResultUtil.success("yes");
             }
@@ -341,6 +341,7 @@
                     .eq("userId",driver.getId())
                             .eq("userType",2)
                     .eq("applicationStatus","succeeded")
+                            .eq("type", 1)
                     .last("LIMIT 1"));
             if(Objects.isNull(userWithdrawal)){
                 return ResultUtil.success(new Object());
@@ -370,7 +371,8 @@
             // TODO 司机进件信息
             List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>()
                     .eq("userId", driver.getId())
-                    .eq("userType",2));
+                    .eq("userType",2)
+                    .eq("type", 1));
             if(userWithdrawals.size()==0){
                 return ResultUtil.error("请先进行个人用户进件信息填写");
             }

--
Gitblit v1.7.1