Browse Source

api注解

yangfeng 2 years ago
parent
commit
b8963fcc78

+ 17 - 18
web/src/main/java/com/yntravelsky/buss/exam/exam/controller/ExamController.java

@@ -51,7 +51,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param req
      * @return
      */
-    @ApiOperation(value = "exam-分页列表查询", notes = "exam-分页列表查询")
+    @ApiOperation(value = "考试-分页列表查询", notes = "考试-分页列表查询")
     @RequiresPermissions("exam:list")
     @GetMapping(value = "/list")
     public Result<IPage<Exam>> queryPageList(Exam exam,
@@ -70,8 +70,8 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param exam
      * @return
      */
-    @AutoLog(value = "exam-添加")
-    @ApiOperation(value = "exam-添加", notes = "exam-添加")
+    @AutoLog(value = "考试-添加")
+    @ApiOperation(value = "考试-添加", notes = "考试-添加")
     @RequiresPermissions("exam:add")
     @PostMapping(value = "/add")
     public Result<String> add(@RequestBody Exam exam) {
@@ -85,8 +85,8 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param exam
      * @return
      */
-    @AutoLog(value = "exam-编辑")
-    @ApiOperation(value = "exam-编辑", notes = "exam-编辑")
+    @AutoLog(value = "考试-编辑")
+    @ApiOperation(value = "考试-编辑", notes = "考试-编辑")
     @RequiresPermissions("exam:edit")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> edit(@RequestBody Exam exam) {
@@ -100,8 +100,8 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param id
      * @return
      */
-    @AutoLog(value = "exam-通过id删除")
-    @ApiOperation(value = "exam-通过id删除", notes = "exam-通过id删除")
+    @AutoLog(value = "考试-通过id删除")
+    @ApiOperation(value = "考试-通过id删除", notes = "考试-通过id删除")
     @RequiresPermissions("exam:delete")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
@@ -115,8 +115,8 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param ids
      * @return
      */
-    @AutoLog(value = "exam-批量删除")
-    @ApiOperation(value = "exam-批量删除", notes = "exam-批量删除")
+    @AutoLog(value = "考试-批量删除")
+    @ApiOperation(value = "考试-批量删除", notes = "考试-批量删除")
     @RequiresPermissions("exam:delete")
     @DeleteMapping(value = "/deleteBatch")
     public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
@@ -130,7 +130,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param id
      * @return
      */
-    @ApiOperation(value = "exam-通过id查询", notes = "exam-通过id查询")
+    @ApiOperation(value = "考试-通过id查询", notes = "考试-通过id查询")
     @GetMapping(value = "/queryById")
     public Result<Exam> queryById(@RequestParam(name = "id", required = true) String id) {
         Exam exam = examService.detail(id);
@@ -147,8 +147,8 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param pageSize
      * @return
      */
-    @AutoLog(value = "exam-在线考试")
-    @ApiOperation(value = "exam-在线考试", notes = "exam-在线考试")
+    @AutoLog(value = "考试-在线考试")
+    @ApiOperation(value = "考试-在线考试", notes = "考试-在线考试")
     @RequiresPermissions("exam:onlineExam")
     @RequestMapping(value = "/onlineExam", method = RequestMethod.GET)
     public Result<IPage<Exam>> onlineExam(Exam exam, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@@ -161,7 +161,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
         return result;
     }
 
-    @ApiOperation(value = "获取正在进行的考试")
+    @ApiOperation(value = "考试-获取正在进行的考试")
     @GetMapping(value = "/listExamIn")
     public Result<?> listExamIn() {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -178,7 +178,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      *
      * @return
      */
-    @ApiOperation(value = "创建考试")
+    @ApiOperation(value = "考试-创建考试")
     @RequiresPermissions("exam:createExam")
     @GetMapping(value = "/createExam")
     public Result<?> createExam(@RequestParam(name = "examId") String examId) {
@@ -191,7 +191,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      *
      * @return
      */
-    @ApiOperation(value = "考试详情")
+    @ApiOperation(value = "考试-考试详情")
     @GetMapping(value = "/examDetail")
     public Result<?> examDetail(@RequestParam(name = "userExamId") String userExamId) {
         return Result.ok(examService.examDetail(userExamId));
@@ -202,7 +202,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      *
      * @return
      */
-    @ApiOperation(value = "交卷")
+    @ApiOperation(value = "考试-交卷")
     @PostMapping(value = "/submitExam")
     public Result<?> submitExam(@RequestBody ExamSubmitDTO dto) {
         examService.submitExam(dto);
@@ -215,7 +215,7 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      * @param userExamId
      * @return
      */
-    @ApiOperation(value = "用户考试成绩详情,包括答题卡,试题(包含正确答案)")
+    @ApiOperation(value = "考试-用户考试成绩详情")
     @GetMapping(value = "/userExamResultDetail")
     public Result<?> userExamResultDetail(@RequestParam(name = "userExamId") String userExamId) {
         return Result.ok(examService.userExamResultDetail(userExamId));
@@ -226,7 +226,6 @@ public class ExamController extends JeecgController<Exam, IExamService> {
      *
      * @return
      */
-    @ApiOperation(value = "缓存考试答案")
     @PostMapping(value = "/cacheExamAnswer")
     public Result<?> cacheExamAnswer(@RequestBody ExamSubmitDTO dto) {
         examService.cacheExamAnswer(dto);

+ 25 - 42
web/src/main/java/com/yntravelsky/buss/exam/examstatistics/controller/ExamStatisticsController.java

@@ -1,50 +1,32 @@
 package com.yntravelsky.buss.exam.examstatistics.controller;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import com.yntravelsky.buss.exam.examstatistics.entity.ExamStatistics;
-import com.yntravelsky.buss.exam.examstatistics.service.IExamStatisticsService;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yntravelsky.buss.exam.examstatistics.entity.ExamStatistics;
+import com.yntravelsky.buss.exam.examstatistics.service.IExamStatisticsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
 
 /**
- * @Description: 考试统计
+ * @Description: 考试统计
  * @Author: jeecg-boot
  * @Date: 2023-03-20
  * @Version: V1.0
  */
-@Api(tags = "考试统计")
+@Api(tags = "考试统计")
 @RestController
 @RequestMapping("/examStatistics")
 @Slf4j
@@ -61,7 +43,7 @@ public class ExamStatisticsController extends JeecgController<ExamStatistics, IE
      * @param req
      * @return
      */
-    @ApiOperation(value = "考试统计-分页列表查询", notes = "考试统计-分页列表查询")
+    @ApiOperation(value = "考试统计-分页列表查询", notes = "考试统计-分页列表查询")
     @RequiresPermissions("examStatistics:list")
     @GetMapping(value = "/list")
     public Result<IPage<ExamStatistics>> queryPageList(ExamStatistics examStatistics,
@@ -80,8 +62,8 @@ public class ExamStatisticsController extends JeecgController<ExamStatistics, IE
      * @param examStatistics
      * @return
      */
-    @AutoLog(value = "考试统计-添加")
-    @ApiOperation(value = "考试统计-添加", notes = "考试统计-添加")
+    @AutoLog(value = "考试统计-添加")
+    @ApiOperation(value = "考试统计-添加", notes = "考试统计-添加")
     //@RequiresPermissions("examStatistics:add")
     @PostMapping(value = "/add")
     public Result<String> add(@RequestBody ExamStatistics examStatistics) {
@@ -95,8 +77,8 @@ public class ExamStatisticsController extends JeecgController<ExamStatistics, IE
      * @param examStatistics
      * @return
      */
-    @AutoLog(value = "考试统计-编辑")
-    @ApiOperation(value = "考试统计-编辑", notes = "考试统计-编辑")
+    @AutoLog(value = "考试统计-编辑")
+    @ApiOperation(value = "考试统计-编辑", notes = "考试统计-编辑")
     //@RequiresPermissions("examStatistics:edit")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> edit(@RequestBody ExamStatistics examStatistics) {
@@ -110,8 +92,8 @@ public class ExamStatisticsController extends JeecgController<ExamStatistics, IE
      * @param id
      * @return
      */
-    @AutoLog(value = "考试统计-通过id删除")
-    @ApiOperation(value = "考试统计-通过id删除", notes = "考试统计-通过id删除")
+    @AutoLog(value = "考试统计-通过id删除")
+    @ApiOperation(value = "考试统计-通过id删除", notes = "考试统计-通过id删除")
     //@RequiresPermissions("examStatistics:delete")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
@@ -125,8 +107,8 @@ public class ExamStatisticsController extends JeecgController<ExamStatistics, IE
      * @param ids
      * @return
      */
-    @AutoLog(value = "考试统计-批量删除")
-    @ApiOperation(value = "考试统计-批量删除", notes = "考试统计-批量删除")
+    @AutoLog(value = "考试统计-批量删除")
+    @ApiOperation(value = "考试统计-批量删除", notes = "考试统计-批量删除")
     //@RequiresPermissions("examStatistics:deleteBatch")
     @DeleteMapping(value = "/deleteBatch")
     public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
@@ -140,8 +122,8 @@ public class ExamStatisticsController extends JeecgController<ExamStatistics, IE
      * @param id
      * @return
      */
-    //@AutoLog(value = "考试统计-通过id查询")
-    @ApiOperation(value = "考试统计-通过id查询", notes = "考试统计-通过id查询")
+    //@AutoLog(value = "考试统计-通过id查询")
+    @ApiOperation(value = "考试统计-通过id查询", notes = "考试统计-通过id查询")
     @GetMapping(value = "/queryById")
     public Result<ExamStatistics> queryById(@RequestParam(name = "id", required = true) String id) {
         ExamStatistics examStatistics = examStatisticsService.getById(id);
@@ -169,6 +151,7 @@ public class ExamStatisticsController extends JeecgController<ExamStatistics, IE
      * @param examId
      * @return
      */
+    @ApiOperation(value = "考试统计-考试结果统计", notes = "考试统计-考试结果统计")
     @GetMapping(value = "/calcExamDimension")
     public Result<?> calcExamDimension(String examId) {
         return Result.OK(examStatisticsService.calcExamDimension(examId));

+ 12 - 11
web/src/main/java/com/yntravelsky/buss/exam/paper/controller/PaperController.java

@@ -26,7 +26,7 @@ import javax.servlet.http.HttpServletRequest;
  * @Date: 2023-02-22
  * @Version: V1.0
  */
-@Api(tags = "paper")
+@Api(tags = "试卷")
 @RestController
 @RequestMapping("/paper")
 @Slf4j
@@ -46,7 +46,7 @@ public class PaperController extends JeecgController<Paper, IPaperService> {
      * @param req
      * @return
      */
-    @ApiOperation(value = "paper-分页列表查询", notes = "paper-分页列表查询")
+    @ApiOperation(value = "试卷-分页列表查询", notes = "试卷-分页列表查询")
     @RequiresPermissions("paper:list")
     @GetMapping(value = "/list")
     public Result<IPage<Paper>> queryPageList(Paper paper,
@@ -65,8 +65,8 @@ public class PaperController extends JeecgController<Paper, IPaperService> {
      * @param paperDTO
      * @return
      */
-    @AutoLog(value = "paper-保存")
-    @ApiOperation(value = "paper-保存", notes = "paper-保存")
+    @AutoLog(value = "试卷-保存")
+    @ApiOperation(value = "试卷-保存", notes = "试卷-保存")
     @RequiresPermissions("paper:save")
     @RequestMapping(value = "/save", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> save(@RequestBody PaperDTO paperDTO) {
@@ -79,8 +79,8 @@ public class PaperController extends JeecgController<Paper, IPaperService> {
      *
      * @return
      */
-    @AutoLog(value = "paper-生成试卷试题")
-    @ApiOperation(value = "paper-生成试卷试题", notes = "paper-生成试卷试题")
+    @AutoLog(value = "试卷-生成试卷试题")
+    @ApiOperation(value = "试卷-生成试卷试题", notes = "试卷-生成试卷试题")
     @RequiresPermissions("paper:generateQuestion")
     @RequestMapping(value = "/generateQuestion", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> generateQuestion(String paperId) {
@@ -94,8 +94,8 @@ public class PaperController extends JeecgController<Paper, IPaperService> {
      * @param id
      * @return
      */
-    @AutoLog(value = "paper-通过id删除")
-    @ApiOperation(value = "paper-通过id删除", notes = "paper-通过id删除")
+    @AutoLog(value = "试卷-通过id删除")
+    @ApiOperation(value = "试卷-通过id删除", notes = "试卷-通过id删除")
     @RequiresPermissions("paper:delete")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
@@ -109,8 +109,8 @@ public class PaperController extends JeecgController<Paper, IPaperService> {
      * @param ids
      * @return
      */
-    @AutoLog(value = "paper-批量删除")
-    @ApiOperation(value = "paper-批量删除", notes = "paper-批量删除")
+    @AutoLog(value = "试卷-批量删除")
+    @ApiOperation(value = "试卷-批量删除", notes = "试卷-批量删除")
     @RequiresPermissions("paper:delete")
     @DeleteMapping(value = "/deleteBatch")
     public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
@@ -124,7 +124,7 @@ public class PaperController extends JeecgController<Paper, IPaperService> {
      * @param id
      * @return
      */
-    @ApiOperation(value = "paper-通过id查询", notes = "paper-通过id查询")
+    @ApiOperation(value = "试卷-通过id查询", notes = "试卷-通过id查询")
     @GetMapping(value = "/queryById")
     public Result<PaperDTO> queryById(@RequestParam(name = "id", required = true) String id) {
         return Result.ok(paperService.detail(id));
@@ -136,6 +136,7 @@ public class PaperController extends JeecgController<Paper, IPaperService> {
      * @param id
      * @return
      */
+    @ApiOperation(value = "试卷-检查试卷是否已经被用于考试", notes = "试卷-检查试卷是否已经被用于考试")
     @GetMapping(value = "/checkIsUsedInExam")
     public Result<?> checkIsUsedInExam(@RequestParam(name = "id", required = true) String id) {
         return Result.OK(examService.checkIsUsedInExam(id));

+ 16 - 0
web/src/main/java/com/yntravelsky/buss/exam/paperquestion/service/IPaperQuestionService.java

@@ -30,4 +30,20 @@ public interface IPaperQuestionService extends IService<PaperQuestion> {
     List<PaperQuestion> listByPaperId(String paperId);
 
     void removeByQuestionIds(String[] paperIds);
+
+    /**
+     * 检查题目列表是否已经被试卷使用
+     *
+     * @param questionIds
+     * @return
+     */
+    boolean checkIsUsedInPaper(String[] questionIds);
+
+    /**
+     * 检查题目是否已经被试卷使用
+     *
+     * @param questionId
+     * @return
+     */
+    boolean checkIsUsedInPaper(String questionId);
 }

+ 27 - 0
web/src/main/java/com/yntravelsky/buss/exam/paperquestion/service/impl/PaperQuestionServiceImpl.java

@@ -1,5 +1,6 @@
 package com.yntravelsky.buss.exam.paperquestion.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yntravelsky.buss.exam.paperquestion.entity.PaperQuestion;
@@ -94,4 +95,30 @@ public class PaperQuestionServiceImpl extends ServiceImpl<PaperQuestionMapper, P
         wrapper.lambda().in(PaperQuestion::getPaperId, paperIds);
         this.remove(wrapper);
     }
+
+    /**
+     * 检查题目列表是否已经被试卷使用
+     *
+     * @param questionIds
+     * @return
+     */
+    @Override
+    public boolean checkIsUsedInPaper(String[] questionIds) {
+        LambdaQueryWrapper<PaperQuestion> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(PaperQuestion::getQuestionId, questionIds);
+        return this.count(wrapper) > 0 ? true : false;
+    }
+
+    /**
+     * 检查题目是否已经被试卷使用
+     *
+     * @param questionId
+     * @return
+     */
+    @Override
+    public boolean checkIsUsedInPaper(String questionId) {
+        LambdaQueryWrapper<PaperQuestion> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PaperQuestion::getQuestionId, questionId);
+        return this.count(wrapper) > 0 ? true : false;
+    }
 }

+ 31 - 14
web/src/main/java/com/yntravelsky/buss/exam/question/controller/QuestionController.java

@@ -5,11 +5,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yntravelsky.buss.exam.paperquestion.service.IPaperQuestionService;
 import com.yntravelsky.buss.exam.paperruledetail.dto.RuleDetailDTO;
 import com.yntravelsky.buss.exam.paperruledetail.entity.PaperRuleDetail;
+import com.yntravelsky.buss.exam.question.dto.QuestionDTO;
 import com.yntravelsky.buss.exam.question.dto.QuestionDetailDTO;
 import com.yntravelsky.buss.exam.question.entity.Question;
-import com.yntravelsky.buss.exam.question.dto.QuestionDTO;
 import com.yntravelsky.buss.exam.question.service.IQuestionService;
 import com.yntravelsky.buss.exam.questionanswer.entity.QuestionAnswer;
 import com.yntravelsky.buss.exam.questionanswer.service.IQuestionAnswerService;
@@ -29,7 +30,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -44,7 +44,7 @@ import java.util.stream.Collectors;
  * @Date: 2023-02-22
  * @Version: V1.0
  */
-@Api(tags = "question")
+@Api(tags = "题目")
 @RestController
 @RequestMapping("/question")
 @Slf4j
@@ -58,6 +58,9 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
     @Autowired
     private IQuestionAnswerService questionAnswerService;
 
+    @Autowired
+    private IPaperQuestionService paperQuestionService;
+
     /**
      * 分页列表查询
      *
@@ -67,7 +70,7 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
      * @param req
      * @return
      */
-    @ApiOperation(value = "question-分页列表查询", notes = "question-分页列表查询")
+    @ApiOperation(value = "题目-分页列表查询", notes = "题目-分页列表查询")
     @RequiresPermissions("question:list")
     @GetMapping(value = "/list")
     public Result<IPage<Question>> queryPageList(Question question,
@@ -92,12 +95,12 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
     }
 
     /**
-     * 添加或修改
+     * 保存
      *
      * @param reqDTO
      * @return
      */
-    @ApiOperation(value = "添加或修改")
+    @ApiOperation(value = "题目-保存")
     @RequiresPermissions("question:save")
     @RequestMapping(value = "/save", method = {RequestMethod.POST})
     public Result<String> save(@RequestBody QuestionDetailDTO reqDTO) {
@@ -111,8 +114,8 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
      * @param id
      * @return
      */
-    @AutoLog(value = "question-通过id删除")
-    @ApiOperation(value = "question-通过id删除", notes = "question-通过id删除")
+    @AutoLog(value = "题目-通过id删除")
+    @ApiOperation(value = "题目-通过id删除", notes = "题目-通过id删除")
     @RequiresPermissions("question:delete")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
@@ -125,7 +128,7 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
      *
      * @return
      */
-    @ApiOperation(value = "导入题目")
+    @ApiOperation(value = "题目-导入题目")
     @RequiresPermissions("question:import")
     @RequestMapping(value = "/importExcel", method = {RequestMethod.POST})
     public Result<String> importExcel(MultipartFile file) throws Exception {
@@ -139,8 +142,8 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
      * @param ids
      * @return
      */
-    @AutoLog(value = "question-批量删除")
-    @ApiOperation(value = "question-批量删除", notes = "question-批量删除")
+    @AutoLog(value = "题目-批量删除")
+    @ApiOperation(value = "题目-批量删除", notes = "题目-批量删除")
     @RequiresPermissions("question:delete")
     @DeleteMapping(value = "/deleteBatch")
     public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
@@ -154,7 +157,7 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
      * @param id
      * @return
      */
-    @ApiOperation(value = "question-通过id查询", notes = "question-通过id查询")
+    @ApiOperation(value = "题目-通过id查询", notes = "题目-通过id查询")
     @GetMapping(value = "/queryById")
     public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
         Question question = questionService.getById(id);
@@ -172,7 +175,7 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
     /**
      * 下载导入模板
      */
-    @ApiOperation(value = "question-下载导入模板", notes = "question-下载导入模板")
+    @ApiOperation(value = "题目-下载导入模板", notes = "题目-下载导入模板")
     @RequiresPermissions("question:downloadTemplate")
     @GetMapping(value = "/downloadTemplate")
     public void downloadTemplate(HttpServletResponse response) throws Exception {
@@ -180,13 +183,14 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
     }
 
     /**
-     * 分页列表查询
+     * 列表查询
      *
      * @param question
      * @param pageNo
      * @param pageSize
      * @return
      */
+    @ApiOperation(value = "题目-列表查询", notes = "题目-列表查询")
     @GetMapping(value = "/queryPageList")
     public Result<IPage<Question>> queryList(Question question,
                                              @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@@ -214,6 +218,7 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
      *
      * @return
      */
+    @ApiOperation(value = "题目-按照难度分组查询", notes = "题目-按照难度分组查询")
     @PostMapping(value = "/groupLevelById")
     public Result<List<QuestionDTO>> groupLevelById(@RequestBody RuleDetailDTO ruleDetailDTO) {
         if (StringUtils.isBlank(ruleDetailDTO.getRepositoryIds())) {
@@ -237,4 +242,16 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
         return Result.OK(questionDTOs);
     }
 
+    /**
+     * 检查题目是否已经被试卷使用
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "题目-检查题目是否已经被试卷使用", notes = "题目-检查题目是否已经被试卷使用")
+    @GetMapping(value = "/checkIsUsedInPaper")
+    public Result<?> checkIsUsedInPaper(@RequestParam(name = "id", required = true) String id) {
+        return Result.OK(paperQuestionService.checkIsUsedInPaper(id));
+    }
+
 }

+ 11 - 11
web/src/main/java/com/yntravelsky/buss/exam/repository/controller/RepositoryController.java

@@ -26,7 +26,7 @@ import java.util.List;
  * @Date: 2023-02-22
  * @Version: V1.0
  */
-@Api(tags = "repository")
+@Api(tags = "题库")
 @RestController
 @RequestMapping("/repository")
 @Slf4j
@@ -55,7 +55,7 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
      * @param req
      * @return
      */
-    @ApiOperation(value = "repository-分页列表查询", notes = "repository-分页列表查询")
+    @ApiOperation(value = "题库-分页列表查询", notes = "题库-分页列表查询")
     @GetMapping(value = "/list")
     @RequiresPermissions("repository:list")
     public Result<IPage<Repository>> queryPageList(Repository repository,
@@ -74,8 +74,8 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
      * @param repository
      * @return
      */
-    @AutoLog(value = "repository-添加")
-    @ApiOperation(value = "repository-添加", notes = "repository-添加")
+    @AutoLog(value = "题库-添加")
+    @ApiOperation(value = "题库-添加", notes = "题库-添加")
     @RequiresPermissions("repository:add")
     @PostMapping(value = "/add")
     public Result<String> add(@RequestBody Repository repository) {
@@ -89,8 +89,8 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
      * @param repository
      * @return
      */
-    @AutoLog(value = "repository-编辑")
-    @ApiOperation(value = "repository-编辑", notes = "repository-编辑")
+    @AutoLog(value = "题库-编辑")
+    @ApiOperation(value = "题库-编辑", notes = "题库-编辑")
     @RequiresPermissions("repository:edit")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> edit(@RequestBody Repository repository) {
@@ -104,8 +104,8 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
      * @param id
      * @return
      */
-    @AutoLog(value = "repository-通过id删除")
-    @ApiOperation(value = "repository-通过id删除", notes = "repository-通过id删除")
+    @AutoLog(value = "题库-通过id删除")
+    @ApiOperation(value = "题库-通过id删除", notes = "题库-通过id删除")
     @RequiresPermissions("repository:delete")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
@@ -119,8 +119,8 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
      * @param ids
      * @return
      */
-    @AutoLog(value = "repository-批量删除")
-    @ApiOperation(value = "repository-批量删除", notes = "repository-批量删除")
+    @AutoLog(value = "题库-批量删除")
+    @ApiOperation(value = "题库-批量删除", notes = "题库-批量删除")
     @RequiresPermissions("repository:delete")
     @DeleteMapping(value = "/deleteBatch")
     public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
@@ -134,7 +134,7 @@ public class RepositoryController extends JeecgController<Repository, IRepositor
      * @param id
      * @return
      */
-    @ApiOperation(value = "repository-通过id查询", notes = "repository-通过id查询")
+    @ApiOperation(value = "题库-通过id查询", notes = "题库-通过id查询")
     @GetMapping(value = "/queryById")
     public Result<Repository> queryById(@RequestParam(name = "id", required = true) String id) {
         Repository repository = repositoryService.getById(id);

+ 137 - 154
web/src/main/java/com/yntravelsky/buss/exam/userexam/controller/UserExamController.java

@@ -1,179 +1,162 @@
 package com.yntravelsky.buss.exam.userexam.controller;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.yntravelsky.buss.exam.userexam.entity.UserExam;
-import com.yntravelsky.buss.exam.userexam.service.IUserExamService;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yntravelsky.buss.exam.userexam.entity.UserExam;
+import com.yntravelsky.buss.exam.userexam.service.IUserExamService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
 
- /**
- * @Description: 用户考试表
- * @Author: jeecg-boot
- * @Date:   2023-03-05
- * @Version: V1.0
- */
-@Api(tags="用户考试表")
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+/**
+* @Description: 用户考试
+* @Author: jeecg-boot
+* @Date:   2023-03-05
+* @Version: V1.0
+*/
+@Api(tags="用户考试")
 @RestController
 @RequestMapping("/userExam")
 @Slf4j
 public class UserExamController extends JeecgController<UserExam, IUserExamService> {
-	@Autowired
-	private IUserExamService userExamService;
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param userExam
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@ApiOperation(value="用户考试表-分页列表查询", notes="用户考试表-分页列表查询")
-	@RequiresPermissions("userExam:list")
-	@GetMapping(value = "/list")
-	public Result<IPage<UserExam>> queryPageList(UserExam userExam,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<UserExam> queryWrapper = QueryGenerator.initQueryWrapper(userExam, req.getParameterMap());
-		Page<UserExam> page = new Page<UserExam>(pageNo, pageSize);
-		IPage<UserExam> pageList = userExamService.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 *   添加
-	 *
-	 * @param userExam
-	 * @return
-	 */
-	@AutoLog(value = "用户考试表-添加")
-	@ApiOperation(value="用户考试表-添加", notes="用户考试表-添加")
-	//@RequiresPermissions("userExam:add")
-	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody UserExam userExam) {
-		userExamService.save(userExam);
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param userExam
-	 * @return
-	 */
-	@AutoLog(value = "用户考试表-编辑")
-	@ApiOperation(value="用户考试表-编辑", notes="用户考试表-编辑")
-	//@RequiresPermissions("userExam:edit")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody UserExam userExam) {
-		userExamService.updateById(userExam);
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "用户考试表-通过id删除")
-	@ApiOperation(value="用户考试表-通过id删除", notes="用户考试表-通过id删除")
-	//@RequiresPermissions("userExam:delete")
-	@DeleteMapping(value = "/delete")
-	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		userExamService.removeById(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "用户考试表-批量删除")
-	@ApiOperation(value="用户考试表-批量删除", notes="用户考试表-批量删除")
-	//@RequiresPermissions("userExam:deleteBatch")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.userExamService.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	//@AutoLog(value = "用户考试表-通过id查询")
-	@ApiOperation(value="用户考试表-通过id查询", notes="用户考试表-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<UserExam> queryById(@RequestParam(name="id",required=true) String id) {
-		UserExam userExam = userExamService.getById(id);
-		if(userExam==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(userExam);
-	}
+   @Autowired
+   private IUserExamService userExamService;
+
+   /**
+    * 分页列表查询
+    *
+    * @param userExam
+    * @param pageNo
+    * @param pageSize
+    * @param req
+    * @return
+    */
+   @ApiOperation(value="用户考试-分页列表查询", notes="用户考试-分页列表查询")
+   @RequiresPermissions("userExam:list")
+   @GetMapping(value = "/list")
+   public Result<IPage<UserExam>> queryPageList(UserExam userExam,
+                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                  HttpServletRequest req) {
+       QueryWrapper<UserExam> queryWrapper = QueryGenerator.initQueryWrapper(userExam, req.getParameterMap());
+       Page<UserExam> page = new Page<UserExam>(pageNo, pageSize);
+       IPage<UserExam> pageList = userExamService.page(page, queryWrapper);
+       return Result.OK(pageList);
+   }
 
-    /**
-    * 导出excel
+   /**
+    *   添加
     *
-    * @param request
     * @param userExam
+    * @return
     */
-    //@RequiresPermissions("userExam:exportXls")
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, UserExam userExam) {
-        return super.exportXls(request, userExam, UserExam.class, "用户考试表");
-    }
+   @AutoLog(value = "用户考试-添加")
+   @ApiOperation(value="用户考试-添加", notes="用户考试-添加")
+   //@RequiresPermissions("userExam:add")
+   @PostMapping(value = "/add")
+   public Result<String> add(@RequestBody UserExam userExam) {
+       userExamService.save(userExam);
+       return Result.OK("添加成功!");
+   }
 
-    /**
-      * 通过excel导入数据
+   /**
+    *  编辑
     *
-    * @param request
-    * @param response
+    * @param userExam
     * @return
     */
-    //@RequiresPermissions("userExam:importExcel")
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, UserExam.class);
-    }
+   @AutoLog(value = "用户考试-编辑")
+   @ApiOperation(value="用户考试-编辑", notes="用户考试-编辑")
+   //@RequiresPermissions("userExam:edit")
+   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+   public Result<String> edit(@RequestBody UserExam userExam) {
+       userExamService.updateById(userExam);
+       return Result.OK("编辑成功!");
+   }
+
+   /**
+    *   通过id删除
+    *
+    * @param id
+    * @return
+    */
+   @AutoLog(value = "用户考试-通过id删除")
+   @ApiOperation(value="用户考试-通过id删除", notes="用户考试-通过id删除")
+   //@RequiresPermissions("userExam:delete")
+   @DeleteMapping(value = "/delete")
+   public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+       userExamService.removeById(id);
+       return Result.OK("删除成功!");
+   }
+
+   /**
+    *  批量删除
+    *
+    * @param ids
+    * @return
+    */
+   @AutoLog(value = "用户考试-批量删除")
+   @ApiOperation(value="用户考试-批量删除", notes="用户考试-批量删除")
+   //@RequiresPermissions("userExam:deleteBatch")
+   @DeleteMapping(value = "/deleteBatch")
+   public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+       this.userExamService.removeByIds(Arrays.asList(ids.split(",")));
+       return Result.OK("批量删除成功!");
+   }
+
+   /**
+    * 通过id查询
+    *
+    * @param id
+    * @return
+    */
+   //@AutoLog(value = "用户考试-通过id查询")
+   @ApiOperation(value="用户考试-通过id查询", notes="用户考试-通过id查询")
+   @GetMapping(value = "/queryById")
+   public Result<UserExam> queryById(@RequestParam(name="id",required=true) String id) {
+       UserExam userExam = userExamService.getById(id);
+       if(userExam==null) {
+           return Result.error("未找到对应数据");
+       }
+       return Result.OK(userExam);
+   }
+
+   /**
+   * 导出excel
+   *
+   * @param request
+   * @param userExam
+   */
+   //@RequiresPermissions("userExam:exportXls")
+   @RequestMapping(value = "/exportXls")
+   public ModelAndView exportXls(HttpServletRequest request, UserExam userExam) {
+       return super.exportXls(request, userExam, UserExam.class, "用户考试表");
+   }
+
+   /**
+     * 通过excel导入数据
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+   //@RequiresPermissions("userExam:importExcel")
+   @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+   public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+       return super.importExcel(request, response, UserExam.class);
+   }
 
 }