package edp.davinci.controller; import edp.core.annotation.CurrentUser; import edp.davinci.common.controller.BaseController; import edp.davinci.core.common.Constants; import edp.davinci.core.common.ResultMap; import edp.davinci.model.DataSubject; import edp.davinci.model.User; import edp.davinci.service.DataSubjectService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.List; @Api(value = "/dataSubject", tags = "dataSubject", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @ApiResponses(@ApiResponse(code = 404, message = "dataSubject not found")) @Slf4j @RestController @RequestMapping(value = Constants.BASE_API_PATH + "/dataSubject", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) public class DataSubjectController extends BaseController { @Autowired private DataSubjectService dataSubjectService; /** * 获取 主题 * * @param user * @param request * @return */ @ApiOperation(value = "get dataSubject") @GetMapping(value = "/getDataSubject") public ResponseEntity getDataSubject(@ApiIgnore @CurrentUser User user, HttpServletRequest request) { List dataSubjects = dataSubjectService.getDataSubject(); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(dataSubjects)); } /** * 新建主题 * * @param dataSubject * @param bindingResult * @param user * @param request * @return */ @ApiOperation(value = "create dataSubject") @PostMapping(value = "/createDataSubject",consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity createDataSubject(@Valid @RequestBody DataSubject dataSubject, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request) { if (bindingResult.hasErrors()) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage()); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } dataSubject = dataSubjectService.createDataSubject(dataSubject); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payload(dataSubject)); } /** * 修改dataSubject * * @param id * @param dataSubject * @param bindingResult * @param user * @param request * @return */ @ApiOperation(value = "update dataSubject") @PutMapping(value = "/updateDataSubject/{id}", consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity updateDataSubject(@PathVariable Long id, @Valid @RequestBody DataSubject dataSubject, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request) { if (invalidId(id) || !id.equals(dataSubject.getId())) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id"); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } if (bindingResult.hasErrors()) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage()); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } dataSubjectService.updateDataSubject(dataSubject); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request)); } /** * 删除dataSubject * * @param id * @param user * @param request * @return */ @ApiOperation(value = "delete dataSubject") @DeleteMapping("/deleteDataSubject/{id}") public ResponseEntity deleteDataSubject(@PathVariable Long id, @ApiIgnore @CurrentUser User user, HttpServletRequest request) { if (invalidId(id)) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id"); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } dataSubjectService.deleteDataSubject(id); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request)); } }