From 4fd2b431333af1467f74aaeac6e1a0733a7214e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Fri, 28 Aug 2026 12:38:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E7=AB=9E=E4=BA=89?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=88=86=E6=9E=90=E6=A0=A1=E9=AA=8C=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...petitiveEnvironmentAnalysisStepFourServiceImpl.java | 5 ++--- ...tiveEnvironmentAnalysisStepFourServiceImplTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImpl.java b/src/main/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImpl.java index 6af17af..cb3e37b 100644 --- a/src/main/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImpl.java +++ b/src/main/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImpl.java @@ -20,7 +20,6 @@ import java.util.Set; public class CompetitiveEnvironmentAnalysisStepFourServiceImpl implements CompetitiveEnvironmentAnalysisStepFourService { private static final String TASK_KEY = "competitive-environment-analysis"; private static final Set STRATEGY_TYPES = new HashSet<>(Arrays.asList("so", "wo", "st", "wt")); - private static final Set EVALUATION_OPTIONS = new HashSet<>(Arrays.asList("优势明显,建议快速进入", "机会大于挑战,建议积极布局", "挑战与机会并存,需谨慎推进", "劣势突出,建议暂缓进入")); @Autowired private StudentTrainingAnswerService studentTrainingAnswerService; @@ -30,8 +29,8 @@ public class CompetitiveEnvironmentAnalysisStepFourServiceImpl implements Compet if (user.getRoleId() != 4) throw new ServiceException(HttpStatus.FORBIDDEN, "仅学生可进行实训校验"); StudentTrainingAnswer savedAnswer = studentTrainingAnswerService.get(TASK_KEY, null, user); if (savedAnswer == null || StringUtils.isBlank(savedAnswer.getStep3Answer())) throw new ServiceException(HttpStatus.BAD_REQUEST, "请先完成并保存第 3 步的 SWOT 策略"); - if (request == null || !EVALUATION_OPTIONS.contains(StringUtils.trimToEmpty(request.getOverallEvaluation())) || StringUtils.isBlank(request.getCoreRiskOne()) || StringUtils.isBlank(request.getCoreRiskTwo()) || StringUtils.isBlank(request.getConclusion())) { - throw new ServiceException(HttpStatus.BAD_REQUEST, "请完整填写总体判断、至少 2 个风险点和总结结论"); + if (request == null || StringUtils.isBlank(request.getCoreRiskOne()) || StringUtils.isBlank(request.getCoreRiskTwo()) || StringUtils.isBlank(request.getConclusion())) { + throw new ServiceException(HttpStatus.BAD_REQUEST, "请至少填写 2 个核心风险点和总结 SWOT 竞争环境评估结论"); } if (request.getPriorities() == null || request.getPriorities().size() != STRATEGY_TYPES.size()) throw new ServiceException(HttpStatus.BAD_REQUEST, "请完成 SO、WO、ST、WT 四类策略的优先级排序"); Set submittedTypes = new HashSet<>(); diff --git a/src/test/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImplTest.java b/src/test/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImplTest.java index 833345c..9cc2e8c 100644 --- a/src/test/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImplTest.java +++ b/src/test/java/com/sztzjy/linkCommerce/service/impl/CompetitiveEnvironmentAnalysisStepFourServiceImplTest.java @@ -26,6 +26,16 @@ class CompetitiveEnvironmentAnalysisStepFourServiceImplTest { assertTrue(result.isValid()); } + @Test + void validateDoesNotRequireOverallCompetitiveEvaluation() { + CompetitiveEnvironmentAnalysisStepFourValidationRequest request = completedRequest(); + request.setOverallEvaluation(null); + + CompetitiveEnvironmentAnalysisStepFourValidationResult result = serviceWithStepThree().validate(request, student()); + + assertTrue(result.isValid()); + } + @Test void validateRejectsDuplicatePriorityAndMissingStepThree() { CompetitiveEnvironmentAnalysisStepFourValidationRequest incomplete = completedRequest();