|
|
|
|
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.dto.AiTrainingHelpRequest;
|
|
|
|
|
import com.sztzjy.linkCommerce.entity.dto.AiTrainingEvaluationView;
|
|
|
|
|
import com.sztzjy.linkCommerce.service.AiTrainingEvaluationService;
|
|
|
|
|
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.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;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
|
|
|
|
@Api(tags = "Student AI training evaluation")
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("api/student/training-tasks/{taskKey}/ai-evaluation")
|
|
|
|
|
public class AiTrainingEvaluationController {
|
|
|
|
|
@Autowired
|
|
|
|
|
protected AiTrainingEvaluationService aiTrainingEvaluationService;
|
|
|
|
|
|
|
|
|
|
@GetMapping
|
|
|
|
|
@ApiOperation("Get the current student's AI training evaluation")
|
|
|
|
|
public ResultEntity<AiTrainingEvaluationView> get(@PathVariable String taskKey, HttpServletRequest request) {
|
|
|
|
|
try {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.OK, "Query succeeded",
|
|
|
|
|
aiTrainingEvaluationService.get(taskKey, currentUser(request)));
|
|
|
|
|
} catch (ServiceException e) {
|
|
|
|
|
return new ResultEntity<>(e.getCode(), e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/help")
|
|
|
|
|
@ApiOperation("Generate AI learning help")
|
|
|
|
|
public ResultEntity<AiTrainingEvaluationView> help(@PathVariable String taskKey,
|
|
|
|
|
@RequestBody(required = false) AiTrainingHelpRequest body,
|
|
|
|
|
HttpServletRequest request) {
|
|
|
|
|
try {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.OK, "AI help generated",
|
|
|
|
|
aiTrainingEvaluationService.generateHelp(taskKey, currentUser(request), body == null ? null : body.getQuestion()));
|
|
|
|
|
} catch (ServiceException e) {
|
|
|
|
|
return new ResultEntity<>(e.getCode(), e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/assessment")
|
|
|
|
|
@ApiOperation("Generate AI assessment")
|
|
|
|
|
public ResultEntity<AiTrainingEvaluationView> assessment(@PathVariable String taskKey, HttpServletRequest request) {
|
|
|
|
|
try {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.OK, "AI assessment generated",
|
|
|
|
|
aiTrainingEvaluationService.generateAssessment(taskKey, currentUser(request)));
|
|
|
|
|
} catch (ServiceException e) {
|
|
|
|
|
return new ResultEntity<>(e.getCode(), e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected JwtUser currentUser(HttpServletRequest request) {
|
|
|
|
|
return TokenProvider.getJWTUser(request);
|
|
|
|
|
}
|
|
|
|
|
}
|