认清现实,放弃幻想,准备斗争
一、后端实现
1、实现思路
借款人提交借款要判断借款人账户绑定状态与借款人信息审批状态,只有这两个状态都成立才能借款,这两个状态都在会员表中
目标:将借款申请表单中用户填写的数据保存在borrow_info数据库表中
2、枚举
BorrowInfoStatusEnum
NO_AUTH(0, "未提交"), CHECK_RUN(1, "审核中"), CHECK_OK(2, "审核通过"), CHECK_FAIL(-1, "审核不通过"), ;
状态(0:未提交,1:审核中, 2:审核通过, -1:审核不通过)
3、Controller
BorrowInfoController
@ApiOperation("提交借款申请") @PostMapping("/auth/save") public R save(@RequestBody BorrowInfo borrowInfo, HttpServletRequest request) { String token = request.getHeader("token"); Long userId = JwtUtils.getUserId(token); borrowInfoService.saveBorrowInfo(borrowInfo, userId); return R.ok().message("提交成功"); }
4、Service
接口:BorrowInfoService
void saveBorrowInfo(BorrowInfo borrowInfo, Long userId);
实现:BorrowInfoServiceImpl
@Override public void saveBorrowInfo(BorrowInfo borrowInfo, Long userId) { //获取userInfo的用户数据 UserInfo userInfo = userInfoMapper.selectById(userId); //判断用户绑定状态 Assert.isTrue( userInfo.getBindStatus().intValue() == UserBindEnum.BIND_OK.getStatus().intValue(), ResponseEnum.USER_NO_BIND_ERROR); //判断用户信息是否审批通过 Assert.isTrue( userInfo.getBorrowAuthStatus().intValue() == BorrowerStatusEnum.AUTH_OK.getStatus().intValue(), ResponseEnum.USER_NO_AMOUNT_ERROR); //判断借款额度是否足够 BigDecimal borrowAmount = this.getBorrowAmount(userId); Assert.isTrue( borrowInfo.getAmount().doubleValue() <= borrowAmount.doubleValue(), ResponseEnum.USER_AMOUNT_LESS_ERROR); //存储数据 borrowInfo.setUserId(userId); //百分比转成小数 borrowInfo.setBorrowYearRate( borrowInfo.getBorrowYearRate().divide(new BigDecimal(100))); borrowInfo.setStatus(BorrowInfoStatusEnum.CHECK_RUN.getStatus()); baseMapper.insert(borrowInfo); }
二、前端
提交借款申请
pages/user/apply.vue
//提交借款申请 save() { // this.submitBtnDisabled = true this.$axios .$post('/api/core/borrowInfo/auth/save', this.borrowInfo) .then((response) => { this.active = 1 }) },
今日分享
晶体管
第二代计算机采用的主要元件是晶体管,称为晶体管计算机。计算机软件有了较大发展,程序语言也出现了Fortran,Cobol计算机高级语言,采用了监控程序,这是操作系统的雏形。
主要特点:
1、体积小,可靠性增强,寿命延长。
2、运算速度快。
3、提高了操纵系统适应性。
4、容量提高。
5、应用领域扩大。