diff --git a/klp-admin/src/main/java/com/klp/web/controller/system/SysFileCommentController.java b/klp-admin/src/main/java/com/klp/web/controller/system/SysFileCommentController.java new file mode 100644 index 000000000..af5316ac4 --- /dev/null +++ b/klp-admin/src/main/java/com/klp/web/controller/system/SysFileCommentController.java @@ -0,0 +1,50 @@ +package com.klp.web.controller.system; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.enums.BusinessType; +import com.klp.system.domain.vo.SysFileCommentVo; +import com.klp.system.domain.bo.SysFileCommentBo; +import com.klp.system.service.ISysFileCommentService; + +/** + * 文件评论 + * + * @author klp + * @date 2026-07-04 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/file/comment") +public class SysFileCommentController extends BaseController { + + private final ISysFileCommentService iSysFileCommentService; + + /** + * 查询文件评论列表 + */ + @GetMapping("/list/{fileId}") + public R> list(@NotNull(message = "文件ID不能为空") @PathVariable Long fileId) { + return R.ok(iSysFileCommentService.queryListByFileId(fileId)); + } + + /** + * 新增文件评论 + */ + @Log(title = "文件评论", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysFileCommentBo bo) { + return toAjax(iSysFileCommentService.insertByBo(bo)); + } +} diff --git a/klp-system/src/main/java/com/klp/system/domain/SysFileComment.java b/klp-system/src/main/java/com/klp/system/domain/SysFileComment.java new file mode 100644 index 000000000..e24ca2a2a --- /dev/null +++ b/klp-system/src/main/java/com/klp/system/domain/SysFileComment.java @@ -0,0 +1,40 @@ +package com.klp.system.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 文件评论对象 sys_file_comment + * + * @author klp + * @date 2026-07-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_file_comment") +public class SysFileComment extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "comment_id") + private Long commentId; + /** + * 关联文件ID + */ + private Long fileId; + /** + * 评论内容 + */ + private String content; + /** + * 所属部门 + */ + private String dept; + +} diff --git a/klp-system/src/main/java/com/klp/system/domain/bo/SysFileCommentBo.java b/klp-system/src/main/java/com/klp/system/domain/bo/SysFileCommentBo.java new file mode 100644 index 000000000..ee26751cb --- /dev/null +++ b/klp-system/src/main/java/com/klp/system/domain/bo/SysFileCommentBo.java @@ -0,0 +1,42 @@ +package com.klp.system.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + + +/** + * 文件评论业务对象 sys_file_comment + * + * @author klp + * @date 2026-07-04 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class SysFileCommentBo extends BaseEntity { + + /** + * 主键ID + */ + private Long commentId; + + /** + * 关联文件ID + */ + @NotNull(message = "文件ID不能为空") + private Long fileId; + + /** + * 评论内容 + */ + @NotBlank(message = "评论内容不能为空") + private String content; + + /** + * 所属部门 + */ + private String dept; + +} diff --git a/klp-system/src/main/java/com/klp/system/domain/vo/SysFileCommentVo.java b/klp-system/src/main/java/com/klp/system/domain/vo/SysFileCommentVo.java new file mode 100644 index 000000000..aedf32de0 --- /dev/null +++ b/klp-system/src/main/java/com/klp/system/domain/vo/SysFileCommentVo.java @@ -0,0 +1,40 @@ +package com.klp.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; + + +/** + * 文件评论视图对象 sys_file_comment + * + * @author klp + * @date 2026-07-04 + */ +@Data +@ExcelIgnoreUnannotated +public class SysFileCommentVo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + private Long commentId; + + /** + * 关联文件ID + */ + private Long fileId; + + /** + * 评论内容 + */ + private String content; + + /** + * 所属部门 + */ + private String dept; + +} diff --git a/klp-system/src/main/java/com/klp/system/mapper/SysFileCommentMapper.java b/klp-system/src/main/java/com/klp/system/mapper/SysFileCommentMapper.java new file mode 100644 index 000000000..81e1e5552 --- /dev/null +++ b/klp-system/src/main/java/com/klp/system/mapper/SysFileCommentMapper.java @@ -0,0 +1,15 @@ +package com.klp.system.mapper; + +import com.klp.system.domain.SysFileComment; +import com.klp.system.domain.vo.SysFileCommentVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 文件评论Mapper接口 + * + * @author klp + * @date 2026-07-04 + */ +public interface SysFileCommentMapper extends BaseMapperPlus { + +} diff --git a/klp-system/src/main/java/com/klp/system/service/ISysFileCommentService.java b/klp-system/src/main/java/com/klp/system/service/ISysFileCommentService.java new file mode 100644 index 000000000..5a14b997d --- /dev/null +++ b/klp-system/src/main/java/com/klp/system/service/ISysFileCommentService.java @@ -0,0 +1,25 @@ +package com.klp.system.service; + +import com.klp.system.domain.vo.SysFileCommentVo; +import com.klp.system.domain.bo.SysFileCommentBo; + +import java.util.List; + +/** + * 文件评论Service接口 + * + * @author klp + * @date 2026-07-04 + */ +public interface ISysFileCommentService { + + /** + * 查询文件评论列表 + */ + List queryListByFileId(Long fileId); + + /** + * 新增文件评论 + */ + Boolean insertByBo(SysFileCommentBo bo); +} diff --git a/klp-system/src/main/java/com/klp/system/service/impl/SysFileCommentServiceImpl.java b/klp-system/src/main/java/com/klp/system/service/impl/SysFileCommentServiceImpl.java new file mode 100644 index 000000000..0eece3c44 --- /dev/null +++ b/klp-system/src/main/java/com/klp/system/service/impl/SysFileCommentServiceImpl.java @@ -0,0 +1,50 @@ +package com.klp.system.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.helper.LoginHelper; +import com.klp.system.domain.bo.SysFileCommentBo; +import com.klp.system.domain.vo.SysFileCommentVo; +import com.klp.system.domain.SysFileComment; +import com.klp.system.mapper.SysFileCommentMapper; +import com.klp.system.service.ISysFileCommentService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 文件评论Service业务层处理 + * + * @author klp + * @date 2026-07-04 + */ +@RequiredArgsConstructor +@Service +public class SysFileCommentServiceImpl implements ISysFileCommentService { + + private final SysFileCommentMapper baseMapper; + + /** + * 查询文件评论列表(按时间升序) + */ + @Override + public List queryListByFileId(Long fileId) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(SysFileComment::getFileId, fileId); + lqw.orderByAsc(SysFileComment::getCreateTime); + return baseMapper.selectVoList(lqw); + } + + /** + * 新增文件评论 + */ + @Override + public Boolean insertByBo(SysFileCommentBo bo) { + SysFileComment add = BeanUtil.toBean(bo, SysFileComment.class); + // 自动填充部门和评论人 + add.setDept(LoginHelper.getLoginUser().getDeptName()); + return baseMapper.insert(add) > 0; + } +} diff --git a/klp-system/src/main/resources/mapper/system/SysFileCommentMapper.xml b/klp-system/src/main/resources/mapper/system/SysFileCommentMapper.xml new file mode 100644 index 000000000..bdd9284ba --- /dev/null +++ b/klp-system/src/main/resources/mapper/system/SysFileCommentMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/klp-ui/src/api/system/fileComment.js b/klp-ui/src/api/system/fileComment.js new file mode 100644 index 000000000..bc33663be --- /dev/null +++ b/klp-ui/src/api/system/fileComment.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询文件评论列表 +export function listFileComment(fileId) { + return request({ + url: '/system/file/comment/list/' + fileId, + method: 'get' + }) +} + +// 新增文件评论 +export function addFileComment(data) { + return request({ + url: '/system/file/comment', + method: 'post', + data: data + }) +} diff --git a/klp-ui/src/views/system/file/all.vue b/klp-ui/src/views/system/file/all.vue index 6e66e7ed7..ffa39af76 100644 --- a/klp-ui/src/views/system/file/all.vue +++ b/klp-ui/src/views/system/file/all.vue @@ -192,6 +192,36 @@ {{ selectedFile.createBy }} {{ parseTime(selectedFile.createTime) }} +
+
+ 评论 ({{ comments.length }}) + {{ commentExpanded ? '收起' : '展开' }} +
+
+
加载中...
+
暂无评论
+
+
+
+ {{ item.dept }} + {{ item.createBy }} + {{ parseTime(item.createTime) }} +
+
{{ item.content }}
+
+
+
+ + 发送 +
+
+
@@ -298,6 +328,7 @@