微服务项目:尚融宝(45)(核心业务流程:借款申请(2))
核心 申请 45 服务项目 业务流程 尚融宝 借款
2023-06-13 09:15:11 时间
一、后端实现
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、应用领域扩大。
相关文章
- Vue3源码03: Vue3响应式核心原理
- MyBatis核心组件之SqlSessionFactory
- 机器学习的核心概念置信度和置信区间,我用这个例子把它讲明白
- Spring异步核心@Async注解的前世今生
- 微服务项目:尚融宝(38)(核心业务流程:申请借款额度(2))
- 图个源码系列 · 一步步注释eureka Server启动的核心初始化
- 【Android Gradle 插件】自定义 Gradle 插件模块 ④ ( META-INF 中声明自定义插件的核心类 | 在应用中依赖本地 Maven 仓库中的自定义 Gradle 插件 )
- Redis核心知识点
- 守护Linux进程: 保护核心(linux守护进程)
- 百度金融周年回顾:是什么让李彦宏称“愿金融成为百度核心业务” | 2016 影响因子
- Linux权威指南:掌握技术的核心精髓(linux 权威指南)
- MySQL三个核心线程的功能和作用简介(mysql三个线程)
- 澎思科技曲瀚:AIoT 新基建,算法为底座,服务为核心 | AI 安防峰会
- Javascript级联下拉菜单以及AJAX数据验证核心代码