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; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; @Tag(name = "markdown接口") @RestController @RequestMapping("/api/markdown") public class MarkdownController { @Autowired private MarkdownFileService markdownFileService; @Operation(summary = "测试") @GetMapping("/test") public R> test() { List test = markdownFileService.test(); return R.success(test); } @Operation(summary = "预览markdown文件") @Parameters({ @Parameter(name = "id", description = "文件ID", required = true) }) @GetMapping("/{id}") public R getMarkdownContent(@PathVariable Long id) { MarkdownFile file = markdownFileService.getMarkdownById(id); if (file != null) { return R.success(file.getContent()); } return R.fail(); } @Operation(summary = "更新Markdown文件") @PostMapping("/updateMarkdown") public R updateMarkdown(@RequestBody MarkdownFile markdownFile) { MarkdownFile file = markdownFileService.updateMarkdownContent(markdownFile); return R.success(file); } @Operation(summary = "获取所有Markdown文件") @GetMapping public R> getAllMarkdownFiles() { List files = markdownFileService.getAllMarkdownFiles(); return R.success(files); } @Operation(summary = "删除Markdown文件") @Parameters({ @Parameter(name = "id", description = "Markdown文件ID", required = true), }) @DeleteMapping("/{id}") public R deleteMarkdown(@PathVariable Long id) { if (markdownFileService.deleteMarkdownFile(id)) { return R.success(); } return R.fail(); } @Operation(summary = "根据分组ID获取Markdown文件") @GetMapping("/grouping/{groupingId}") public R> getFilesByGroupingId(@PathVariable String groupingId) { List files = markdownFileService.getFilesByGroupingId(groupingId); return R.success(files); } @Operation(summary = "根据标题模糊搜索") @GetMapping("/search") public R> searchByTitle(@RequestParam String keyword) { List files = markdownFileService.searchByTitle(keyword); return R.success(files); } @Operation(summary = "更新Markdown文件标题") @PutMapping("/{id}/title") public R updateMarkdownTitle( @PathVariable Long id, @RequestBody String title) { MarkdownFile updatedFile = markdownFileService.updateMarkdownTitle(id, title); if (updatedFile != null) { return R.success(updatedFile); } return R.fail("文件未找到或更新失败"); } @Operation(summary = "获取最近更新的笔记") @GetMapping("/recent") public R> getRecentFiles() { List files = markdownFileService.getRecentFiles(12); return R.success(files); } }