查询的数据返回中有相同的字段(ID, ID)组装到Dto

    @Override
    public List<SysMenuDto> findSysMenuByRoleId(SysRoleMenuReq sysRoleMenuReq) {
        SysRoleMenu tSysRoleMenu = SysRoleMenu.T_SYS_ROLE_MENU;
        Condition condition = tSysRoleMenu.ROLE_ID.eq(sysRoleMenuReq.getRoleId())
                .and(table.PARENT_ID.eq(sysRoleMenuReq.getParentId()))
                .and(table.APP_CODE.eq(sysRoleMenuReq.getTargetAppCode()));
        // List<SysMenuDto> sysMenuDtoList = dsl.select(table.ID, tSysRoleMenu.ID, table.APP_CODE, table.MENU_NAME, table.PARENT_ID, tSysRoleMenu.STATUS, table.MENU_SORT, table.URL, table.TARGET, table.MENU_TYPE, table.VISIBLE, table.IS_REFRESH, table.ICON, table.REMARK, tSysRoleMenu.CREATED_AT, tSysRoleMenu.CREATED_BY, tSysRoleMenu.MODIFIED_AT, tSysRoleMenu.MODIFIED_BY)
        //         .from(table)
        //         .join(tSysRoleMenu)
        //         .on(tSysRoleMenu.MENU_ID.eq(table.ID))
        //         .where(condition)
        //         .orderBy(table.MENU_SORT)
        //         .fetchInto(SysMenuDto.class);
        Record[] records = dsl.select()
                .from(table)
                .join(tSysRoleMenu)
                .on(tSysRoleMenu.MENU_ID.eq(table.ID))
                .where(condition)
                .orderBy(table.MENU_SORT)
                .fetchArray();

        /*组装*/
        return Arrays.asList(records).stream().map(record -> {
            // 将查出的一条数据与SysMenuEntity匹配的赋值
            SysMenuEntity entity = record.into(SysMenuEntity.class);
            // 取出table.id 为 menuId
            Long menuId = record.get(table.ID);
            // 取出 tSysRoleMenu.ID 为 roleMenuId
            Long roleMenuId = record.get(tSysRoleMenu.ID);
            // 根据entity 赋值数据给 SysMenuDto
            SysMenuDto sysMenuDto = BeanUtils.toBean(entity, SysMenuDto.class, CopyOptions.create().ignoreError());
            // 将menuId赋值
            sysMenuDto.setMenuId(menuId);
            // 将roleMenuId赋值
            sysMenuDto.setRoleMenuId(roleMenuId);
            return sysMenuDto;
        }).toList();

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值