• 微服务项目:尚融宝(41)(核心业务流程:借款额度审批)


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

    借款信息列表

    需求

    一、后端实现

    1、扩展实体对象

    列表的结果需要关联查询,数据字典的数据也需要展示对应的文本内容而不是值,除了定义VO的方式,我们也可以使用扩展实体类的方式 

    在BorrowInfo类中扩展以下字段

    //扩展字段
    @ApiModelProperty(value = "姓名")
    @TableField(exist = false)
    private String name;

    @ApiModelProperty(value = "手机")
    @TableField(exist = false)
    private String mobile;

    @ApiModelProperty(value = "其他参数")
    @TableField(exist = false)
    private Map param = new HashMap<>();

    2、Controller

    添加 AdminBorrowInfoController

    1. @Api(tags = "借款管理")
    2. @RestController
    3. @RequestMapping("/admin/core/borrowInfo")
    4. @Slf4j
    5. public class AdminBorrowInfoController {
    6. @Resource
    7. private BorrowInfoService borrowInfoService;
    8. @ApiOperation("借款信息列表")
    9. @GetMapping("/list")
    10. public R list() {
    11. List borrowInfoList = borrowInfoService.selectList();
    12. return R.ok().data("list", borrowInfoList);
    13. }
    14. }

    3、Service

    接口:BorrowInfoService

    List selectList();

    实现:BorrowInfoServiceImpl 

    1. @Resource
    2. private DictService dictService;
    3. @Override
    4. public List selectList() {
    5. List borrowInfoList = baseMapper.selectBorrowInfoList();
    6. borrowInfoList.forEach(borrowInfo -> {
    7. String returnMethod = dictService.getNameByParentDictCodeAndValue("returnMethod", borrowInfo.getReturnMethod());
    8. String moneyUse = dictService.getNameByParentDictCodeAndValue("moneyUse", borrowInfo.getMoneyUse());
    9. String status = BorrowInfoStatusEnum.getMsgByStatus(borrowInfo.getStatus());
    10. borrowInfo.getParam().put("returnMethod", returnMethod);
    11. borrowInfo.getParam().put("moneyUse", moneyUse);
    12. borrowInfo.getParam().put("status", status);
    13. });
    14. return borrowInfoList;
    15. }

    4、Mapper

    接口:BorrowInfoMapper

    1. <select id="selectBorrowInfoList" resultType="com.atguigu.srb.core.pojo.entity.BorrowInfo">
    2. SELECT
    3. bi.*,
    4. b.name,
    5. b.mobile
    6. FROM
    7. borrow_info AS bi
    8. LEFT JOIN borrower AS b ON bi.user_id = b.user_id
    9. WHERE bi.is_deleted = 0
    10. </select>

     BorrowInfoStatusEnum.getMsgByStatus

    1. @Override
    2. public String getNameByparantDictAndValue(String dictCode,Integer value) {
    3. QueryWrapper wrapper = new QueryWrapper<>();
    4. wrapper.eq("dict_code",dictCode);
    5. Dict dict = baseMapper.selectOne(wrapper);
    6. if(dict==null){
    7. return "";
    8. }
    9. wrapper=new QueryWrapper<>();
    10. wrapper.eq("parent_id",dict.getId())
    11. .eq("value",value);
    12. Dict dict1 = baseMapper.selectOne(wrapper);
    13. if (dict1==null){
    14. return "";
    15. }
    16. return dict1.getName();
    17. }

  • 相关阅读:
    知乎 日报
    JuiceFS 在多云存储架构中的应用 | 深势科技分享
    太顶了,腾讯 T4 梳理的 Java 核心宝典(框架 + 原理 + 笔记)
    技术栈选型的时候,ruby、go、java、vue、react应该怎么选择?
    Java中三种方法重复使用同一输入流
    【Django】让SQLite数据库中表名支持重命名的方法
    蜜雪冰城涨价怒赞无数 雪王张红超卷出一条阳道
    2万6千字,带您领略Linux命令的强大
    动静态库(生成和使用)
    华为设备WLAN基本业务配置命令
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/126883004