package com.sztzjy.linkCommerce.controller.stu; import com.sztzjy.linkCommerce.config.exception.handler.ServiceException; import com.sztzjy.linkCommerce.config.security.JwtUser; import com.sztzjy.linkCommerce.config.security.TokenProvider; import com.sztzjy.linkCommerce.entity.StudentTrainingAnswer; import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepOneValidationRequest; import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepOneValidationResult; import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepTwoValidationRequest; import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepTwoValidationResult; import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepThreeValidationRequest; import com.sztzjy.linkCommerce.entity.dto.IndustryDemandAnalysisStepThreeValidationResult; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepOneCheckRequest; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepOneCheckResult; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepTwoValidationRequest; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepTwoValidationResult; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepThreeValidationRequest; 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.entity.dto.ProductDevelopmentFactorsStepTwoValidationRequest; import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepTwoValidationResult; import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepThreeValidationRequest; import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepThreeValidationResult; import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepFourValidationRequest; import com.sztzjy.linkCommerce.entity.dto.ProductDevelopmentFactorsStepFourValidationResult; 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.ProductDevelopmentFactorsStepTwoService; import com.sztzjy.linkCommerce.service.ProductDevelopmentFactorsStepThreeService; import com.sztzjy.linkCommerce.service.ProductDevelopmentFactorsStepFourService; import com.sztzjy.linkCommerce.service.StudentTrainingAnswerService; import com.sztzjy.linkCommerce.service.IndustryDemandAnalysisStepOneService; import com.sztzjy.linkCommerce.service.IndustryDemandAnalysisStepTwoService; import com.sztzjy.linkCommerce.service.IndustryDemandAnalysisStepThreeService; import com.sztzjy.linkCommerce.util.ResultEntity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @Api(tags = "学生实训答案") @RequestMapping("api/student-training-answers") @RestController public class StudentTrainingAnswerController { @Autowired private StudentTrainingAnswerService studentTrainingAnswerService; @Autowired private IndustryDemandAnalysisStepOneService industryDemandAnalysisStepOneService; @Autowired private IndustryDemandAnalysisStepTwoService industryDemandAnalysisStepTwoService; @Autowired private IndustryDemandAnalysisStepThreeService industryDemandAnalysisStepThreeService; @Autowired private NewProductSurveyStepOneService newProductSurveyStepOneService; @Autowired private NewProductSurveyStepTwoService newProductSurveyStepTwoService; @Autowired private NewProductSurveyStepThreeService newProductSurveyStepThreeService; @Autowired private NewProductSurveyStepFourService newProductSurveyStepFourService; @Autowired private ProductDevelopmentFactorsStepOneService productDevelopmentFactorsStepOneService; @Autowired private ProductDevelopmentFactorsStepTwoService productDevelopmentFactorsStepTwoService; @Autowired private ProductDevelopmentFactorsStepThreeService productDevelopmentFactorsStepThreeService; @Autowired private ProductDevelopmentFactorsStepFourService productDevelopmentFactorsStepFourService; @GetMapping("/{taskKey}") @ApiOperation("查询当前学生指定实训任务答案") public ResultEntity detail(@PathVariable String taskKey, @RequestParam(required = false) String teachingClassId, HttpServletRequest request) { try { JwtUser user = TokenProvider.getJWTUser(request); return new ResultEntity<>(HttpStatus.OK, "查询成功", studentTrainingAnswerService.get(taskKey, teachingClassId, user)); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/{taskKey}") @ApiOperation("保存当前学生指定实训任务答案") public ResultEntity save(@PathVariable String taskKey, @RequestBody StudentTrainingAnswer answer, HttpServletRequest request) { try { JwtUser user = TokenProvider.getJWTUser(request); return new ResultEntity<>(HttpStatus.OK, "保存成功", studentTrainingAnswerService.save(taskKey, answer, user)); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/industry-demand-analysis/step-1/validate") @ApiOperation("行业需求分析第一步校验") public ResultEntity validateIndustryDemandAnalysisStepOne( @RequestBody IndustryDemandAnalysisStepOneValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", industryDemandAnalysisStepOneService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/industry-demand-analysis/step-2/validate") @ApiOperation("行业需求分析第二步校验") public ResultEntity validateIndustryDemandAnalysisStepTwo( @RequestBody IndustryDemandAnalysisStepTwoValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", industryDemandAnalysisStepTwoService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/industry-demand-analysis/step-3/validate") @ApiOperation("行业需求分析第三步校验") public ResultEntity validateIndustryDemandAnalysisStepThree( @RequestBody IndustryDemandAnalysisStepThreeValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", industryDemandAnalysisStepThreeService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/new-product-survey/step-1/check") @ApiOperation("新产品调查与分析第一步判题") public ResultEntity checkNewProductSurveyStepOne( @RequestBody NewProductSurveyStepOneCheckRequest answer, HttpServletRequest request) { try { JwtUser user = TokenProvider.getJWTUser(request); return new ResultEntity<>(HttpStatus.OK, "判题完成", newProductSurveyStepOneService.check(answer, user)); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/new-product-survey/step-2/validate") @ApiOperation("新产品调查与分析第二步校验") public ResultEntity validateNewProductSurveyStepTwo( @RequestBody NewProductSurveyStepTwoValidationRequest answer, HttpServletRequest request) { try { JwtUser user = TokenProvider.getJWTUser(request); return new ResultEntity<>(HttpStatus.OK, "校验通过", newProductSurveyStepTwoService.validate(answer, user)); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/new-product-survey/step-3/validate") @ApiOperation("新产品调查与分析第三步校验") public ResultEntity validateNewProductSurveyStepThree( @RequestBody NewProductSurveyStepThreeValidationRequest answer, HttpServletRequest request) { try { JwtUser user = TokenProvider.getJWTUser(request); return new ResultEntity<>(HttpStatus.OK, "校验通过", newProductSurveyStepThreeService.validate(answer, user)); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/new-product-survey/step-4/validate") @ApiOperation("新产品调查与分析第四步校验") public ResultEntity validateNewProductSurveyStepFour( @RequestBody NewProductSurveyStepFourValidationRequest answer, HttpServletRequest request) { try { JwtUser user = TokenProvider.getJWTUser(request); return new ResultEntity<>(HttpStatus.OK, "校验通过", newProductSurveyStepFourService.validate(answer, user)); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @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()); } } @PostMapping("/product-development-factors/step-2/validate") @ApiOperation("产品开发关键因素第二步校验") public ResultEntity validateProductDevelopmentFactorsStepTwo( @RequestBody ProductDevelopmentFactorsStepTwoValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", productDevelopmentFactorsStepTwoService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/product-development-factors/step-3/validate") @ApiOperation("产品开发关键因素第三步校验") public ResultEntity validateProductDevelopmentFactorsStepThree( @RequestBody ProductDevelopmentFactorsStepThreeValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", productDevelopmentFactorsStepThreeService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/product-development-factors/step-4/validate") @ApiOperation("产品开发关键因素第四步校验") public ResultEntity validateProductDevelopmentFactorsStepFour( @RequestBody ProductDevelopmentFactorsStepFourValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", productDevelopmentFactorsStepFourService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @DeleteMapping("/{taskKey}") @ApiOperation("删除当前学生指定实训任务答案") public ResultEntity delete(@PathVariable String taskKey, @RequestParam(required = false) String teachingClassId, HttpServletRequest request) { try { JwtUser user = TokenProvider.getJWTUser(request); studentTrainingAnswerService.delete(taskKey, teachingClassId, user); return new ResultEntity<>(HttpStatus.OK, "删除成功"); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } }