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.DateUtil; import com.stylefeng.guns.core.util.RequestSeqUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.model.TBankNext; import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.account.req.UserWithdrawalReq; import com.stylefeng.guns.modular.account.service.*; import com.stylefeng.guns.modular.account.util.Base64Util; import com.stylefeng.guns.modular.cloudPayment.example.*; 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.huifu.biz.DouGongWithdrawBiz; import com.stylefeng.guns.modular.huifu.biz.FenZhangUtil; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.IBankCardService; import com.stylefeng.guns.modular.system.service.ICompanyService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IRegionService; import com.stylefeng.guns.modular.system.service.ISysWithdrawalPoundageService; import com.stylefeng.guns.modular.system.service.IWithdrawalService; import com.stylefeng.guns.modular.system.service.impl.WithdrawalServiceImpl; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.unionpay.upyzt.exception.InvalidRequestException; import com.unionpay.upyzt.exception.UpyztException; import com.unionpay.upyzt.param.FailureMsgParam; import com.unionpay.upyzt.resp.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import net.bytebuddy.asm.Advice; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; @Api(tags = "司机进件(提现操作)/创建电子账簿") @RestController @RequestMapping("/api/electronicLedger") public class UserWithdrawalController { private final static Logger log = LoggerFactory.getLogger(UserWithdrawalController.class); private final ElectronicLedgerService electronicLedgerService; private final UserWithdrawalService userWithdrawalService; private final UserBankAccountService userBankAccountService; private final IBankCardService bankCardService; private final IDriverService driverService; private final ICompanyService companyService; private final ITBankNextService bankNextService; private final DouGongBasicDataBiz douGongBasicDataBiz; private final IRegionService regionService; private final ITEnterpriseWithdrawalService enterpriseWithdrawalService; private final DouGongWithdrawBiz douGongWithdrawBiz; private final ISysWithdrawalPoundageService sysWithdrawalPoundageService; private final IWithdrawalService withdrawalService; @Autowired public UserWithdrawalController(ElectronicLedgerService electronicLedgerService, UserWithdrawalService userWithdrawalService, UserBankAccountService userBankAccountService, IBankCardService bankCardService, IDriverService driverService, ICompanyService companyService, ITBankNextService bankNextService, DouGongBasicDataBiz douGongBasicDataBiz,IRegionService regionService, ITEnterpriseWithdrawalService enterpriseWithdrawalService,DouGongWithdrawBiz douGongWithdrawBiz, ISysWithdrawalPoundageService sysWithdrawalPoundageService,IWithdrawalService withdrawalService) { this.electronicLedgerService = electronicLedgerService; this.userWithdrawalService = userWithdrawalService; this.userBankAccountService = userBankAccountService; this.bankCardService = bankCardService; this.driverService = driverService; this.companyService = companyService; this.bankNextService = bankNextService; this.douGongBasicDataBiz = douGongBasicDataBiz; this.regionService = regionService; this.enterpriseWithdrawalService = enterpriseWithdrawalService; this.douGongWithdrawBiz = douGongWithdrawBiz; this.sysWithdrawalPoundageService = sysWithdrawalPoundageService; this.withdrawalService = withdrawalService; } @ResponseBody @RequestMapping(value = "/addElectronicLedger", method = RequestMethod.POST) @ApiOperation(value = "司机进件(提现账户设置)", tags = {"司机端-司机进件(提现账户设置)"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) public ResultUtil addElectronicLedger(UserWithdrawalReq userWithdrawalReq, HttpServletRequest request){ System.out.println(userWithdrawalReq); if(StringUtils.hasLength(userWithdrawalReq.getBankName())){ userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #40;","(")); userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")")); } //userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+")); //userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+")); // 用户进件 // 获取当前用户id Integer driverId = null; try { driverId = driverService.getUserIdFormRedis(request); } catch (Exception e) { return ResultUtil.error(e.getMessage()); } if(null == driverId){ return ResultUtil.tokenErr(); } // 查询司机 // Driver driver = driverService.selectById(id); Driver driver = driverService.selectById(driverId); List userWithdrawals = userWithdrawalService.selectList(new EntityWrapper().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(); userWithdrawal.setOutRequestNo(ToolUtil.getRandomString(32)); try { // 司机进件 Map resultMap = douGongBasicDataBiz.userBasicDataIndv(userWithdrawal); 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.setUserId(userWithdrawal.getUserId()); userWithdrawal.setUserId(driverId); userWithdrawal.setUserType(2); userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture()); userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture()); userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1()); userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2()); userWithdrawal.setHuifuId((String) resultMap.get("huifu_id")); //调用汇付业务入驻接口 Map 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); // 通过司机进件信息封装银行卡信息进行数据库存储 BankCard bankCard = userBankAccountService.userWithdrawalToBankCard(userWithdrawal); bankCardService.insert(bankCard); // 添加用户银行卡 UserBankAccount userBankAccount = userBankAccountService.userWithdrawalToUserBankAccount(userWithdrawal); userBankAccountService.insert(userBankAccount); // 判断是否开户成功 // 开户将司机进件返回的信息进行保存 //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"); // 绑定银行卡 // 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(); } catch (Exception e){ return ResultUtil.error(e.getMessage()); } } @ResponseBody @RequestMapping(value = "/updateElectronicLedgerInfo", method = RequestMethod.POST) @ApiOperation(value = "司机修改进件信息", tags = {"司机端-司机修改进件信息"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) public ResultUtil updateElectronicLedgerInfo(String idCardFrontPicture, String idCardReversePicture, String certificateCode, String certificateName, String certificateExpireTime, String openAccountName, String bankCardCode, String bankCode, String bankBranchCode, String phone, String code, String copy1, String copy2, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); // TODO 司机进件信息 UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper() .eq("userId",driver.getId()) .eq("userType",2) .eq("type", 1) .last("LIMIT 1")); if(Objects.isNull(userWithdrawal1)){ return ResultUtil.error("请先进行个人用户进件信息填写"); } TBankNext bankNext = bankNextService.selectOne(new EntityWrapper() .eq("bankCode", bankBranchCode) .last("LIMIT 1")); UserWithdrawal userWithdrawal = new UserWithdrawal(); if(Objects.nonNull(bankNext)){ userWithdrawal1.setBankName(bankNext.getBankName()); } BeanUtils.copyProperties(userWithdrawal1,userWithdrawal); userWithdrawal.setIdCardFrontPicture(copy1); userWithdrawal.setIdCardReversePicture(copy2); userWithdrawal.setImgUrl(idCardFrontPicture); userWithdrawal.setImgUrlOne(idCardReversePicture); userWithdrawal.setCertificateCode(certificateCode); userWithdrawal.setCertificateName(certificateName); userWithdrawal.setCertificateExpireTime(certificateExpireTime); userWithdrawal.setOpenAccountName(openAccountName); userWithdrawal.setBankCardCode(bankCardCode); //userWithdrawal.setCusId(userWithdrawal1.getCusId()); userWithdrawal.setPhone(phone); userWithdrawal.setBankCode(bankCode); userWithdrawal.setBankBranchCode(bankBranchCode); userWithdrawal.setCode(code); System.out.println(userWithdrawal); Map 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")); } //用户业务入驻修改 Map 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() .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() .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 (Exception e){ e.printStackTrace(); return ResultUtil.error(e.getMessage()); } } @ResponseBody @RequestMapping(value = "/isElectronicLede", method = RequestMethod.POST) @ApiOperation(value = "司机是否需要进件", tags = {"司机端-司机是否需要进件"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil isElectronicLede(HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); List userWithdrawals = userWithdrawalService.selectList(new EntityWrapper().eq("phone",driver.getPhone()).eq("type", 1)); if(userWithdrawals.size()==0){ return ResultUtil.success("yes"); } return ResultUtil.success("no"); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @RequestMapping(value = "/getUserInfo", method = RequestMethod.POST) @ApiOperation(value = "司机进件信息", tags = {"司机端-司机进件信息"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) public ResultUtil getUserInfo(HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); // TODO 司机进件信息 UserWithdrawal userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper() .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()); } Region province = regionService.getRegionByCode(userWithdrawal.getBankCardProvinceCode()); Region city = regionService.getRegionByCode(userWithdrawal.getBankCardCityCode()); userWithdrawal.setBankCardProvince(province == null ? "" : province.getName()); userWithdrawal.setBankCardCity(city == null ? "" : city.getName()); return ResultUtil.success(userWithdrawal); }catch (Exception e){ e.printStackTrace(); return ResultUtil.error(e.getMessage()); } } @ResponseBody @RequestMapping(value = "/isElectronicLedger", method = RequestMethod.POST) @ApiOperation(value = "司机是否创建电子账簿", tags = {"司机端-司机是否创建电子账簿"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) public ResultUtil isElectronicLedger(HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); // TODO 司机进件信息 List userWithdrawals = userWithdrawalService.selectList(new EntityWrapper() .eq("userId", driver.getId()) .eq("userType",2) .eq("type", 1)); if(userWithdrawals.size()==0){ return ResultUtil.error("请先进行个人用户进件信息填写"); } return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.error(e.getMessage()); } } @ResponseBody @RequestMapping(value = "/withdrawDeposit", method = RequestMethod.POST) @ApiOperation(value = "司机提现", tags = {"司机端-司机提现"}, notes = "amount-提现金额,password-交易授权码") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) public ResultUtil withdrawDeposit(Integer amount,String bankAcctNo,HttpServletRequest request){ Integer driverId = null; try { driverId = driverService.getUserIdFormRedis(request); } catch (Exception e) { throw new RuntimeException(e); } if(null == driverId){ return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); // Boolean aBoolean = userWithdrawalService.withdrawDeposit(amount, bankAcctNo, driver.getWithdrawPassword()); // 查询当前操作电子用户 // 司机进件信息 UserWithdrawal userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper() .eq("phone",driver.getPhone()).eq("type", 1) //.eq("applicationStatus","succeeded") .last("LIMIT 1")); System.out.println("司机电子账簿信息====:"+userWithdrawal); if(Objects.isNull(userWithdrawal)){ return ResultUtil.error("司机开户信息为空"); } // 先从平台进行分账到用户电子账簿 // 查询平台账户 Company company = companyService.selectOne(new EntityWrapper() .eq("type", 1)); TEnterpriseWithdrawal tEnterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper().eq("companyId", company.getId()) .eq("type", 1).last("LIMIT 1")); if (Objects.isNull(tEnterpriseWithdrawal)) { return ResultUtil.error("分公司未配置账户信息"); } // 查询平台开户信息 //ElectronicLedger electronicLedger = electronicLedgerService.selectOne(new EntityWrapper() // .eq("userId", company.getId()) // .eq("userType", 3) // .last("LIMIT 1")); try { // 进行平台分账到司机电子账簿 System.out.println("平台分a账到司机电子账簿========="); String fzReqSeqId = RequestSeqUtil.generate("FZ"); Map fenzhng = FenZhangUtil.fenzhang(fzReqSeqId, DateUtil.format(new Date(), "yyyyMMdd"), amount.toString(), userWithdrawal.getHuifuId()); if (!"00000000".equals(fenzhng.get("resp_code"))){ System.err.println("平台分a账到司机电子账簿" + fenzhng); return ResultUtil.error("提现失败:"+fenzhng.get("resp_desc")); } Withdrawal withdrawal = new Withdrawal(); withdrawal.setBankName(userWithdrawal.getBankName()); withdrawal.setCode(userWithdrawal.getBankCode()); withdrawal.setFlag(1); withdrawal.setInsertTime(new Date()); withdrawal.setMoney(amount.doubleValue()); withdrawal.setName(userWithdrawal.getOpenAccountName()); withdrawal.setState(1); withdrawal.setUserId(userWithdrawal.getUserId()); withdrawal.setUserType(2); withdrawal.setType(2); withdrawal.setWithdrawalType(1);//线上 withdrawal.setRealGetMoney(amount - (amount*(sysWithdrawalPoundageService.selectOne(null).getPercentage()/100))); withdrawal.setFzReqSeqId(fzReqSeqId); withdrawalService.insert(withdrawal); if ("00000000".equals(fenzhng.get("resp_code")) && "S".equals(fenzhng.get("trans_stat"))){ String txReqSeqId = RequestSeqUtil.generate("TX"); withdrawal.setReqSeqId(txReqSeqId); Map tx = douGongWithdrawBiz.encashment(txReqSeqId, BigDecimal.valueOf(amount), userWithdrawal.getHuifuId(), userWithdrawal.getTokenNo(), 2); withdrawal.setHfSeqId(tx.get("huifu_id").toString()); if (!"00000000".equals(tx.get("resp_code"))){ System.err.println("平台分a账到司机电子账簿" + tx); return ResultUtil.error("提现失败:"+tx.get("resp_desc")); } if ("00000000".equals(tx.get("resp_code")) && "S".equals(tx.get("trans_stat"))){ withdrawal.setState(2); } withdrawalService.updateById(withdrawal); } //AllocationReq allocationReq = userWithdrawalService.createAllocationReq(userWithdrawal.getBalanceAcctId(), electronicLedger.getBalanceAcctId(), amount,userWithdrawal.getTransactionAuthorizationCode()); //AllocationResp allocationResp = AllocationExample.create(allocationReq); //System.out.println("平台分账到司机电子账簿完成=========:{}"+allocationResp); // 用户电子账簿进行提现操作 //WithdrawalResp withdrawalResp = WithdrawalExample.create(userWithdrawalService.createWithdrawalReq(userWithdrawal.getBalanceAcctId(), amount, userWithdrawal.getTransactionAuthorizationCode(), bankAcctNo)); //System.out.println("司机电子账簿提现完成=========:{}"+withdrawalResp); return ResultUtil.success(); }catch (Exception e){ System.out.println("司机提现失败=========:{}"+e.getMessage()); e.printStackTrace(); return ResultUtil.error(e.getMessage()); } } @ResponseBody @RequestMapping(value = "/querySettledAmount", method = RequestMethod.POST) @ApiOperation(value = "可提现余额查询", tags = {"可提现余额查询"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil querySettledAmount(HttpServletRequest request){ BalanceAcctListResp balanceAcctListResp = null; // ElectronicLedger electronicLedger = null; UserWithdrawal userWithdrawal = null; try { Integer driverId = driverService.getUserIdFormRedis(request); Driver driver = driverService.selectById(driverId); // 通过司机id查询开户信息, // 司机进件信息 // electronicLedger = electronicLedgerService.selectOne(new EntityWrapper() // .eq("userId", driverId) // .eq("userType", 2)); userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper() .eq("phone", driver.getPhone()) .eq("type", 1) .last("LIMIT 1")); if(Objects.isNull(userWithdrawal)){ return ResultUtil.error("该司机开户信息为空"); } BigDecimal balance = douGongBasicDataBiz.balanceQuery(userWithdrawal.getHuifuId()); //System.err.println(balance); return ResultUtil.success(balance); //BalanceAcctReq balanceAcctReq = new BalanceAcctReq(); //balanceAcctReq.setCusId(userWithdrawal.getCusId()); //balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq); } catch (Exception e) { log.error("电子账簿可提现余额查询失败:{}",e.getMessage()); e.printStackTrace(); } /* if(Objects.isNull(balanceAcctListResp)){ log.error("电子账簿可提现余额查询失败"); return ResultUtil.error("电子账簿可提现余额查询失败"); } log.info("电子账簿可提现余额查询完成=========:{}",balanceAcctListResp); List balanceAccts = balanceAcctListResp.getBalanceAccts(); if(CollectionUtils.isEmpty(balanceAccts)){ log.error("电子账簿可提现余额查询失败"); return ResultUtil.error("电子账簿可提现余额查询失败"); } for (BalanceAcctItem balanceAcct : balanceAccts) { if(userWithdrawal.getBalanceAcctId().equals(balanceAcct.getBalanceAcctId())){ return ResultUtil.success(new BigDecimal(balanceAcct.getSettledAmount()).divide(new BigDecimal(100))); } }*/ return ResultUtil.success(BigDecimal.ZERO); } @ResponseBody @RequestMapping(value = "/uploadImg", method = RequestMethod.POST) @ApiOperation(value = "进件上传图片", tags = {"司机端-进件上传图片"}, notes = "") @ApiImplicitParams({ }) @Transactional(isolation = Isolation.READ_UNCOMMITTED,rollbackFor = Exception.class,propagation = Propagation.REQUIRED) public ResultUtil uploadImg(MultipartFile multipartFile, HttpServletRequest request){ try { MediaResp mediaResp = MediaExample.uploadImage(multipartFile); System.out.println(mediaResp); String mediaId = mediaResp.getMediaId(); return ResultUtil.success(mediaId); }catch (Exception e){ e.printStackTrace(); return ResultUtil.error(e.getMessage()); } } }