1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| @Override public ResponseResult<PageVo> getFileList(Integer pageNum, Integer pageSize, FileListDto fileListDto) { LambdaQueryWrapper<SysFile> queryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.hasText(fileListDto.getKeywords())) { queryWrapper.and(wrapper -> wrapper .like(SysFile::getName, fileListDto.getKeywords()) .or() .like(SysFile::getFileSource, fileListDto.getKeywords()) ); }
queryWrapper.orderByDesc(SysFile::getCreateTime);
Page<SysFile> page = new Page<>(pageNum, pageSize); sysFileService.page(page, queryWrapper);
List<SysFile> fileRecords = page.getRecords(); List<FileListVo> fileListVos = BeanCopyUtils.copyBeanList(fileRecords, FileListVo.class); fillCreatorName(fileRecords, fileListVos); PageVo pageVo = new PageVo(fileListVos, page.getTotal());
return ResponseResult.okResult(pageVo); }
private void fillCreatorName(List<SysFile> fileRecords, List<FileListVo> fileListVos) { if (fileRecords == null || fileRecords.isEmpty() || fileListVos == null || fileListVos.isEmpty()) { return; }
Set<Long> creatorIds = fileRecords.stream() .map(SysFile::getCreateBy) .filter(Objects::nonNull) .collect(Collectors.toSet()); if (creatorIds.isEmpty()) { return; }
Map<Long, String> creatorNameMap = sysUserService.list( Wrappers.<SysUser>lambdaQuery() .select(SysUser::getId, SysUser::getNickname, SysUser::getUsername) .in(SysUser::getId, creatorIds) ).stream() .collect(Collectors.toMap( SysUser::getId, user -> StringUtils.hasText(user.getNickname()) ? user.getNickname() : user.getUsername(), (oldName, newName) -> oldName ));
for (int i = 0; i < fileRecords.size(); i++) { Long creatorId = fileRecords.get(i).getCreateBy(); fileListVos.get(i).setCreatorName(creatorNameMap.get(creatorId)); } }
|