@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();
}
查询的数据返回中有相同的字段(ID, ID)组装到Dto
最新推荐文章于 2024-08-16 18:39:05 发布