package jnpf.tmsController; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jnpf.base.ActionResult; import jnpf.base.vo.PageListVO; import jnpf.base.vo.PaginationVO; import jnpf.tmsEntity.question.TmsQuestionBankOption; import jnpf.tmsEntity.question.TmsQuestionForm; import jnpf.tmsEntity.question.TmsQuestionQuery; import jnpf.tmsService.TmsQuestionService; import jnpf.util.JsonUtil; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; 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.PutMapping; 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; import java.util.Map; /** * 试题 CRUD。网关 /api/tms/question/** (StripPrefix=2)→ /question/** */ @Tag(name = "TMS试题", description = "Question") @RestController @RequestMapping("/question") @RequiredArgsConstructor public class TmsQuestionController { private final TmsQuestionService questionService; @Operation(summary = "题库下拉") @GetMapping("/banks") public ActionResult> banks() { return ActionResult.success(questionService.listBanks()); } @Operation(summary = "管理员下拉") @GetMapping("/admins") public ActionResult>> admins() { return ActionResult.success(questionService.listAdmins()); } @Operation(summary = "试题分页列表") @GetMapping("/list") public ActionResult> list(TmsQuestionQuery query) { List list = questionService.getList(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(questionService.getInfo(id)); } @Operation(summary = "新增试题") @PostMapping public ActionResult create(@RequestBody TmsQuestionForm form) { return ActionResult.success(questionService.create(form)); } @Operation(summary = "更新试题") @PutMapping("/{id}") public ActionResult update(@PathVariable("id") String id, @RequestBody TmsQuestionForm form) { questionService.update(id, form); return ActionResult.success("更新成功"); } @Operation(summary = "废弃试题(逻辑删除)") @PutMapping("/{id}/invalidate") public ActionResult invalidate(@PathVariable("id") String id) { questionService.invalidate(id); return ActionResult.success("废弃成功"); } @Operation(summary = "废弃试题(逻辑删除)") @DeleteMapping("/{id}") public ActionResult delete(@PathVariable("id") String id) { questionService.invalidate(id); return ActionResult.success("废弃成功"); } }