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


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

    一、借款人申请借款

    1、需求描述

     2、相关数据库表

    二、具体步骤

     step1:借款人点击“我要借款”

    step2:展示借款信息填写页面 

    step3:借款人填写信息并提交

    step4:展示等待审核页面

     

    5、平台审核

    6、显示审批结果

    未通过 

    通过 

     

    一、获取借款额度

    1、实现思路

    (1)获取借款人积分 

    (2)根据积分获取借款额度,借款人每次借款不能超过借款额度

    2、Controller

    BorrowInfoController

    1. @Api(tags = "借款信息")
    2. @RestController
    3. @RequestMapping("/api/core/borrowInfo")
    4. @Slf4j
    5. public class BorrowInfoController {
    6. @Resource
    7. private BorrowInfoService borrowInfoService;
    8. @ApiOperation("获取借款额度")
    9. @GetMapping("/auth/getBorrowAmount")
    10. public R getBorrowAmount(HttpServletRequest request) {
    11. String token = request.getHeader("token");
    12. Long userId = JwtUtils.getUserId(token);
    13. BigDecimal borrowAmount = borrowInfoService.getBorrowAmount(userId);
    14. return R.ok().data("borrowAmount", borrowAmount);
    15. }
    16. }

    2、Service

    接口:BorrowInfoService

    BigDecimal getBorrowAmount(Long userId);

    实现:BorrowInfoServiceImpl

    1. @Service
    2. public class BorrowInfoServiceImpl extends ServiceImpl implements BorrowInfoService {
    3. @Resource
    4. private UserInfoMapper userInfoMapper;
    5. @Resource
    6. private IntegralGradeMapper integralGradeMapper;
    7. @Override
    8. public BigDecimal getBorrowAmount(Long userId) {
    9. //获取用户积分
    10. UserInfo userInfo = userInfoMapper.selectById(userId);
    11. Assert.notNull(userInfo, ResponseEnum.LOGIN_MOBILE_ERROR);
    12. Integer integral = userInfo.getIntegral();
    13. //根据积分查询借款额度
    14. QueryWrapper queryWrapper = new QueryWrapper<>();
    15. queryWrapper.le("integral_start", integral);
    16. queryWrapper.ge("integral_end", integral);
    17. IntegralGrade integralGradeConfig = integralGradeMapper.selectOne(queryWrapper);
    18. if(integralGradeConfig == null){
    19. return new BigDecimal("0");
    20. }
    21. return integralGradeConfig.getBorrowAmount();
    22. }
    23. }

    二、借款入口前端

    pages/user/borrower.vue

    1. "/user/apply" v-if="borrowerStatus === 2">
    2. "margin-top:20px;" type="success">
    3. 我要借款

    三、借款申请

    1、页面

    pages/user/apply.vue

    2、获取下拉列表

    methods中定义

    1. //初始化下拉列表的数据
    2. initSelected() {
    3. //还款方式列表
    4. this.$axios
    5. .$get('/api/core/dict/findByDictCode/returnMethod')
    6. .then((response) => {
    7. this.returnMethodList = response.data.dictList
    8. })
    9. //资金用途列表
    10. this.$axios
    11. .$get('/api/core/dict/findByDictCode/moneyUse')
    12. .then((response) => {
    13. this.moneyUseList = response.data.dictList
    14. })
    15. },

    created中调用 

    1. created() {
    2. //初始化下拉列表
    3. this.initSelected()
    4. },

    3、获取借款额度

    methods中定义

    1. //获取借款额度
    2. getBorrowAmount() {
    3. this.$axios
    4. .$get('/api/core/borrowInfo/auth/getBorrowAmount')
    5. .then((response) => {
    6. this.borrowAmount = response.data.borrowAmount
    7. })
    8. },

    created中调用 

    1. created() {
    2. //获取借款额度
    3. this.getBorrowAmount()
    4. //初始化下拉列表
    5. ......
    6. },

    4、判断借款额度

    借款人每次借款不能超过借款额度

    1. watch: {
    2. 'borrowInfo.amount'(value) {
    3. if (value > this.borrowAmount) {
    4. let _this = this
    5. this.$alert('您的借款额度不足!', {
    6. type: 'error',
    7. callback() {
    8. _this.borrowInfo.amount = _this.borrowAmount
    9. },
    10. })
    11. }
    12. },
    13. },
  • 相关阅读:
    MySQL 事务-学习记录
    C++11之线程库(Thread、Mutex、atomic、lock_guard、同步)
    JPA 查询的类型
    Mac无法打开CORE Keygen
    假设检验2
    社区团购平台(java版)
    Log4j有哪几种日志级别呢?
    【Rust—LeetCode题解】1656. 设计有序流
    SSM+医保业财一体化管理系统 毕业设计-附源码151023
    FreeRTOS简单内核实现5 阻塞延时
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/126900757