Files
biji/biji-houdaun/src/main/java/com/test/bijihoudaun/controller/MarkdownController.java
ikmkj c448ababa9 feattrash: 优化删除功能和回收站逻辑
- 修改 Markdown 文件和分组的删除逻辑,使用软删除方式
- 更新回收站相关接口和页面展示
-优化前端保存逻辑,支持新建文件和更新文件
- 调整后端 API 接口,使用更合适的 HTTP 方法
2025-07-31 23:58:13 +08:00

105 lines
3.6 KiB
Java

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<List<MarkdownFile>> test() {
List<MarkdownFile> test = markdownFileService.test();
return R.success(test);
}
@Operation(summary = "预览markdown文件")
@Parameters({
@Parameter(name = "id", description = "文件ID", required = true)
})
@GetMapping("/{id}")
public R<String> 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<MarkdownFile> updateMarkdown(@RequestBody MarkdownFile markdownFile) {
MarkdownFile file = markdownFileService.updateMarkdownContent(markdownFile);
return R.success(file);
}
@Operation(summary = "获取所有Markdown文件")
@GetMapping
public R<List<MarkdownFile>> getAllMarkdownFiles() {
List<MarkdownFile> files = markdownFileService.getAllMarkdownFiles();
return R.success(files);
}
@Operation(summary = "删除Markdown文件")
@Parameters({
@Parameter(name = "id", description = "Markdown文件ID", required = true),
})
@DeleteMapping("/{id}")
public R<Void> deleteMarkdown(@PathVariable Long id) {
if (markdownFileService.deleteMarkdownFile(id)) {
return R.success();
}
return R.fail();
}
@Operation(summary = "根据分组ID获取Markdown文件")
@GetMapping("/grouping/{groupingId}")
public R<List<MarkdownFileVO>> getFilesByGroupingId(@PathVariable String groupingId) {
List<MarkdownFileVO> files = markdownFileService.getFilesByGroupingId(groupingId);
return R.success(files);
}
@Operation(summary = "根据标题模糊搜索")
@GetMapping("/search")
public R<List<MarkdownFile>> searchByTitle(@RequestParam String keyword) {
List<MarkdownFile> files = markdownFileService.searchByTitle(keyword);
return R.success(files);
}
@Operation(summary = "更新Markdown文件标题")
@PutMapping("/{id}/title")
public R<MarkdownFile> 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<List<MarkdownFileVO>> getRecentFiles() {
List<MarkdownFileVO> files = markdownFileService.getRecentFiles(12);
return R.success(files);
}
}