ArticleGenerationTaskController.java
5.8 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.ArticleGenerationTask;
import com.aigeo.article.service.ArticleGenerationTaskService;
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/article-tasks")
@Tag(name = "文章生成任务管理", description = "文章生成任务相关接口")
public class ArticleGenerationTaskController {
@Autowired
private ArticleGenerationTaskService articleGenerationTaskService;
@PostMapping
@Operation(summary = "创建文章生成任务", description = "创建新的文章生成任务")
public Result<ArticleGenerationTask> createTask(@RequestBody ArticleGenerationTask task) {
try {
ArticleGenerationTask savedTask = articleGenerationTaskService.save(task);
return Result.success("任务创建成功", savedTask);
} catch (Exception e) {
log.error("创建文章生成任务失败", e);
return Result.error("任务创建失败");
}
}
@GetMapping("/{id}")
@Operation(summary = "获取文章生成任务详情", description = "根据ID获取文章生成任务详情")
public Result<ArticleGenerationTask> getTaskById(@PathVariable Integer id) {
try {
return articleGenerationTaskService.findById(id)
.map(task -> Result.success("查询成功", task))
.orElse(Result.error("任务不存在"));
} catch (Exception e) {
log.error("获取文章生成任务详情失败, id: {}", id, e);
return Result.error("查询失败");
}
}
@GetMapping
@Operation(summary = "获取文章生成任务列表", description = "获取所有文章生成任务列表")
public Result<List<ArticleGenerationTask>> getAllTasks() {
try {
List<ArticleGenerationTask> tasks = articleGenerationTaskService.findAll();
return Result.success("查询成功", tasks);
} catch (Exception e) {
log.error("获取文章生成任务列表失败", e);
return Result.error("查询失败");
}
}
@GetMapping("/company/{companyId}")
@Operation(summary = "根据公司ID获取文章生成任务列表", description = "根据公司ID获取文章生成任务列表")
public Result<List<ArticleGenerationTask>> getTasksByCompanyId(@PathVariable Integer companyId) {
try {
List<ArticleGenerationTask> tasks = articleGenerationTaskService.findByCompanyId(companyId);
return Result.success("查询成功", tasks);
} catch (Exception e) {
log.error("根据公司ID获取文章生成任务列表失败, companyId: {}", companyId, e);
return Result.error("查询失败");
}
}
@GetMapping("/user/{userId}")
@Operation(summary = "根据用户ID获取文章生成任务列表", description = "根据用户ID获取文章生成任务列表")
public Result<List<ArticleGenerationTask>> getTasksByUserId(@PathVariable Integer userId) {
try {
List<ArticleGenerationTask> tasks = articleGenerationTaskService.findByUserId(userId);
return Result.success("查询成功", tasks);
} catch (Exception e) {
log.error("根据用户ID获取文章生成任务列表失败, userId: {}", userId, e);
return Result.error("查询失败");
}
}
@GetMapping("/status/{status}")
@Operation(summary = "根据状态获取文章生成任务列表", description = "根据状态获取文章生成任务列表")
public Result<List<ArticleGenerationTask>> getTasksByStatus(@PathVariable String status) {
try {
ArticleGenerationTask.TaskStatus taskStatus = ArticleGenerationTask.TaskStatus.fromCode(status);
List<ArticleGenerationTask> tasks = articleGenerationTaskService.findByStatus(taskStatus);
return Result.success("查询成功", tasks);
} catch (Exception e) {
log.error("根据状态获取文章生成任务列表失败, status: {}", status, e);
return Result.error("查询失败");
}
}
@PutMapping("/{id}")
@Operation(summary = "更新文章生成任务", description = "更新文章生成任务信息")
public Result<ArticleGenerationTask> updateTask(@PathVariable Integer id, @RequestBody ArticleGenerationTask task) {
try {
if (!articleGenerationTaskService.findById(id).isPresent()) {
return Result.error("任务不存在");
}
task.setId(id);
ArticleGenerationTask updatedTask = articleGenerationTaskService.save(task);
return Result.success("任务更新成功", updatedTask);
} catch (Exception e) {
log.error("更新文章生成任务失败, id: {}", id, e);
return Result.error("任务更新失败");
}
}
@DeleteMapping("/{id}")
@Operation(summary = "删除文章生成任务", description = "删除指定ID的文章生成任务")
public Result<String> deleteTask(@PathVariable Integer id) {
try {
if (!articleGenerationTaskService.findById(id).isPresent()) {
return Result.error("任务不存在");
}
articleGenerationTaskService.deleteById(id);
return Result.success("任务删除成功");
} catch (Exception e) {
log.error("删除文章生成任务失败, id: {}", id, e);
return Result.error("任务删除失败");
}
}
}