认清现实,放弃幻想,准备斗争

lend:标的表
管理员借款审核通过后,则产生新标的


创建 LendStatusEnum
CHECK(0, "待发布"),
INVEST_RUN(1, "募资中"),
PAY_RUN(2, "还款中"),
PAY_OK(3, "已结清"),
FINISH(4, "结标"),
CANCEL(-1, "已撤标"),
;
service-core中添加辅助类:util.LendNoUtils
BorrowInfoServiceImpl 实现:
- @Resource
- private LendService lendService;
-
- @Transactional(rollbackFor = Exception.class)
- @Override
- public void approval(BorrowInfoApprovalVO borrowInfoApprovalVO) {
-
- //修改借款信息状态
- ......
-
- //审核通过则创建标的
- if (borrowInfoApprovalVO.getStatus().intValue() == BorrowInfoStatusEnum.CHECK_OK.getStatus().intValue()) {
- //创建标的
- lendService.createLend(borrowInfoApprovalVO, borrowInfo);
- }
- }
LendService 接口:
void createLend(BorrowInfoApprovalVO borrowInfoApprovalVO, BorrowInfo borrowInfo);
LendServiceImpl 实现:生成标的
- @Override
- public void createLend(BorrowInfoApprovalVO borrowInfoApprovalVO, BorrowInfo borrowInfo) {
- Lend lend = new Lend();
- lend.setUserId(borrowInfo.getUserId());
- lend.setBorrowInfoId(borrowInfo.getId());
- lend.setLendNo(LendNoUtils.getLendNo());//生成编号
- lend.setTitle(borrowInfoApprovalVO.getTitle());
- lend.setAmount(borrowInfo.getAmount());
- lend.setPeriod(borrowInfo.getPeriod());
- lend.setLendYearRate(borrowInfoApprovalVO.getLendYearRate().divide(new BigDecimal(100)));//从审批对象中获取
- lend.setServiceRate(borrowInfoApprovalVO.getServiceRate().divide(new BigDecimal(100)));//从审批对象中获取
- lend.setReturnMethod(borrowInfo.getReturnMethod());
- lend.setLowestAmount(new BigDecimal(100));
- lend.setInvestAmount(new BigDecimal(0));
- lend.setInvestNum(0);
- lend.setPublishDate(LocalDateTime.now());
-
- //起息日期
- DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- LocalDate lendStartDate = LocalDate.parse(borrowInfoApprovalVO.getLendStartDate(), dtf);
- lend.setLendStartDate(lendStartDate);
- //结束日期
- LocalDate lendEndDate = lendStartDate.plusMonths(borrowInfo.getPeriod());
- lend.setLendEndDate(lendEndDate);
-
- lend.setLendInfo(borrowInfoApprovalVO.getLendInfo());//描述
-
- //平台预期收益
- // 月年化 = 年化 / 12
- BigDecimal monthRate = lend.getServiceRate().divide(new BigDecimal(12), 8, BigDecimal.ROUND_DOWN);
- // 平台收益 = 标的金额 * 月年化 * 期数
- BigDecimal expectAmount = lend.getAmount().multiply(monthRate).multiply(new BigDecimal(lend.getPeriod()));
- lend.setExpectAmount(expectAmount);
-
- //实际收益
- lend.setRealAmount(new BigDecimal(0));
- //状态
- lend.setStatus(LendStatusEnum.INVEST_RUN.getStatus());
- //审核时间
- lend.setCheckTime(LocalDateTime.now());
- //审核人
- lend.setCheckAdminId(1L);
-
- baseMapper.insert(lend);
- }
由于这个项目没做管理员管理部分,用前端写死的管理员,即审核人的id是写死的