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.NewProductSurveyStepOneCheckRequest; import com.sztzjy.linkCommerce.entity.dto.NewProductSurveyStepOneCheckResult; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepOneCheckRequest; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepOneCheckResult; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepTwoValidationRequest; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepTwoValidationResult; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepThreeValidationRequest; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepThreeValidationResult; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepFourValidationRequest; import com.sztzjy.linkCommerce.entity.dto.MarketOpportunitySelectionStepFourValidationResult; 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.entity.dto.ConsumerBehaviorStepOneValidationRequest; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorStepOneValidationResult; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorStepTwoValidationRequest; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorStepTwoValidationResult; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorStepThreeValidationRequest; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorStepThreeValidationResult; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorStepFourValidationRequest; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorStepFourValidationResult; import com.sztzjy.linkCommerce.entity.dto.ConsumerBehaviorWordPreviewResult; import com.sztzjy.linkCommerce.entity.dto.FeatureConversionStepOneValidationRequest; import com.sztzjy.linkCommerce.entity.dto.FeatureConversionStepOneValidationResult; import com.sztzjy.linkCommerce.service.NewProductSurveyStepOneService; import com.sztzjy.linkCommerce.service.MarketOpportunitySelectionStepOneService; import com.sztzjy.linkCommerce.service.MarketOpportunitySelectionStepTwoService; import com.sztzjy.linkCommerce.service.MarketOpportunitySelectionStepThreeService; import com.sztzjy.linkCommerce.service.MarketOpportunitySelectionStepFourService; 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.ConsumerBehaviorStepOneService; import com.sztzjy.linkCommerce.service.ConsumerBehaviorStepTwoService; import com.sztzjy.linkCommerce.service.ConsumerBehaviorStepThreeService; import com.sztzjy.linkCommerce.service.ConsumerBehaviorStepFourService; import com.sztzjy.linkCommerce.service.FeatureConversionStepOneService; import com.sztzjy.linkCommerce.service.StudentTrainingAnswerService; 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 org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @Api(tags = "学生实训答案") @RequestMapping("api/student-training-answers") @RestController public class StudentTrainingAnswerController { @Autowired private StudentTrainingAnswerService studentTrainingAnswerService; @Autowired private NewProductSurveyStepOneService newProductSurveyStepOneService; @Autowired private MarketOpportunitySelectionStepOneService marketOpportunitySelectionStepOneService; @Autowired private MarketOpportunitySelectionStepTwoService marketOpportunitySelectionStepTwoService; @Autowired private MarketOpportunitySelectionStepThreeService marketOpportunitySelectionStepThreeService; @Autowired private MarketOpportunitySelectionStepFourService marketOpportunitySelectionStepFourService; @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; @Autowired private ConsumerBehaviorStepOneService consumerBehaviorStepOneService; @Autowired private ConsumerBehaviorStepTwoService consumerBehaviorStepTwoService; @Autowired private ConsumerBehaviorStepThreeService consumerBehaviorStepThreeService; @Autowired private ConsumerBehaviorStepFourService consumerBehaviorStepFourService; @Autowired private FeatureConversionStepOneService featureConversionStepOneService; @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("/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("/market-opportunity-selection/step-1/check") @ApiOperation("市场机会识别与选品第一步判题") public ResultEntity checkMarketOpportunitySelectionStepOne( @RequestBody MarketOpportunitySelectionStepOneCheckRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "判题完成", marketOpportunitySelectionStepOneService.check(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/market-opportunity-selection/step-2/validate") @ApiOperation("市场机会识别与选品第二步校验") public ResultEntity validateMarketOpportunitySelectionStepTwo( @RequestBody MarketOpportunitySelectionStepTwoValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", marketOpportunitySelectionStepTwoService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/market-opportunity-selection/step-3/validate") @ApiOperation("市场机会识别与选品第三步校验") public ResultEntity validateMarketOpportunitySelectionStepThree( @RequestBody MarketOpportunitySelectionStepThreeValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", marketOpportunitySelectionStepThreeService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/market-opportunity-selection/step-4/validate") @ApiOperation("市场机会识别与选品第四步校验") public ResultEntity validateMarketOpportunitySelectionStepFour( @RequestBody MarketOpportunitySelectionStepFourValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", marketOpportunitySelectionStepFourService.validate(answer, TokenProvider.getJWTUser(request))); } 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()); } } @PostMapping("/consumer-behavior/step-1/validate") @ApiOperation("消费者需求与行为第一步校验") public ResultEntity validateConsumerBehaviorStepOne( @RequestBody ConsumerBehaviorStepOneValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", consumerBehaviorStepOneService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/consumer-behavior/step-2/validate") @ApiOperation("消费者需求与行为第二步校验") public ResultEntity validateConsumerBehaviorStepTwo( @RequestBody ConsumerBehaviorStepTwoValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", consumerBehaviorStepTwoService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/consumer-behavior/step-3/validate") @ApiOperation("消费者需求与行为第三步校验") public ResultEntity validateConsumerBehaviorStepThree( @RequestBody ConsumerBehaviorStepThreeValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", consumerBehaviorStepThreeService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/consumer-behavior/step-4/validate") @ApiOperation("消费者需求与行为第四步校验") public ResultEntity validateConsumerBehaviorStepFour( @RequestBody ConsumerBehaviorStepFourValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验通过", consumerBehaviorStepFourService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping("/feature-conversion/step-1/validate") @ApiOperation("需求转化为功能第一步校验") public ResultEntity validateFeatureConversionStepOne( @RequestBody FeatureConversionStepOneValidationRequest answer, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "校验完成", featureConversionStepOneService.validate(answer, TokenProvider.getJWTUser(request))); } catch (ServiceException e) { return new ResultEntity<>(e.getCode(), e.getMessage()); } } @PostMapping(value = "/consumer-behavior/step-3/word-preview", consumes = "multipart/form-data") @ApiOperation("消费者需求与行为第三步Word预览") public ResultEntity previewConsumerBehaviorStepThreeWord( @RequestPart("file") MultipartFile file, HttpServletRequest request) { try { return new ResultEntity<>(HttpStatus.OK, "预览成功", consumerBehaviorStepThreeService.previewWord(file, 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()); } } }