前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务项目:尚融宝(45)(核心业务流程:借款申请(2))

微服务项目:尚融宝(45)(核心业务流程:借款申请(2))

作者头像
一个风轻云淡
发布2022-11-15 15:09:05
3160
发布2022-11-15 15:09:05
举报
文章被收录于专栏:java学习javajava学习java

一、后端实现

1、实现思路

借款人提交借款要判断借款人账户绑定状态与借款人信息审批状态,只有这两个状态都成立才能借款,这两个状态都在会员表中 

目标:将借款申请表单中用户填写的数据保存在borrow_info数据库表中

2、枚举

BorrowInfoStatusEnum

 NO_AUTH(0, "未提交"),     CHECK_RUN(1, "审核中"),     CHECK_OK(2, "审核通过"),     CHECK_FAIL(-1, "审核不通过"),     ;

 状态(0:未提交,1:审核中, 2:审核通过, -1:审核不通过)

3、Controller

BorrowInfoController

代码语言:javascript
复制
@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

代码语言:javascript
复制
void saveBorrowInfo(BorrowInfo borrowInfo, Long userId);

实现:BorrowInfoServiceImpl 

代码语言:javascript
复制
@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

代码语言:javascript
复制
    //提交借款申请
    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、应用领域扩大。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、后端实现
    • 1、实现思路
      • 2、枚举
        • 3、Controller
          • 4、Service
          • 二、前端
            • 提交借款申请
            • 今日分享
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档