From 79fd874868b5420c810fe10def4a82f28a5685b2 Mon Sep 17 00:00:00 2001 From: chenyuan Date: Fri, 7 Aug 2026 14:20:00 +0800 Subject: [PATCH] feat: expose product factors step one validation --- .../stu/StudentTrainingAnswerController.java | 18 ++++++++++++++++ .../StudentTrainingAnswerControllerTest.java | 21 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/main/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerController.java b/src/main/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerController.java index ba10ecd..9e8c151 100644 --- a/src/main/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerController.java +++ b/src/main/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerController.java @@ -12,10 +12,13 @@ import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepThreeValidationReq import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepThreeValidationResult; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepFourValidationRequest; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepFourValidationResult; +import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepOneValidationRequest; +import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepOneValidationResult; import com.sztzjy.linkCommerce.service.NewProductSurveyStepOneService; import com.sztzjy.linkCommerce.service.NewProductSurveyStepTwoService; import com.sztzjy.linkCommerce.service.NewProductSurveyStepThreeService; import com.sztzjy.linkCommerce.service.NewProductSurveyStepFourService; +import com.sztzjy.linkCommerce.service.ProductDevelopmentFactorsStepOneService; import com.sztzjy.linkCommerce.service.StudentTrainingAnswerService; import com.sztzjy.linkCommerce.util.ResultEntity; import io.swagger.annotations.Api; @@ -45,6 +48,9 @@ public class StudentTrainingAnswerController { @Autowired private NewProductSurveyStepFourService newProductSurveyStepFourService; + @Autowired + private ProductDevelopmentFactorsStepOneService productDevelopmentFactorsStepOneService; + @GetMapping("/{taskKey}") @ApiOperation("查询当前学生指定实训任务答案") public ResultEntity detail(@PathVariable String taskKey, @@ -119,6 +125,18 @@ public class StudentTrainingAnswerController { } } + @PostMapping("/product-development-factors/step-1/validate") + @ApiOperation("产品开发关键因素第一步校验") + public ResultEntity validateProductDevelopmentFactorsStepOne( + @RequestBody ProductDevelopmentFactorsStepOneValidationRequest answer, HttpServletRequest request) { + try { + JwtUser user = TokenProvider.getJWTUser(request); + return new ResultEntity<>(HttpStatus.OK, "校验通过", productDevelopmentFactorsStepOneService.validate(answer, user)); + } catch (ServiceException e) { + return new ResultEntity<>(e.getCode(), e.getMessage()); + } + } + @DeleteMapping("/{taskKey}") @ApiOperation("删除当前学生指定实训任务答案") public ResultEntity delete(@PathVariable String taskKey, diff --git a/src/test/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerControllerTest.java b/src/test/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerControllerTest.java index 1dd2a3f..4416621 100644 --- a/src/test/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerControllerTest.java +++ b/src/test/java/com/sztzjy/linkCommerce/controller/stu/StudentTrainingAnswerControllerTest.java @@ -11,10 +11,13 @@ import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepThreeValidationReq import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepThreeValidationResult; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepFourValidationRequest; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepFourValidationResult; +import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepOneValidationRequest; +import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepOneValidationResult; import com.sztzjy.linkCommerce.service.NewProductSurveyStepOneService; import com.sztzjy.linkCommerce.service.NewProductSurveyStepTwoService; import com.sztzjy.linkCommerce.service.NewProductSurveyStepThreeService; import com.sztzjy.linkCommerce.service.NewProductSurveyStepFourService; +import com.sztzjy.linkCommerce.service.ProductDevelopmentFactorsStepOneService; import com.sztzjy.linkCommerce.util.ResultEntity; import org.junit.jupiter.api.Test; import org.springframework.http.HttpStatus; @@ -99,6 +102,24 @@ class StudentTrainingAnswerControllerTest { verify(service).validate(any(NewProductSurveyStepFourValidationRequest.class), any(JwtUser.class)); } + @Test + void validateProductDevelopmentFactorsStepOneUsesTheAuthenticatedStudentAndReturnsTheValidationResult() { + StudentTrainingAnswerController controller = new StudentTrainingAnswerController(); + ProductDevelopmentFactorsStepOneService service = mock(ProductDevelopmentFactorsStepOneService.class); + ReflectionTestUtils.setField(controller, "productDevelopmentFactorsStepOneService", service); + ProductDevelopmentFactorsStepOneValidationResult validation = new ProductDevelopmentFactorsStepOneValidationResult(); + validation.setValid(true); + when(service.validate(any(ProductDevelopmentFactorsStepOneValidationRequest.class), any(JwtUser.class))).thenReturn(validation); + + ProductDevelopmentFactorsStepOneValidationRequest answer = new ProductDevelopmentFactorsStepOneValidationRequest(); + ResultEntity result = controller + .validateProductDevelopmentFactorsStepOne(answer, authenticatedStudentRequest()); + + assertEquals(HttpStatus.OK, result.getStatusCode()); + assertEquals(validation, result.getBody().getData()); + verify(service).validate(any(ProductDevelopmentFactorsStepOneValidationRequest.class), any(JwtUser.class)); + } + private HttpServletRequest authenticatedStudentRequest() { JwtUser user = new JwtUser(); user.setUserId("stu-1");