@Transactional(propagation = Propagation.REQUIRED, rollbackFor = java.lang.RuntimeException.class)
 public void middleManBidLoan(int middleManId, BizLoanTransferApply apply) {
   // 给理财人转钱
   CheckUtil.checkRateThrowException(apply.getInitTransferLoanRate());
   BigDecimal transferAmount =
       bizOriginalLoanService.calculateLoanAmount(
           apply.getOriginalLoanId(), apply.getInitTransferLoanRate());
   BizLenderHoldLoan lenderHoldLoan = bizLenderHoldLoanService.getById(apply.getLenderHoldId());
   LOG.info(
       "Middle man bin apply applyId:["
           + apply.getId()
           + "],orginalLoanId:["
           + apply.getOriginalLoanId()
           + "],transferRate:["
           + apply.getInitTransferLoanRate()
           + "],xsOrderId:["
           + lenderHoldLoan.getXsOrderId()
           + "],transferAmount:["
           + CalculateUtil.setScaleForBizAmount(transferAmount)
           + "]");
   String notes =
       "债权转让:金额["
           + CalculateUtil.setScaleForBizAmount(transferAmount)
           + "],原始债权ID:["
           + apply.getOriginalLoanId()
           + "]";
   busFinancePlanOrderService.backTransferLoanAmount(
       lenderHoldLoan.getXsOrderId(),
       transferAmount,
       middleManId,
       apply.getLenderUserId(),
       "ASSIGNMENT_TRANSFER",
       notes,
       apply.getOriginalLoanId());
   // 更新理财人持有记录
   bizLenderHoldLoanService.updateLoanFullTransferOut(
       apply.getLenderHoldId(),
       lenderHoldLoan.getVersion(),
       BigDecimal.ZERO,
       LenderHoldLoanStatus.TRANSFERED);
   // 添加居间人持有记录
   bizMiddleManHoldLoanService.createMiddleManHoldLoan(apply);
   BusFinancePlanOrder order = busFinancePlanOrderService.getById(lenderHoldLoan.getXsOrderId());
   BizOriginalLoan origLoan = bizOriginalLoanService.getById(apply.getOriginalLoanId());
   // 更新理财人发起的转让申请状态到“成功”
   bizLoanTransferApplyService.updateTransferApplySurplus(
       apply.getId(),
       BigDecimal.ZERO,
       BigDecimal.ZERO,
       TransferApplyStatus.SUCCESS,
       apply.getVersion());
   // 添加转让申请日志(new)
   BizLoanTransferLog transferLog = new BizLoanTransferLog();
   transferLog.setTransferApplyId(apply.getId());
   transferLog.setCreateDatetime(new Date());
   transferLog.setFinanceplanId(order.getFinancePlanId());
   transferLog.setLenderUserId(order.getUserId());
   transferLog.setMiddleManId(apply.getMiddleManId());
   transferLog.setOriginalLoanId(apply.getOriginalLoanId());
   transferLog.setProductId(origLoan.getProductId());
   transferLog.setTotalHoldLoanRate(origLoan.getTotalHoldLoanRate());
   transferLog.setTransferApplyDatetime(apply.getCreateDatetime());
   transferLog.setTransferCurrentAmount(transferAmount);
   transferLog.setTransferDirection(apply.getTransferDirection());
   transferLog.setTransferLoanRate(apply.getTransferLoanRate());
   transferLog.setTransferSuccessAmount(transferAmount);
   transferLog.setTransferSuccessRate(apply.getInitTransferLoanRate());
   transferLog.setXsOrderId(order.getOrderId());
   bizLoanTransferLogService.add(transferLog);
 }