GeneratedArticleController.java
5.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.aigeo.article.controller;
import com.aigeo.article.entity.GeneratedArticle;
import com.aigeo.article.service.GeneratedArticleService;
import com.aigeo.common.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 生成的文章控制器
*/
@Slf4j
@RestController
@RequestMapping("/api/articles")
@Tag(name = "生成文章管理", description = "AI生成文章相关接口")
public class GeneratedArticleController {
@Autowired
private GeneratedArticleService generatedArticleService;
@PostMapping
@Operation(summary = "创建生成文章", description = "创建新的生成文章")
public Result<GeneratedArticle> createArticle(@RequestBody GeneratedArticle article) {
try {
GeneratedArticle savedArticle = generatedArticleService.save(article);
return Result.success("文章创建成功", savedArticle);
} catch (Exception e) {
log.error("创建生成文章失败", e);
return Result.error("文章创建失败");
}
}
@GetMapping("/{id}")
@Operation(summary = "获取生成文章详情", description = "根据ID获取生成文章详情")
public Result<GeneratedArticle> getArticleById(@PathVariable Integer id) {
try {
return generatedArticleService.findById(id)
.map(article -> Result.success("查询成功", article))
.orElse(Result.error("文章不存在"));
} catch (Exception e) {
log.error("获取生成文章详情失败, id: {}", id, e);
return Result.error("查询失败");
}
}
@GetMapping
@Operation(summary = "获取生成文章列表", description = "获取所有生成文章列表")
public Result<List<GeneratedArticle>> getAllArticles() {
try {
List<GeneratedArticle> articles = generatedArticleService.findAll();
return Result.success("查询成功", articles);
} catch (Exception e) {
log.error("获取生成文章列表失败", e);
return Result.error("查询失败");
}
}
@GetMapping("/task/{taskId}")
@Operation(summary = "根据任务ID获取生成文章列表", description = "根据任务ID获取生成文章列表")
public Result<List<GeneratedArticle>> getArticlesByTaskId(@PathVariable Integer taskId) {
try {
List<GeneratedArticle> articles = generatedArticleService.findByTaskId(taskId);
return Result.success("查询成功", articles);
} catch (Exception e) {
log.error("根据任务ID获取生成文章列表失败, taskId: {}", taskId, e);
return Result.error("查询失败");
}
}
@GetMapping("/company/{companyId}")
@Operation(summary = "根据公司ID获取生成文章列表", description = "根据公司ID获取生成文章列表")
public Result<List<GeneratedArticle>> getArticlesByCompanyId(@PathVariable Integer companyId) {
try {
List<GeneratedArticle> articles = generatedArticleService.findByCompanyId(companyId);
return Result.success("查询成功", articles);
} catch (Exception e) {
log.error("根据公司ID获取生成文章列表失败, companyId: {}", companyId, e);
return Result.error("查询失败");
}
}
@GetMapping("/status/{status}")
@Operation(summary = "根据状态获取生成文章列表", description = "根据状态获取生成文章列表")
public Result<List<GeneratedArticle>> getArticlesByStatus(@PathVariable String status) {
try {
GeneratedArticle.ArticleStatus articleStatus = GeneratedArticle.ArticleStatus.fromCode(status);
List<GeneratedArticle> articles = generatedArticleService.findByStatus(articleStatus);
return Result.success("查询成功", articles);
} catch (Exception e) {
log.error("根据状态获取生成文章列表失败, status: {}", status, e);
return Result.error("查询失败");
}
}
@PutMapping("/{id}")
@Operation(summary = "更新生成文章", description = "更新生成文章信息")
public Result<GeneratedArticle> updateArticle(@PathVariable Integer id, @RequestBody GeneratedArticle article) {
try {
if (!generatedArticleService.findById(id).isPresent()) {
return Result.error("文章不存在");
}
article.setId(id);
GeneratedArticle updatedArticle = generatedArticleService.save(article);
return Result.success("文章更新成功", updatedArticle);
} catch (Exception e) {
log.error("更新生成文章失败, id: {}", id, e);
return Result.error("文章更新失败");
}
}
@DeleteMapping("/{id}")
@Operation(summary = "删除生成文章", description = "删除指定ID的生成文章")
public Result<String> deleteArticle(@PathVariable Integer id) {
try {
if (!generatedArticleService.findById(id).isPresent()) {
return Result.error("文章不存在");
}
generatedArticleService.deleteById(id);
return Result.success("文章删除成功");
} catch (Exception e) {
log.error("删除生成文章失败, id: {}", id, e);
return Result.error("文章删除失败");
}
}
}