2024-01-20 17:18:03 +08:00

116 lines
4.7 KiB
Java
Executable File

package com.jsl.oa.controllers;
import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode;
import com.jsl.oa.utils.Processing;
import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@RequiredArgsConstructor
public class ProjectController {
private final ProjectService projectService;
@GetMapping("/project/header/get")
public BaseResponse projectGetHeader(@RequestParam(required = false) Integer id) {
log.info("请求接口[GET]: /project/header/get");
return projectService.getHeader(id);
}
@GetMapping("/project/get")
public BaseResponse projectGet() {
return projectService.get();
}
@GetMapping("/project/header")
public BaseResponse projectGetByName(@RequestParam String name) {
log.info("请求接口[GET]: /project/header");
return projectService.getByName(name);
}
@PostMapping("/project/header/add")
public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/header/add");
// 参数校验
if (bindingResult.hasErrors()) {
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.addHeader(request, projectShowVO);
}
@PutMapping("/project/header/edit")
public BaseResponse projectEditHeader(@RequestBody @Validated ProjectShowVO projectShowVO, @RequestParam Integer id, HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/header/del");
// 参数校验
if (bindingResult.hasErrors()) {
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
}
if (id == null) {
log.warn("参数校验失败: {}", "id不能为空");
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "id不能为空");
}
return projectService.editHeader(request, projectShowVO, id);
}
@DeleteMapping("/project/header/del")
public BaseResponse projectDelHeader(@RequestParam Integer id, HttpServletRequest request) {
log.info("请求接口[Delete]: /project/header/del");
return projectService.delHeader(id, request);
}
@PostMapping("/project/add")
public BaseResponse projectAdd(@RequestBody @Validated ProjectInfoVO projectAdd, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/header/del");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projectAdd(projectAdd);
}
@PutMapping("/project/edit")
public BaseResponse projectEdit(@RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/header/del");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projectEdit(projectEdit);
}
@GetMapping("/project/cut/user")
public BaseResponse projectGetUserInCutting(@RequestParam Long uid) {
log.info("请求接口[PUT]: /project/header/del");
// 判断是否有参数错误
if (uid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
}
return projectService.projectGetUserInCutting(uid);
}
@PostMapping("/project/cut/user/add")
public BaseResponse projectAddUserForCutting(@RequestParam Long uid, @RequestParam Long pid) {
log.info("请求接口[PUT]: /project/header/del");
// 判断是否有参数错误
if (uid == null || pid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
}
return projectService.projectAddUserForCutting(uid, pid);
}
}