mitao
2025-11-14 b86f280e00ec3623bd9f220957115b8b3137ba77
UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java
@@ -17,6 +17,7 @@
import com.stylefeng.guns.modular.cloudPayment.example.*;
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;
@@ -47,6 +48,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Api(tags = "用户进件(提现操作)/创建电子账簿")
@@ -66,6 +68,8 @@
    private IUserService userService;
    @Autowired
    private IBankCardService bankCardService;
    @Autowired
    private DouGongBasicDataBiz douGongBasicDataBiz;
    @ResponseBody
    @RequestMapping(value = "/addElectronicLedger", method = RequestMethod.POST)
@@ -105,96 +109,87 @@
            System.out.println("验证码:"+userWithdrawalReq.getCode());
            userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+"));
            userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+"));
            // 用户进件
            CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq);
            System.out.println("进件状态:"+cusApplicationResp);
            if("succeeded".equals(cusApplicationResp.getApplicationStatus())) {
                userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(password));
                userWithdrawal.setUserType(1);
                userWithdrawal.setUserId(id);
                userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture());
                userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture());
                userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1());
                userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2());
                userWithdrawalService.insert(userWithdrawal);
                UserWithdrawal userWithdrawal1 = new UserWithdrawal();
                userWithdrawal1.setId(userWithdrawal.getId());
                BeanUtils.copyProperties(cusApplicationResp, userWithdrawal1);
                userWithdrawalService.updateById(userWithdrawal1);
                // 开通电子账簿
                BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
                balanceAcctReq.setCusId(userWithdrawal1.getCusId());
                balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32));
                balanceAcctReq.setPassword(password);
                ElectronicLedger electronicLedger = new ElectronicLedger();
                electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId());
                electronicLedger.setCreateTime(new Date());
                electronicLedger.setCusId(cusApplicationResp.getCusId());
                electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo());
                electronicLedger.setUserId(userWithdrawal.getUserId());
                electronicLedger.setPassword(SecureUtil.md5(password));
                electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo());
                electronicLedger.setUserType(1);
                electronicLedgerService.insert(electronicLedger);
                // 绑卡 存卡
                UserBankAccount userBankAccount = new UserBankAccount();
                userBankAccount.setBankAcctType("1");
                userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
                userBankAccount.setUserType(1);
                userBankAccount.setCreateTime(new Date());
                userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
                // TODO 页面没有输入地方 需要查询
                userBankAccount.setBankCode(userWithdrawal.getBankCode());
                // TODO 行联号
                userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
                userBankAccount.setPhone(userWithdrawal.getPhone());
                userBankAccount.setUserId(userWithdrawal.getUserId());
                userBankAccount.setBankName(userWithdrawal.getBankName());
                userBankAccount.setOpenAccountName(userWithdrawalReq.getOpenAccountName());
                int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
                        .eq("bankCardCode", userWithdrawalReq.getBankCardCode()).eq("phone",userWithdrawalReq.getPhone()).eq("status",1));
                if(count<1){
                    userBankAccountService.insert(userBankAccount);
                }
                BankCard bankCard = new BankCard();
                bankCard.setDriverId(userWithdrawal.getUserId());
                bankCard.setBankAcctType("1");
                bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
                bankCard.setInsertTime(new Date());
                bankCard.setCode(userWithdrawal.getBankCardCode());
                bankCard.setBankCode(userWithdrawal.getBankCode());
                bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
                bankCard.setBank(userWithdrawal.getBankName());
                bankCard.setPhone(userWithdrawal.getPhone());
                bankCard.setName(userWithdrawal.getOpenAccountName());
                bankCard.setIfDefault(true);
                bankCardService.insert(bankCard);
                UserBankAccountReq userBankAccountReq = new UserBankAccountReq();
                BeanUtils.copyProperties(userBankAccount, userBankAccountReq);
                System.err.println(userWithdrawalReq.getCode());
                userBankAccountReq.setCusId(cusApplicationResp.getCusId());
                userBankAccountReq.setCode(userWithdrawalReq.getCode());
                return ResultUtil.success();
            // 用户进件 TODO
            Map<String, Object> resultMap = douGongBasicDataBiz.userBasicDataIndv(userWithdrawalReq);
            String respCode = (String) resultMap.get("resp_code");
            //CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq);
            if(!"200".equals(respCode)) {
                return ResultUtil.error((String) resultMap.get("resp_desc"));
            }
            if("failed".equals(cusApplicationResp.getApplicationStatus())){
                List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs();
                if(failureMsgs != null && failureMsgs.size()>0){
                    return ResultUtil.error(failureMsgs.get(0).getReason());
                }
            userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(password));
            userWithdrawal.setUserType(1);
            userWithdrawal.setUserId(id);
            userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture());
            userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture());
            userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1());
            userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2());
            userWithdrawalService.insert(userWithdrawal);
            //调用汇付业务入驻接口 todo
            Map<String, Object> map = douGongBasicDataBiz.userBusinessOpen(userWithdrawalReq);
            UserWithdrawal userWithdrawal1 = new UserWithdrawal();
            userWithdrawal1.setId(userWithdrawal.getId());
            BeanUtils.copyProperties(cusApplicationResp, userWithdrawal1);
            userWithdrawalService.updateById(userWithdrawal1);
            // 开通电子账簿
            BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
            balanceAcctReq.setCusId(userWithdrawal1.getCusId());
            balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32));
            balanceAcctReq.setPassword(password);
            ElectronicLedger electronicLedger = new ElectronicLedger();
            electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId());
            electronicLedger.setCreateTime(new Date());
            electronicLedger.setCusId(cusApplicationResp.getCusId());
            electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo());
            electronicLedger.setUserId(userWithdrawal.getUserId());
            electronicLedger.setPassword(SecureUtil.md5(password));
            electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo());
            electronicLedger.setUserType(1);
            electronicLedgerService.insert(electronicLedger);
            // 绑卡 存卡
            UserBankAccount userBankAccount = new UserBankAccount();
            userBankAccount.setBankAcctType("1");
            userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
            userBankAccount.setUserType(1);
            userBankAccount.setCreateTime(new Date());
            userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
            // TODO 页面没有输入地方 需要查询
            userBankAccount.setBankCode(userWithdrawal.getBankCode());
            // TODO 行联号
            userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
            userBankAccount.setPhone(userWithdrawal.getPhone());
            userBankAccount.setUserId(userWithdrawal.getUserId());
            userBankAccount.setBankName(userWithdrawal.getBankName());
            userBankAccount.setOpenAccountName(userWithdrawalReq.getOpenAccountName());
            int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
                    .eq("bankCardCode", userWithdrawalReq.getBankCardCode()).eq("phone",userWithdrawalReq.getPhone()).eq("status",1));
            if(count<1){
                userBankAccountService.insert(userBankAccount);
            }
            BankCard bankCard = new BankCard();
            bankCard.setDriverId(userWithdrawal.getUserId());
            bankCard.setBankAcctType("1");
            bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
            bankCard.setInsertTime(new Date());
            bankCard.setCode(userWithdrawal.getBankCardCode());
            bankCard.setBankCode(userWithdrawal.getBankCode());
            bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
            bankCard.setBank(userWithdrawal.getBankName());
            bankCard.setPhone(userWithdrawal.getPhone());
            bankCard.setName(userWithdrawal.getOpenAccountName());
            bankCard.setIfDefault(true);
            bankCardService.insert(bankCard);
            UserBankAccountReq userBankAccountReq = new UserBankAccountReq();
            BeanUtils.copyProperties(userBankAccount, userBankAccountReq);
            System.err.println(userWithdrawalReq.getCode());
            userBankAccountReq.setCusId(cusApplicationResp.getCusId());
            userBankAccountReq.setCode(userWithdrawalReq.getCode());
            return ResultUtil.success();
        }catch (UpyztException e){
            if(e.getCode().equals("100101")){
                return ResultUtil.error(e.getIssue());
            }
            e.printStackTrace();
            String message = e.getMessage();
            return ResultUtil.error(message);
        }catch (Exception e){
            log.error("用户进件失败", e);
            String message = e.getMessage();
            return ResultUtil.error(message);
        }
@@ -249,6 +244,7 @@
            userWithdrawal.setCode(code);
            userWithdrawal.setBankCode(bankCode);
            CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
            Map<String, Object> resultMap = douGongBasicDataBiz.userBasicDataIndvModify(userWithdrawal);
            log.info("修改个人用户进件信息返回:{}",renew);
            if("succeeded".equals(renew.getApplicationStatus())){
                userWithdrawal1.setIdCardFrontPicture(copy1);