ExamController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. package com.zhongzheng.controller.bank;
  2. import java.util.List;
  3. import java.util.Arrays;
  4. import com.zhongzheng.modules.bank.bo.*;
  5. import com.zhongzheng.modules.bank.domain.QuestionBusiness;
  6. import com.zhongzheng.modules.bank.service.IExamQuestionService;
  7. import com.zhongzheng.modules.bank.service.IExamService;
  8. import com.zhongzheng.modules.bank.service.IQuestionBusinessService;
  9. import com.zhongzheng.modules.bank.vo.ExamQuestionVo;
  10. import com.zhongzheng.modules.bank.vo.ExamVo;
  11. import lombok.RequiredArgsConstructor;
  12. import org.springframework.security.access.prepost.PreAuthorize;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.GetMapping;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.PutMapping;
  17. import org.springframework.web.bind.annotation.DeleteMapping;
  18. import org.springframework.web.bind.annotation.PathVariable;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import com.zhongzheng.common.annotation.Log;
  23. import com.zhongzheng.common.core.controller.BaseController;
  24. import com.zhongzheng.common.core.domain.AjaxResult;
  25. import com.zhongzheng.common.enums.BusinessType;
  26. import com.zhongzheng.common.utils.poi.ExcelUtil;
  27. import com.zhongzheng.common.core.page.TableDataInfo;
  28. import io.swagger.annotations.Api;
  29. import io.swagger.annotations.ApiOperation;
  30. /**
  31. * 试卷Controller
  32. *
  33. * @author hjl
  34. * @date 2021-10-22
  35. */
  36. @Api(value = "试卷控制器", tags = {"试卷管理"})
  37. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  38. @RestController
  39. @RequestMapping("/bank/exam")
  40. public class ExamController extends BaseController {
  41. private final IExamService iExamService;
  42. private final IQuestionBusinessService iQuestionBusinessService;
  43. private final IExamQuestionService iExamQuestionService;
  44. /**
  45. * 查询试卷列表
  46. */
  47. @ApiOperation("查询试卷列表")
  48. @PreAuthorize("@ss.hasPermi('system:exam:list')")
  49. @GetMapping("/list")
  50. public TableDataInfo<ExamVo> list(ExamQueryBo bo) {
  51. startPage();
  52. List<ExamVo> list = iExamService.getList(bo);
  53. return getDataTable(list);
  54. }
  55. /**
  56. * 试卷批量删除
  57. */
  58. @ApiOperation("试卷批量删除")
  59. @PostMapping("/batch/del")
  60. public AjaxResult<Void> batchDelExam(@RequestBody QuestionBatchDelBo bo) {
  61. return toAjax(iExamService.batchDelExam(bo) ? 1 : 0);
  62. }
  63. /**
  64. * 导出试卷列表
  65. */
  66. /* @ApiOperation("导出试卷列表")
  67. @PreAuthorize("@ss.hasPermi('system:exam:export')")
  68. @Log(title = "试卷", businessType = BusinessType.EXPORT)
  69. @GetMapping("/export")
  70. public AjaxResult<ExamVo> export(ExamQueryBo bo) {
  71. List<ExamVo> list = iExamService.queryList(bo);
  72. ExcelUtil<ExamVo> util = new ExcelUtil<ExamVo>(ExamVo.class);
  73. return util.exportExcel(list, "试卷");
  74. }*/
  75. /**
  76. * 获取试卷详细信息
  77. */
  78. @ApiOperation("获取试卷详细信息")
  79. @PreAuthorize("@ss.hasPermi('system:exam:query')")
  80. @GetMapping("/{examId}")
  81. public AjaxResult<ExamVo> getInfo(@PathVariable("examId" ) Long examId) {
  82. return AjaxResult.success(iExamService.queryById(examId));
  83. }
  84. /**
  85. * 新增试卷
  86. */
  87. @ApiOperation("新增试卷")
  88. @PreAuthorize("@ss.hasPermi('system:exam:add')")
  89. @Log(title = "试卷", businessType = BusinessType.INSERT)
  90. @PostMapping()
  91. public AjaxResult<ExamVo> add(@RequestBody ExamAddBo bo) {
  92. return AjaxResult.success(iExamService.insertByAddBo(bo));
  93. }
  94. /**
  95. * 新增试卷
  96. */
  97. @ApiOperation("批量新增试卷")
  98. @PreAuthorize("@ss.hasPermi('system:exam:add')")
  99. @Log(title = "试卷", businessType = BusinessType.INSERT)
  100. @PostMapping("/addMore")
  101. public AjaxResult<List<Long>> addMore(@RequestBody List<ExamAddBo> list) {
  102. return AjaxResult.success(iExamService.insertByAddBoMore(list));
  103. }
  104. /**
  105. * 修改试卷
  106. */
  107. @ApiOperation("修改试卷")
  108. @PreAuthorize("@ss.hasPermi('system:exam:edit')")
  109. @Log(title = "试卷", businessType = BusinessType.UPDATE)
  110. @PostMapping("/edit")
  111. public AjaxResult<Void> edit(@RequestBody ExamEditBo bo) {
  112. return toAjax(iExamService.updateByEditBo(bo) ? 1 : 0);
  113. }
  114. /**
  115. * 删除试卷
  116. */
  117. /* @ApiOperation("删除试卷")
  118. @PreAuthorize("@ss.hasPermi('system:exam:remove')")
  119. @Log(title = "试卷" , businessType = BusinessType.DELETE)
  120. @DeleteMapping("/{examIds}")
  121. public AjaxResult<Void> remove(@PathVariable Long[] examIds) {
  122. return toAjax(iExamService.deleteWithValidByIds(Arrays.asList(examIds), true) ? 1 : 0);
  123. }*/
  124. /**
  125. * 查询题目业务层次关系列表
  126. */
  127. @ApiOperation("查询业务层次关系列表")
  128. @PreAuthorize("@ss.hasPermi('system:business:list')")
  129. @GetMapping("/business/list")
  130. public TableDataInfo<QuestionBusiness> businessList(QuestionBusinessQueryBo bo) {
  131. startPage();
  132. bo.setType(QuestionBusiness.TYPE_EXAM);
  133. List<QuestionBusiness> list = iQuestionBusinessService.getListById(bo);
  134. return getDataTable(list);
  135. }
  136. /**
  137. * 查询题目业务层次关系列表
  138. */
  139. @ApiOperation("查询题目列表")
  140. @PreAuthorize("@ss.hasPermi('system:business:list')")
  141. @GetMapping("/question/list")
  142. public AjaxResult<List<ExamQuestionVo>> questionList(ExamQuestionQueryBo bo) {
  143. List<ExamQuestionVo> list = iExamQuestionService.getList(bo);
  144. return AjaxResult.success(list);
  145. }
  146. }