/**
* 分页列表查询
*
* @param room
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "教学资源模块-教室使用情况-分页列表查询")
@ApiOperation(value = "教学资源模块-教室使用情况-分页列表查询", notes = "教学资源模块-教室使用情况-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<Room>> queryPageList(Room room,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<Room> queryWrapper = QueryGenerator.initQueryWrapper(room, req.getParameterMap());
Page<Room> page = new Page<Room>(pageNo, pageSize);
IPage<Room> pageList = roomService.page(page, queryWrapper);
List<String> floorIds = pageList.getRecords().stream().map(Room::getFloorId).collect(Collectors.toList());
// 查询楼层信息
Map<String, SysFloor> floorMap = sysFloorService.listByIds(floorIds)
.stream()
.collect(Collectors.toMap(SysFloor::getId, Function.identity()));
// 将楼层信息设置到 Room 实体中
pageList.getRecords().forEach(record -> {
SysFloor sysFloor = floorMap.get(record.getFloorId());
if (sysFloor != null) {
record.setFloorId(sysFloor.getName());
}
});
return Result.OK(pageList);
}
某些场景下避免嵌套查询,优化嵌套查询
于 2023-12-04 10:45:41 首次发布