- 修改 Markdown 文件和分组的删除逻辑,使用软删除方式 - 更新回收站相关接口和页面展示 -优化前端保存逻辑,支持新建文件和更新文件 - 调整后端 API 接口,使用更合适的 HTTP 方法
105 lines
3.6 KiB
Java
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);
|
|
}
|
|
}
|