• 微服务项目:尚融宝(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. }

  • 相关阅读:
    诗人贺伟陪你看世界杯
    LeetCode 290. 单词规律
    Netty的再次认知 | 多图理解Netty的线程模型
    LED主流光源-高均匀条形光源
    JavaScript
    multiset 用法简说
    【小沐学C++】git和github常见问题汇总
    Springboot 服务 禁止设置启动server端口使用
    操作系统内存换出---15
    vue中三种for循环与高阶函数(filter、map、reduce)的使用
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/126883004