码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 微服务项目:尚融宝(40)(核心业务流程:申请借款额度(3))


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

    一、后端开发

    1、定义VO对象

    service-core微服务,创建BorrowerVO

    1. @Data
    2. @ApiModel(description="借款人认证信息")
    3. public class BorrowerVO {
    4. @ApiModelProperty(value = "性别(1:男 0:女)")
    5. private Integer sex;
    6. @ApiModelProperty(value = "年龄")
    7. private Integer age;
    8. @ApiModelProperty(value = "学历")
    9. private Integer education;
    10. @ApiModelProperty(value = "是否结婚(1:是 0:否)")
    11. private Boolean marry;
    12. @ApiModelProperty(value = "行业")
    13. private Integer industry;
    14. @ApiModelProperty(value = "月收入")
    15. private Integer income;
    16. @ApiModelProperty(value = "还款来源")
    17. private Integer returnSource;
    18. @ApiModelProperty(value = "联系人名称")
    19. private String contactsName;
    20. @ApiModelProperty(value = "联系人手机")
    21. private String contactsMobile;
    22. @ApiModelProperty(value = "联系人关系")
    23. private Integer contactsRelation;
    24. @ApiModelProperty(value = "借款人附件资料")
    25. private List borrowerAttachList;
    26. }

    2、定义枚举

    BorrowerStatusEnum

    数据库设计中对应认证状态status (0:未认证,1:认证中, 2:认证通过, -1:认证失败)

    3、controller

    service-core中在BorrowerController中定义接口方法

    1. @Api(tags = "借款人")
    2. @RestController
    3. @RequestMapping("/api/core/borrower")
    4. @Slf4j
    5. public class BorrowerController {
    6. @Resource
    7. private BorrowerService borrowerService;
    8. @ApiOperation("保存借款人信息")
    9. @PostMapping("/auth/save")
    10. public R save(@RequestBody BorrowerVO borrowerVO, HttpServletRequest request) {
    11. String token = request.getHeader("token");
    12. Long userId = JwtUtils.getUserId(token);
    13. borrowerService.saveBorrowerVOByUserId(borrowerVO, userId);
    14. return R.ok().message("信息提交成功");
    15. }
    16. }

    6、service

    接口:BorrowerService 

    void saveBorrowerVOByUserId(BorrowerVO borrowerVO, Long userId);

    实现:BorrowerServiceImpl 

    1. @Resource
    2. private BorrowerAttachMapper borrowerAttachMapper;
    3. @Resource
    4. private UserInfoMapper userInfoMapper;
    5. @Transactional(rollbackFor = Exception.class)
    6. @Override
    7. public void saveBorrowerVOByUserId(BorrowerVO borrowerVO, Long userId) {
    8. UserInfo userInfo = userInfoMapper.selectById(userId);
    9. //保存借款人信息
    10. Borrower borrower = new Borrower();
    11. BeanUtils.copyProperties(borrowerVO, borrower);
    12. borrower.setUserId(userId);
    13. borrower.setName(userInfo.getName());
    14. borrower.setIdCard(userInfo.getIdCard());
    15. borrower.setMobile(userInfo.getMobile());
    16. borrower.setStatus(BorrowerStatusEnum.AUTH_RUN.getStatus());//认证中
    17. baseMapper.insert(borrower);
    18. //保存附件
    19. List borrowerAttachList = borrowerVO.getBorrowerAttachList();
    20. borrowerAttachList.forEach(borrowerAttach -> {
    21. borrowerAttach.setBorrowerId(borrower.getId());
    22. borrowerAttachMapper.insert(borrowerAttach);
    23. });
    24. //更新会员状态,更新为认证中
    25. userInfo.setBorrowAuthStatus(BorrowerStatusEnum.AUTH_RUN.getStatus());
    26. userInfoMapper.updateById(userInfo);
    27. }

    二、前端整合

    pages/user/borrower.vue 脚本

    1. save() {
    2. // debugger
    3. this.submitBtnDisabled = true
    4. this.$axios
    5. .$post('/api/core/borrower/save', this.borrower)
    6. .then((response) => {
    7. this.active = 1
    8. })
    9. },

     

    一、获取借款人状态

    1、BorrowerController

    1. @ApiOperation("获取借款人认证状态")
    2. @GetMapping("/auth/getBorrowerStatus")
    3. public R getBorrowerStatus(HttpServletRequest request){
    4. String token = request.getHeader("token");
    5. Long userId = JwtUtils.getUserId(token);
    6. Integer status = borrowerService.getStatusByUserId(userId);
    7. return R.ok().data("borrowerStatus", status);
    8. }

    2、service

    接口:BorrowerService

    Integer getStatusByUserId(Long userId);

    实现:BorrowerServiceImpl 

    1. @Override
    2. public Integer getStatusByUserId(Long userId) {
    3. QueryWrapper borrowerQueryWrapper = new QueryWrapper<>();
    4. borrowerQueryWrapper.select("status").eq("user_id", userId);
    5. List objects = baseMapper.selectObjs(borrowerQueryWrapper);
    6. if(objects.size() == 0){
    7. //借款人尚未提交信息
    8. return BorrowerStatusEnum.NO_AUTH.getStatus();
    9. }
    10. Integer status = (Integer)objects.get(0);
    11. return status;
    12. }
    13. 二、前端开发

      pages/user/borrower.vue 脚本

      将this.initSelected()在this.getUserInfo()中调用

       methods中添加方法:

      1. //获取借款人信息
      2. getUserInfo() {
      3. this.$axios
      4. .$get('/api/core/borrower/auth/getBorrowerStatus')
      5. .then((response) => {
      6. this.borrowerStatus = response.data.borrowerStatus
      7. if (this.borrowerStatus === 0) {
      8. //未认证
      9. this.active = 0
      10. //获取下拉列表
      11. this.initSelected()
      12. } else if (this.borrowerStatus === 1) {
      13. //认证中
      14. this.active = 1
      15. } else if (this.borrowerStatus === 2) {
      16. //认证成功
      17. this.active = 2
      18. } else if (this.borrowerStatus === -1) {
      19. //认证失败
      20. this.active = 2
      21. }
      22. })
      23. }

      将 data() 中 active的初始化值设置为null 

       active: null, //步骤

    14. 相关阅读:
      秋招准备--基础知识复习--系统编程
      NLP(2)--搭建简单的模型(nn)
      软件临界资源访问冲突
      Java Map get()用法及代码示例
      配置XP虚拟机和Win 10宿主机互相ping通
      长安链共识模块优化中的“精益求精”
      【笔记版】cgroup大摸底
      【学习笔记】[AGC064C] Erase and Divide Game
      云计算——虚拟化技术Docker网络管理及数据存储
      编程可以自学吗
    15. 原文地址:https://blog.csdn.net/m0_62436868/article/details/126863692
      • 最新文章
      • 攻防演习之三天拿下官网站群
        数据安全治理学习——前期安全规划和安全管理体系建设
        企业安全 | 企业内一次钓鱼演练准备过程
        内网渗透测试 | Kerberos协议及其部分攻击手法
        0day的产生 | 不懂代码的"代码审计"
        安装scrcpy-client模块av模块异常,环境问题解决方案
        leetcode hot100【LeetCode 279. 完全平方数】java实现
        OpenWrt下安装Mosquitto
        AnatoMask论文汇总
        【AI日记】24.11.01 LangChain、openai api和github copilot
      • 热门文章
      • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
        奉劝各位学弟学妹们,该打造你的技术影响力了!
        五年了,我在 CSDN 的两个一百万。
        Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
        面试官都震惊,你这网络基础可以啊!
        你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
        心情不好的时候,用 Python 画棵樱花树送给自己吧
        通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
        13 万字 C 语言从入门到精通保姆级教程2021 年版
        10行代码集2000张美女图,Python爬虫120例,再上征途
      Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
      正则表达式工具 cron表达式工具 密码生成工具

      京公网安备 11010502049817号