From 7f9811a57832241f3d6a9a2f5a3a5db0f2eeafa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=AD=9F?= <3111696955@qq.com> Date: Thu, 31 Jul 2025 17:13:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(service):=20=E5=A2=9E=E5=8A=A0=20Markdown?= =?UTF-8?q?=20=E6=96=87=E4=BB=B6=E5=88=86=E7=BB=84=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 MarkdownFileVO 类中添加 groupingName 字段 - 修改 getFilesByGroupingId 和 getRecentFiles 方法返回 MarkdownFileVO 列表- 在前端 HomePage 组件中显示分组名称 - 优化后端 SQL 查询,减少不必要的查询次数 --- .../controller/MarkdownController.java | 9 ++++---- .../bijihoudaun/entity/MarkdownFileVO.java | 10 +++++++++ .../mapper/MarkdownFileMapper.java | 21 +++++++++++++++++-- .../service/MarkdownFileService.java | 5 +++-- .../service/impl/MarkdownFileServiceImpl.java | 16 +++++--------- biji-qianduan/src/components/HomePage.vue | 2 +- 6 files changed, 43 insertions(+), 20 deletions(-) create mode 100644 biji-houdaun/src/main/java/com/test/bijihoudaun/entity/MarkdownFileVO.java diff --git a/biji-houdaun/src/main/java/com/test/bijihoudaun/controller/MarkdownController.java b/biji-houdaun/src/main/java/com/test/bijihoudaun/controller/MarkdownController.java index 1fbe113..fc73057 100644 --- a/biji-houdaun/src/main/java/com/test/bijihoudaun/controller/MarkdownController.java +++ b/biji-houdaun/src/main/java/com/test/bijihoudaun/controller/MarkdownController.java @@ -2,6 +2,7 @@ package com.test.bijihoudaun.controller; import com.test.bijihoudaun.common.response.R; import com.test.bijihoudaun.entity.MarkdownFile; +import com.test.bijihoudaun.entity.MarkdownFileVO; import com.test.bijihoudaun.service.MarkdownFileService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -71,8 +72,8 @@ public class MarkdownController { @Operation(summary = "根据分组ID获取Markdown文件") @GetMapping("/grouping/{groupingId}") - public R> getFilesByGroupingId(@PathVariable String groupingId) { - List files = markdownFileService.getFilesByGroupingId(groupingId); + public R> getFilesByGroupingId(@PathVariable String groupingId) { + List files = markdownFileService.getFilesByGroupingId(groupingId); return R.success(files); } @@ -97,8 +98,8 @@ public class MarkdownController { @Operation(summary = "获取最近更新的笔记") @GetMapping("/recent") - public R> getRecentFiles() { - List files = markdownFileService.getRecentFiles(12); + public R> getRecentFiles() { + List files = markdownFileService.getRecentFiles(12); return R.success(files); } } diff --git a/biji-houdaun/src/main/java/com/test/bijihoudaun/entity/MarkdownFileVO.java b/biji-houdaun/src/main/java/com/test/bijihoudaun/entity/MarkdownFileVO.java new file mode 100644 index 0000000..2366a35 --- /dev/null +++ b/biji-houdaun/src/main/java/com/test/bijihoudaun/entity/MarkdownFileVO.java @@ -0,0 +1,10 @@ +package com.test.bijihoudaun.entity; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +public class MarkdownFileVO extends MarkdownFile { + private String groupingName; +} \ No newline at end of file diff --git a/biji-houdaun/src/main/java/com/test/bijihoudaun/mapper/MarkdownFileMapper.java b/biji-houdaun/src/main/java/com/test/bijihoudaun/mapper/MarkdownFileMapper.java index d9c1901..d7f8483 100644 --- a/biji-houdaun/src/main/java/com/test/bijihoudaun/mapper/MarkdownFileMapper.java +++ b/biji-houdaun/src/main/java/com/test/bijihoudaun/mapper/MarkdownFileMapper.java @@ -2,10 +2,27 @@ package com.test.bijihoudaun.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.test.bijihoudaun.entity.MarkdownFile; +import com.test.bijihoudaun.entity.MarkdownFileVO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; @Mapper public interface MarkdownFileMapper extends BaseMapper { - // 自定义方法:根据用户ID获取文件列表 - // List findByUserId(Integer userId); + + @Select("SELECT mf.*, g.grouping as groupingName " + + "FROM markdown_file mf " + + "LEFT JOIN grouping g ON mf.grouping_id = g.id " + + "ORDER BY mf.updated_at DESC " + + "LIMIT #{limit}") + List selectRecentWithGrouping(@Param("limit") int limit); + + @Select("SELECT mf.*, g.grouping as groupingName " + + "FROM markdown_file mf " + + "LEFT JOIN grouping g ON mf.grouping_id = g.id " + + "WHERE mf.grouping_id = #{groupingId} " + + "ORDER BY mf.updated_at DESC") + List selectByGroupingIdWithGrouping(@Param("groupingId") String groupingId); } diff --git a/biji-houdaun/src/main/java/com/test/bijihoudaun/service/MarkdownFileService.java b/biji-houdaun/src/main/java/com/test/bijihoudaun/service/MarkdownFileService.java index 0f5318b..66a8ef0 100644 --- a/biji-houdaun/src/main/java/com/test/bijihoudaun/service/MarkdownFileService.java +++ b/biji-houdaun/src/main/java/com/test/bijihoudaun/service/MarkdownFileService.java @@ -2,6 +2,7 @@ package com.test.bijihoudaun.service; import com.baomidou.mybatisplus.extension.service.IService; import com.test.bijihoudaun.entity.MarkdownFile; +import com.test.bijihoudaun.entity.MarkdownFileVO; import java.util.List; @@ -26,7 +27,7 @@ public interface MarkdownFileService extends IService { * @param groupingId 分组ID * @return 文件列表 */ - List getFilesByGroupingId(String groupingId); + List getFilesByGroupingId(String groupingId); /** * 删除Markdown文件 @@ -63,5 +64,5 @@ public interface MarkdownFileService extends IService { * @param limit 数量 * @return 文件列表 */ - List getRecentFiles(int limit); + List getRecentFiles(int limit); } diff --git a/biji-houdaun/src/main/java/com/test/bijihoudaun/service/impl/MarkdownFileServiceImpl.java b/biji-houdaun/src/main/java/com/test/bijihoudaun/service/impl/MarkdownFileServiceImpl.java index f87df05..54d2b4c 100644 --- a/biji-houdaun/src/main/java/com/test/bijihoudaun/service/impl/MarkdownFileServiceImpl.java +++ b/biji-houdaun/src/main/java/com/test/bijihoudaun/service/impl/MarkdownFileServiceImpl.java @@ -1,9 +1,9 @@ package com.test.bijihoudaun.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.test.bijihoudaun.entity.MarkdownFile; +import com.test.bijihoudaun.entity.MarkdownFileVO; import com.test.bijihoudaun.mapper.MarkdownFileMapper; import com.test.bijihoudaun.service.MarkdownFileService; import com.test.bijihoudaun.util.SnowflakeIdGenerator; @@ -46,11 +46,8 @@ public class MarkdownFileServiceImpl @Override - public List getFilesByGroupingId(String groupingId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("grouping_id", groupingId) - .orderByDesc("updated_at"); - return this.list(queryWrapper); + public List getFilesByGroupingId(String groupingId) { + return markdownFileMapper.selectByGroupingIdWithGrouping(groupingId); } @Override @@ -88,10 +85,7 @@ public class MarkdownFileServiceImpl } @Override - public List getRecentFiles(int limit) { - Page page = new Page<>(1, limit); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.orderByDesc("updated_at"); - return this.page(page, queryWrapper).getRecords(); + public List getRecentFiles(int limit) { + return markdownFileMapper.selectRecentWithGrouping(limit); } } diff --git a/biji-qianduan/src/components/HomePage.vue b/biji-qianduan/src/components/HomePage.vue index 95bad66..9e1b81d 100644 --- a/biji-qianduan/src/components/HomePage.vue +++ b/biji-qianduan/src/components/HomePage.vue @@ -96,7 +96,7 @@
{{ file.title }} - {{ currentGroupName }} + {{ file.groupingName }}