package jnpf.tmsController; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jnpf.annotation.HandleLog; import jnpf.base.ActionResult; import jnpf.base.vo.PageListVO; import jnpf.base.vo.PaginationVO; import jnpf.tmsEntity.person.TmsPersonTaskLearnForm; import jnpf.tmsEntity.person.TmsPersonTaskLearnResult; import jnpf.tmsEntity.person.TmsPersonTaskMineForm; import jnpf.tmsEntity.person.TmsPersonTaskQuery; import jnpf.tmsEntity.person.TmsPersonTaskSignResult; import jnpf.tmsEntity.person.TmsQuizAnswerForm; import jnpf.tmsEntity.person.TmsQuizQuestionVO; import jnpf.tmsEntity.person.TmsQuizSubmitResult; import jnpf.tmsEntity.record.TmsQuizAnswerPaperVO; import jnpf.tmsService.TmsPersonTaskService; import jnpf.util.JsonUtil; import lombok.RequiredArgsConstructor; 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 java.util.List; /** * 个人培训任务(学员端)。网关 {@code /api/tms/person-task/**} → {@code /person-task/**}。 * *

学完 / 签到 / 扫码签到;成绩由在线考试服务回写。不直接维护个人档案目录。

*/ @Tag(name = "TMS个人培训任务", description = "PersonTask") @RestController @RequestMapping("/person-task") @RequiredArgsConstructor public class TmsPersonTaskController { private final TmsPersonTaskService personTaskService; @Operation(summary = "我的个人培训任务") @GetMapping("/mine") public ActionResult> mine(TmsPersonTaskQuery query) { List list = personTaskService.getMine(query); PageListVO vo = new PageListVO<>(); vo.setList(list); vo.setPagination(JsonUtil.getJsonToBean(query, PaginationVO.class)); return ActionResult.success(vo); } @Operation(summary = "个人培训任务详情") @GetMapping("/{id}") public ActionResult info(@PathVariable("id") String id) { return ActionResult.success(personTaskService.getInfo(id)); } @HandleLog(moduleName = "个人任务", requestMethod = "签到") @Operation(summary = "在线签到") @PostMapping("/{id}/sign") public ActionResult sign(@PathVariable("id") String id) { return ActionResult.success(personTaskService.sign(id)); } @HandleLog(moduleName = "个人任务", requestMethod = "保存") @Operation(summary = "累计学习时长(学满后系统自动确认完成并提示)") @PostMapping("/{id}/learn") public ActionResult learn( @PathVariable("id") String id, @RequestBody(required = false) TmsPersonTaskLearnForm form) { return ActionResult.success(personTaskService.markLearned(id, form == null ? null : form.getSeconds())); } @Operation(summary = "签到后提问题目(不含答案)") @GetMapping("/{id}/quiz-questions") public ActionResult> quizQuestions(@PathVariable("id") String id) { return ActionResult.success(personTaskService.listQuizQuestions(id)); } @HandleLog(moduleName = "个人任务", requestMethod = "提交提问") @Operation(summary = "提交提问答案并自动判分") @PostMapping("/{id}/quiz") public ActionResult submitQuiz( @PathVariable("id") String id, @RequestBody(required = false) TmsQuizAnswerForm form) { return ActionResult.success(personTaskService.submitQuiz(id, form)); } @Operation(summary = "查看本人提问答卷") @GetMapping("/{id}/quiz-answers") public ActionResult quizAnswers(@PathVariable("id") String id) { return ActionResult.success(personTaskService.getMyQuizAnswers(id)); } }