From abfd5e2ee6f71ddc20702263e2349e0b266fcde7 Mon Sep 17 00:00:00 2001 From: jhd <1684074631@qq.com> Date: Tue, 7 Jul 2026 13:22:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(file):=20=E4=BC=98=E5=8C=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=98=B5=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将文件列表中的上传人字段从用户名改为用户昵称显示 - 在文件详情页面同时支持显示昵称或用户名作为上传人信息 - 扩展表格列宽度并添加溢出提示功能提升用户体验 - 实现批量查询用户昵称的功能提高数据加载性能 - 新增 createByName 字段用于存储用户昵称信息 - 优化文件服务层代码结构添加用户映射器依赖 --- .../com/klp/system/domain/vo/SysFileVo.java | 6 +++ .../service/impl/SysFileServiceImpl.java | 39 ++++++++++++++++++- klp-ui/src/views/system/file/all.vue | 4 +- klp-ui/src/views/system/file/index.vue | 4 +- 4 files changed, 48 insertions(+), 5 deletions(-) diff --git a/klp-system/src/main/java/com/klp/system/domain/vo/SysFileVo.java b/klp-system/src/main/java/com/klp/system/domain/vo/SysFileVo.java index 66c91baf2..ff1dbc629 100644 --- a/klp-system/src/main/java/com/klp/system/domain/vo/SysFileVo.java +++ b/klp-system/src/main/java/com/klp/system/domain/vo/SysFileVo.java @@ -86,4 +86,10 @@ public class SysFileVo extends BaseEntity { @ExcelProperty(value = "浏览次数") private Long viewCount; + /** + * 创建者昵称 + */ + @ExcelProperty(value = "创建者昵称") + private String createByName; + } diff --git a/klp-system/src/main/java/com/klp/system/service/impl/SysFileServiceImpl.java b/klp-system/src/main/java/com/klp/system/service/impl/SysFileServiceImpl.java index 09b1c2ccf..306c1bde6 100644 --- a/klp-system/src/main/java/com/klp/system/service/impl/SysFileServiceImpl.java +++ b/klp-system/src/main/java/com/klp/system/service/impl/SysFileServiceImpl.java @@ -17,12 +17,15 @@ import com.klp.system.domain.SysFile; import com.klp.system.domain.SysFileVisibleUser; import com.klp.system.mapper.SysFileMapper; import com.klp.system.mapper.SysFileVisibleUserMapper; +import com.klp.system.mapper.SysUserMapper; import com.klp.system.service.ISysFileService; +import com.klp.common.core.domain.entity.SysUser; import java.util.List; import java.util.Map; import java.util.Collection; import java.util.stream.Collectors; +import java.util.Optional; /** * 文件主信息Service业务层处理 @@ -36,6 +39,7 @@ public class SysFileServiceImpl implements ISysFileService { private final SysFileMapper baseMapper; private final SysFileVisibleUserMapper visibleUserMapper; + private final SysUserMapper userMapper; /** * 查询文件主信息 @@ -52,6 +56,7 @@ public class SysFileServiceImpl implements ISysFileService { public TableDataInfo queryPageList(SysFileBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + fillCreateByName(result.getRecords()); return TableDataInfo.build(result); } @@ -61,7 +66,9 @@ public class SysFileServiceImpl implements ISysFileService { @Override public List queryList(SysFileBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + fillCreateByName(list); + return list; } private LambdaQueryWrapper buildQueryWrapper(SysFileBo bo) { @@ -122,6 +129,7 @@ public class SysFileServiceImpl implements ISysFileService { LambdaQueryWrapper lqw = buildQueryWrapper(bo); lqw.in(SysFile::getFileId, fileIds); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + fillCreateByName(result.getRecords()); return TableDataInfo.build(result); } @@ -135,6 +143,35 @@ public class SysFileServiceImpl implements ISysFileService { .eq(SysFile::getFileId, fileId)); } + /** + * 根据 createBy(登录名)批量填充 createByName(用户昵称) + */ + private void fillCreateByName(List list) { + if (list == null || list.isEmpty()) { + return; + } + // 收集所有不重复的 createBy + List userNames = list.stream() + .map(SysFileVo::getCreateBy) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList()); + if (userNames.isEmpty()) { + return; + } + // 批量查询用户 + List users = userMapper.selectUserList( + Wrappers.lambdaQuery().in(SysUser::getUserName, userNames)); + Map nickNameMap = users.stream() + .collect(Collectors.toMap(SysUser::getUserName, SysUser::getNickName, (a, b) -> a)); + // 赋值 + for (SysFileVo vo : list) { + if (StringUtils.isNotBlank(vo.getCreateBy())) { + vo.setCreateByName(nickNameMap.get(vo.getCreateBy())); + } + } + } + /** * 保存前的数据校验 */ diff --git a/klp-ui/src/views/system/file/all.vue b/klp-ui/src/views/system/file/all.vue index dac9f1592..09e3762e0 100644 --- a/klp-ui/src/views/system/file/all.vue +++ b/klp-ui/src/views/system/file/all.vue @@ -119,7 +119,7 @@ {{ scope.row.fileName }} - + @@ -253,7 +253,7 @@ {{ infoFile.scopeType === 1 ? '公开' : '私有' }} - {{ infoFile.createBy }} + {{ infoFile.createByName || infoFile.createBy }} {{ parseTime(infoFile.createTime) }} {{ infoFile.remark || '-' }} diff --git a/klp-ui/src/views/system/file/index.vue b/klp-ui/src/views/system/file/index.vue index 30bcebfcd..45469eef7 100644 --- a/klp-ui/src/views/system/file/index.vue +++ b/klp-ui/src/views/system/file/index.vue @@ -95,7 +95,7 @@ {{ scope.row.fileName }} - + @@ -229,7 +229,7 @@ {{ infoFile.scopeType === 1 ? '公开' : '私有' }} - {{ infoFile.createBy }} + {{ infoFile.createByName || infoFile.createBy }} {{ parseTime(infoFile.createTime) }} {{ infoFile.remark || '-' }}