LandingPageProjectController.java
5.7 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.landingpage.controller;
import com.aigeo.landingpage.entity.LandingPageProject;
import com.aigeo.landingpage.service.LandingPageProjectService;
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/landing-page-projects")
@Tag(name = "落地页项目管理", description = "落地页项目相关接口")
public class LandingPageProjectController {
@Autowired
private LandingPageProjectService landingPageProjectService;
@PostMapping
@Operation(summary = "创建落地页项目", description = "创建新的落地页项目")
public Result<LandingPageProject> createProject(@RequestBody LandingPageProject project) {
try {
LandingPageProject savedProject = landingPageProjectService.save(project);
return Result.success("项目创建成功", savedProject);
} catch (Exception e) {
log.error("创建落地页项目失败", e);
return Result.error("项目创建失败");
}
}
@GetMapping("/{id}")
@Operation(summary = "获取落地页项目详情", description = "根据ID获取落地页项目详情")
public Result<LandingPageProject> getProjectById(@PathVariable Integer id) {
try {
return landingPageProjectService.findById(id)
.map(project -> Result.success("查询成功", project))
.orElse(Result.error("项目不存在"));
} catch (Exception e) {
log.error("获取落地页项目详情失败, id: {}", id, e);
return Result.error("查询失败");
}
}
@GetMapping
@Operation(summary = "获取落地页项目列表", description = "获取所有落地页项目列表")
public Result<List<LandingPageProject>> getAllProjects() {
try {
List<LandingPageProject> projects = landingPageProjectService.findAll();
return Result.success("查询成功", projects);
} catch (Exception e) {
log.error("获取落地页项目列表失败", e);
return Result.error("查询失败");
}
}
@GetMapping("/company/{companyId}")
@Operation(summary = "根据公司ID获取落地页项目列表", description = "根据公司ID获取落地页项目列表")
public Result<List<LandingPageProject>> getProjectsByCompanyId(@PathVariable Integer companyId) {
try {
List<LandingPageProject> projects = landingPageProjectService.findByCompanyId(companyId);
return Result.success("查询成功", projects);
} catch (Exception e) {
log.error("根据公司ID获取落地页项目列表失败, companyId: {}", companyId, e);
return Result.error("查询失败");
}
}
@GetMapping("/user/{userId}")
@Operation(summary = "根据用户ID获取落地页项目列表", description = "根据用户ID获取落地页项目列表")
public Result<List<LandingPageProject>> getProjectsByUserId(@PathVariable Integer userId) {
try {
List<LandingPageProject> projects = landingPageProjectService.findByUserId(userId);
return Result.success("查询成功", projects);
} catch (Exception e) {
log.error("根据用户ID获取落地页项目列表失败, userId: {}", userId, e);
return Result.error("查询失败");
}
}
@GetMapping("/status/{status}")
@Operation(summary = "根据状态获取落地页项目列表", description = "根据状态获取落地页项目列表")
public Result<List<LandingPageProject>> getProjectsByStatus(@PathVariable String status) {
try {
LandingPageProject.ProjectStatus projectStatus = LandingPageProject.ProjectStatus.fromCode(status);
List<LandingPageProject> projects = landingPageProjectService.findByStatus(projectStatus);
return Result.success("查询成功", projects);
} catch (Exception e) {
log.error("根据状态获取落地页项目列表失败, status: {}", status, e);
return Result.error("查询失败");
}
}
@PutMapping("/{id}")
@Operation(summary = "更新落地页项目", description = "更新落地页项目信息")
public Result<LandingPageProject> updateProject(@PathVariable Integer id, @RequestBody LandingPageProject project) {
try {
if (!landingPageProjectService.findById(id).isPresent()) {
return Result.error("项目不存在");
}
project.setId(id);
LandingPageProject updatedProject = landingPageProjectService.save(project);
return Result.success("项目更新成功", updatedProject);
} catch (Exception e) {
log.error("更新落地页项目失败, id: {}", id, e);
return Result.error("项目更新失败");
}
}
@DeleteMapping("/{id}")
@Operation(summary = "删除落地页项目", description = "删除指定ID的落地页项目")
public Result<String> deleteProject(@PathVariable Integer id) {
try {
if (!landingPageProjectService.findById(id).isPresent()) {
return Result.error("项目不存在");
}
landingPageProjectService.deleteById(id);
return Result.success("项目删除成功");
} catch (Exception e) {
log.error("删除落地页项目失败, id: {}", id, e);
return Result.error("项目删除失败");
}
}
}