From 5029d09f09f2e0ae193af84a4455ebcb0e36c94e Mon Sep 17 00:00:00 2001 From: jhd <1684074631@qq.com> Date: Sat, 4 Jul 2026 09:40:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(file):=20=E6=B7=BB=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=B5=8F=E8=A7=88=E6=AC=A1=E6=95=B0=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在文件列表表格中新增浏览次数列显示 - 在文件详情描述中添加浏览次数信息展示 - 实现文件浏览次数自增接口 incrementView - 前端点击文件预览时自动调用浏览次数增加功能 - 后端添加 SysFile 实体类 viewCount 字段 - 实现数据库表字段映射和更新逻辑 - 添加控制器接口 /incrementView/{fileId} 处理请求 --- .../klp/web/controller/system/SysFileController.java | 9 +++++++++ .../src/main/java/com/klp/system/domain/SysFile.java | 4 ++++ .../main/java/com/klp/system/domain/bo/SysFileBo.java | 4 ++++ .../main/java/com/klp/system/domain/vo/SysFileVo.java | 5 +++++ .../java/com/klp/system/service/ISysFileService.java | 5 +++++ .../klp/system/service/impl/SysFileServiceImpl.java | 11 +++++++++++ .../main/resources/mapper/system/SysFileMapper.xml | 1 + klp-ui/src/api/system/file.js | 8 ++++++++ klp-ui/src/views/system/file/all.vue | 9 ++++++++- 9 files changed, 55 insertions(+), 1 deletion(-) diff --git a/klp-admin/src/main/java/com/klp/web/controller/system/SysFileController.java b/klp-admin/src/main/java/com/klp/web/controller/system/SysFileController.java index d2c287236..275b0e2b9 100644 --- a/klp-admin/src/main/java/com/klp/web/controller/system/SysFileController.java +++ b/klp-admin/src/main/java/com/klp/web/controller/system/SysFileController.java @@ -98,6 +98,15 @@ public class SysFileController extends BaseController { return toAjax(iSysFileService.deleteWithValidByIds(Arrays.asList(fileIds), true)); } + /** + * 文件浏览次数 +1 + */ + @PutMapping("/incrementView/{fileId}") + public R incrementView(@NotNull(message = "主键不能为空") @PathVariable Long fileId) { + iSysFileService.incrementViewCount(fileId); + return R.ok(); + } + /** * 查询与我相关的文件(私有文件且当前用户在可见用户列表中) */ diff --git a/klp-system/src/main/java/com/klp/system/domain/SysFile.java b/klp-system/src/main/java/com/klp/system/domain/SysFile.java index 708877aec..3401000f1 100644 --- a/klp-system/src/main/java/com/klp/system/domain/SysFile.java +++ b/klp-system/src/main/java/com/klp/system/domain/SysFile.java @@ -60,6 +60,10 @@ public class SysFile extends BaseEntity { * 备注 */ private String remark; + /** + * 浏览次数 + */ + private Long viewCount; /** * 删除标识 0正常 2删除 */ diff --git a/klp-system/src/main/java/com/klp/system/domain/bo/SysFileBo.java b/klp-system/src/main/java/com/klp/system/domain/bo/SysFileBo.java index 4d84f2d1e..05ebcfb45 100644 --- a/klp-system/src/main/java/com/klp/system/domain/bo/SysFileBo.java +++ b/klp-system/src/main/java/com/klp/system/domain/bo/SysFileBo.java @@ -67,5 +67,9 @@ public class SysFileBo extends BaseEntity { */ private String remark; + /** + * 浏览次数 + */ + private Long viewCount; } 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 a9075d43c..66c91baf2 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 @@ -80,5 +80,10 @@ public class SysFileVo extends BaseEntity { @ExcelProperty(value = "备注") private String remark; + /** + * 浏览次数 + */ + @ExcelProperty(value = "浏览次数") + private Long viewCount; } diff --git a/klp-system/src/main/java/com/klp/system/service/ISysFileService.java b/klp-system/src/main/java/com/klp/system/service/ISysFileService.java index 1cd0a32da..134f86493 100644 --- a/klp-system/src/main/java/com/klp/system/service/ISysFileService.java +++ b/klp-system/src/main/java/com/klp/system/service/ISysFileService.java @@ -51,4 +51,9 @@ public interface ISysFileService { * 查询与我相关的文件(私有文件且当前用户在可见用户列表中) */ TableDataInfo queryPageListRelatedToMe(SysFileBo bo, PageQuery pageQuery); + + /** + * 文件浏览次数 +1 + */ + void incrementViewCount(Long fileId); } 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 b06095d64..09b1c2ccf 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 @@ -5,6 +5,7 @@ import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.helper.LoginHelper; import com.klp.common.utils.StringUtils; @@ -124,6 +125,16 @@ public class SysFileServiceImpl implements ISysFileService { return TableDataInfo.build(result); } + /** + * 文件浏览次数 +1 + */ + @Override + public void incrementViewCount(Long fileId) { + baseMapper.update(null, Wrappers.lambdaUpdate() + .setSql("view_count = view_count + 1") + .eq(SysFile::getFileId, fileId)); + } + /** * 保存前的数据校验 */ diff --git a/klp-system/src/main/resources/mapper/system/SysFileMapper.xml b/klp-system/src/main/resources/mapper/system/SysFileMapper.xml index 809b1c040..c987af387 100644 --- a/klp-system/src/main/resources/mapper/system/SysFileMapper.xml +++ b/klp-system/src/main/resources/mapper/system/SysFileMapper.xml @@ -15,6 +15,7 @@ + diff --git a/klp-ui/src/api/system/file.js b/klp-ui/src/api/system/file.js index c184ddda3..f46086350 100644 --- a/klp-ui/src/api/system/file.js +++ b/klp-ui/src/api/system/file.js @@ -52,6 +52,14 @@ export function exportFile(query) { }) } +// 文件浏览次数 +1 +export function incrementView(fileId) { + return request({ + url: '/system/file/incrementView/' + fileId, + method: 'put' + }) +} + // 查询与我相关的文件 export function listRelatedToMe(query) { return request({ diff --git a/klp-ui/src/views/system/file/all.vue b/klp-ui/src/views/system/file/all.vue index bc7233ad5..6e66e7ed7 100644 --- a/klp-ui/src/views/system/file/all.vue +++ b/klp-ui/src/views/system/file/all.vue @@ -152,6 +152,11 @@ {{ parseTime(scope.row.createTime) }} + + + {{ formatFileSize(infoFile.fileSize) }} {{ infoFile.suffix || '-' }} + {{ infoFile.viewCount != null ? infoFile.viewCount : 0 }} 次 {{ infoFile.orderNo || '-' }} {{ infoFile.dept || '-' }} @@ -291,7 +297,7 @@