• 微服务项目:尚融宝(48)(核心业务流程:借款 审核(3))


    需求

    管理平台借款审批,审批通过后产生标的,审批前我们需要跟借款人进行电话沟通,确定借款年化和平台服务费率(平台收益),借款年化可能根据实际情况调高或调低;起息日通常我们把它确定为募集结束时间(或放款时间)

     

    一、后端实现

    1、定义VO对象

    1. @Data
    2. @ApiModel(description = "借款信息审批")
    3. public class BorrowInfoApprovalVO {
    4. @ApiModelProperty(value = "id")
    5. private Long id;
    6. @ApiModelProperty(value = "状态")
    7. private Integer status;
    8. @ApiModelProperty(value = "审批内容")
    9. private String content;
    10. @ApiModelProperty(value = "标题")
    11. private String title;
    12. @ApiModelProperty(value = "年化利率")
    13. private BigDecimal lendYearRate;
    14. @ApiModelProperty(value = "平台服务费率")
    15. private BigDecimal serviceRate;
    16. @ApiModelProperty(value = "开始日期")
    17. private String lendStartDate;
    18. @ApiModelProperty(value = "描述信息")
    19. private String lendInfo;
    20. }

    2、Controller

    AdminBorrowInfoController

    1. @ApiOperation("审批借款信息")
    2. @PostMapping("/approval")
    3. public R approval(@RequestBody BorrowInfoApprovalVO borrowInfoApprovalVO) {
    4. borrowInfoService.approval(borrowInfoApprovalVO);
    5. return R.ok().message("审批完成");
    6. }

    3、Service

    接口:BorrowInfoService

    void approval(BorrowInfoApprovalVO borrowInfoApprovalVO);

    实现:BorrowInfoServiceImpl

    1. @Transactional(rollbackFor = Exception.class)
    2. @Override
    3. public void approval(BorrowInfoApprovalVO borrowInfoApprovalVO) {
    4. //修改借款信息状态
    5. Long borrowInfoId = borrowInfoApprovalVO.getId();
    6. BorrowInfo borrowInfo = baseMapper.selectById(borrowInfoId);
    7. borrowInfo.setStatus(borrowInfoApprovalVO.getStatus());
    8. baseMapper.updateById(borrowInfo);
    9. //审核通过则创建标的
    10. if (borrowInfoApprovalVO.getStatus().intValue() == BorrowInfoStatusEnum.CHECK_OK.getStatus().intValue()) {
    11. //创建标的
    12. //TODO
    13. }
    14. }

    二、前端实现

    1、定义api

     src/api/core/borrow-info.js

    1. approval(borrowInfoApproval) {
    2. return request({
    3. url: '/admin/core/borrowInfo/approval',
    4. method: 'post',
    5. data: borrowInfoApproval
    6. })
    7. }

    2、页面脚本

    src/views/core/borrow-info/list.vue

    data:

    dialogVisible: false, //审批对话框
    borrowInfoApproval: {
      status: 2,
      serviceRate: 5,
      lendYearRate: 0 //初始化,解决表单中数据修改时无法及时渲染的问题
    } //审批对象

    methods: 

    1. approvalShow(row) {
    2. this.dialogVisible = true
    3. this.borrowInfoApproval.id = row.id
    4. this.borrowInfoApproval.lendYearRate = row.borrowYearRate * 100
    5. },
    6. approvalSubmit() {
    7. borrowInfoApi.approval(this.borrowInfoApproval).then(response => {
    8. this.dialogVisible = false
    9. this.$message.success(response.message)
    10. this.fetchData()
    11. })
    12. }

    3、页面模板

    src/views/core/borrow-info/list.vue

    1. "审批" :visible.sync="dialogVisible" width="490px">
    2. "right" label-width="100px">
    3. "是否通过">
    4. "borrowInfoApproval.status">
    5. "2">通过
    6. "-1">不通过
    7. if="borrowInfoApproval.status == 2" label="标的名称">
    8. "borrowInfoApproval.title" />
    9. if="borrowInfoApproval.status == 2" label="起息日">
    10. v-model="borrowInfoApproval.lendStartDate"
    11. type="date"
    12. placeholder="选择开始时间"
    13. value-format="yyyy-MM-dd"
    14. />
    15. if="borrowInfoApproval.status == 2" label="年化收益率">
    16. "borrowInfoApproval.lendYearRate">
    17. if="borrowInfoApproval.status == 2" label="服务费率">
    18. "borrowInfoApproval.serviceRate">
    19. if="borrowInfoApproval.status == 2" label="标的描述">
    20. "borrowInfoApproval.lendInfo" type="textarea" />
    21. "footer" class="dialog-footer">
    22. @click="dialogVisible = false">
    23. 取消
    24. "primary" @click="approvalSubmit">
    25. 确定
  • 相关阅读:
    知识点回顾
    机器学习EM算法
    PHP Ueditor 百度富文本编辑器 CDN 远程服务器配置流程
    线性DP AcWing 898. 数字三角形
    解决 UDP 接收不到数据问题
    golang的channel探索
    全面总结 pip install 与 conda install 的使用区别
    前端一面经典react面试题(边面边更)
    四)Stable Diffussion使用教程:图生图
    单目标应用:基于螳螂搜索算法(Mantis Search Algorithm,MSA)的微电网优化调度MATLAB
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/126932971