71 lines
3.3 KiB
Java
71 lines
3.3 KiB
Java
package com.labelsys.backend.controller;
|
||
|
||
import com.labelsys.backend.annotation.RequirePosition;
|
||
import com.labelsys.backend.context.LoginUser;
|
||
import com.labelsys.backend.dto.common.PageResult;
|
||
import com.labelsys.backend.dto.request.AnnotationResultPageQuery;
|
||
import com.labelsys.backend.dto.request.MergeReviewResultRequest;
|
||
import com.labelsys.backend.dto.response.AnnotationResultCompareResponse;
|
||
import com.labelsys.backend.dto.response.AnnotationResultResponse;
|
||
import com.labelsys.backend.enums.UserPosition;
|
||
import com.labelsys.backend.service.AnnotationResultService;
|
||
import io.swagger.v3.oas.annotations.Operation;
|
||
import io.swagger.v3.oas.annotations.Parameter;
|
||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||
import jakarta.validation.Valid;
|
||
import lombok.RequiredArgsConstructor;
|
||
import org.springframework.http.ResponseEntity;
|
||
import org.springframework.web.bind.annotation.GetMapping;
|
||
import org.springframework.web.bind.annotation.PathVariable;
|
||
import org.springframework.web.bind.annotation.PostMapping;
|
||
import org.springframework.web.bind.annotation.RequestBody;
|
||
import org.springframework.web.bind.annotation.RequestMapping;
|
||
import org.springframework.web.bind.annotation.RestController;
|
||
|
||
@RestController
|
||
@RequestMapping("/api/annotation-results")
|
||
@RequiredArgsConstructor
|
||
@Tag(name = "标注结果管理", description = "标注结果相关接口")
|
||
public class AnnotationResultController {
|
||
|
||
private final AnnotationResultService annotationResultService;
|
||
|
||
@Operation(summary = "分页查询标注结果")
|
||
@GetMapping
|
||
public ResponseEntity<PageResult<AnnotationResultResponse>> pageResults(
|
||
@Valid AnnotationResultPageQuery query,
|
||
@Parameter(hidden = true) LoginUser currentUser) {
|
||
return ResponseEntity.ok(annotationResultService.pageResults(currentUser, query));
|
||
}
|
||
|
||
@Operation(summary = "查询标注结果详情")
|
||
@GetMapping("/{id}")
|
||
public ResponseEntity<AnnotationResultResponse> getResult(
|
||
@Parameter(description = "结果ID", example = "191000000000000401")
|
||
@PathVariable Long id,
|
||
@Parameter(hidden = true) LoginUser currentUser) {
|
||
return ResponseEntity.ok(annotationResultService.getResult(currentUser, id));
|
||
}
|
||
|
||
@Operation(summary = "查询结果比对信息,REVIEWER岗位以上可操作")
|
||
@GetMapping("/{id}/compare")
|
||
@RequirePosition(UserPosition.REVIEWER)
|
||
public ResponseEntity<AnnotationResultCompareResponse> compareResult(
|
||
@Parameter(description = "结果ID", example = "191000000000000401")
|
||
@PathVariable Long id,
|
||
@Parameter(hidden = true) LoginUser currentUser) {
|
||
return ResponseEntity.ok(annotationResultService.compareResult(currentUser, id));
|
||
}
|
||
|
||
@Operation(summary = "提交合并审核结果,REVIEWER岗位以上可操作")
|
||
@PostMapping("/{id}/merge")
|
||
@RequirePosition(UserPosition.REVIEWER)
|
||
public ResponseEntity<Void> mergeReviewResult(
|
||
@Parameter(description = "结果ID", example = "191000000000000401")
|
||
@PathVariable Long id,
|
||
@Valid @RequestBody MergeReviewResultRequest request,
|
||
@Parameter(hidden = true) LoginUser currentUser) {
|
||
annotationResultService.mergeReviewResult(currentUser, id, request);
|
||
return ResponseEntity.ok().build();
|
||
}
|
||
} |