diff --git a/biji-houdaun/pom.xml b/biji-houdaun/pom.xml index a571b4a..58f0857 100644 --- a/biji-houdaun/pom.xml +++ b/biji-houdaun/pom.xml @@ -29,7 +29,7 @@ 17 4.5.0 - 3.5.12 + 3.5.7 diff --git a/biji-houdaun/src/main/java/com/test/bijihoudaun/config/MybatisPlusConfig.java b/biji-houdaun/src/main/java/com/test/bijihoudaun/config/MybatisPlusConfig.java new file mode 100644 index 0000000..3e50436 --- /dev/null +++ b/biji-houdaun/src/main/java/com/test/bijihoudaun/config/MybatisPlusConfig.java @@ -0,0 +1,21 @@ +package com.test.bijihoudaun.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MybatisPlusConfig { + + /** + * 添加分页插件 + */ + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.SQLITE)); + return interceptor; + } +} \ No newline at end of file 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 e280d8b..9f03a86 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 @@ -94,4 +94,11 @@ public class MarkdownController { } return R.fail("文件未找到或更新失败"); } + + @Operation(summary = "获取最近更新的笔记") + @GetMapping("/recent") + public R> getRecentFiles() { + List files = markdownFileService.getRecentFiles(10); + return R.success(files); + } } 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 3aa0a73..0f5318b 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 @@ -57,4 +57,11 @@ public interface MarkdownFileService extends IService { * @return 更新后的文件对象 */ MarkdownFile updateMarkdownTitle(Long id, String title); + + /** + * 获取最近更新的笔记 + * @param limit 数量 + * @return 文件列表 + */ + 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 4fe9ab9..f87df05 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,7 +1,7 @@ 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.mapper.MarkdownFileMapper; @@ -86,4 +86,12 @@ public class MarkdownFileServiceImpl } return file; } + + @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(); + } } diff --git a/biji-qianduan/src/api/CommonApi.js b/biji-qianduan/src/api/CommonApi.js index ef7d1c5..4f44429 100644 --- a/biji-qianduan/src/api/CommonApi.js +++ b/biji-qianduan/src/api/CommonApi.js @@ -89,6 +89,9 @@ export const updateMarkdownTitle = (id, newTitle) => { }); } +// 获取最近更新的笔记 +export const getRecentFiles = () => axiosApi.get('/api/markdown/recent'); + diff --git a/biji-qianduan/src/components/HomePage.vue b/biji-qianduan/src/components/HomePage.vue index d4774b5..95bad66 100644 --- a/biji-qianduan/src/components/HomePage.vue +++ b/biji-qianduan/src/components/HomePage.vue @@ -209,7 +209,8 @@ import { searchMarkdown, updateGroupingName, updateMarkdownTitle, - deleteGrouping as apiDeleteGrouping + deleteGrouping as apiDeleteGrouping, + getRecentFiles } from '@/api/CommonApi.js' import { Plus, Fold, Expand, Folder, Document, Search, Edit, Delete } from "@element-plus/icons-vue"; import { useUserStore } from '../stores/user'; @@ -221,7 +222,7 @@ const searchKeyword = ref(''); const markdownFiles = ref([]); const categoryTree = ref([]); -const groupMarkdownFiles = ref({}); +const groupMarkdownFiles = ref([]); const showEditor = ref(false); const selectedFile = ref(null); const activeMenu = ref('all'); @@ -695,6 +696,7 @@ onMounted(() => { const chushihua = async () => { await fetchMarkdownFiles(); await fetchGroupings(); + await fetchRecentFiles(); } const goToLogin = () => { @@ -796,9 +798,20 @@ const handleDeleteGroup = async (group) => { } }; +const fetchRecentFiles = async () => { + try { + const res = await getRecentFiles(); + // 与 selectFile 等接口保持一致,axios拦截器已处理一层data + groupMarkdownFiles.value = res.data; + } catch (error) { + console.error('获取最近文件失败:', error); + ElMessage.error('获取最近文件失败'); + } +}; + const resetToHomeView = () => { selectedFile.value = null; - groupMarkdownFiles.value = []; // 清空笔记列表 + fetchRecentFiles(); };