فهرست منبع

新增swagger注释

yin 4 روز پیش
والد
کامیت
88f3a0548a

+ 195 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/ProblemHistoryController.java

@@ -0,0 +1,195 @@
+package cn.com.qmth.stmms.api.controller.admin;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import com.qmth.boot.core.collection.PageResult;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.qmth.boot.core.exception.StatusException;
+
+import cn.com.qmth.stmms.admin.dto.ProblemHistoryDTO;
+import cn.com.qmth.stmms.api.controller.BaseApiController;
+import cn.com.qmth.stmms.biz.exam.bean.ResultMessage;
+import cn.com.qmth.stmms.biz.exam.model.Exam;
+import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
+import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
+import cn.com.qmth.stmms.biz.lock.LockService;
+import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
+import cn.com.qmth.stmms.biz.mark.model.ProblemHistory;
+import cn.com.qmth.stmms.biz.mark.model.ProblemType;
+import cn.com.qmth.stmms.biz.mark.query.ProblemHistorySearchQuery;
+import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
+import cn.com.qmth.stmms.biz.mark.service.MarkService;
+import cn.com.qmth.stmms.biz.mark.service.ProblemHistoryService;
+import cn.com.qmth.stmms.biz.mark.service.ProblemTypeService;
+import cn.com.qmth.stmms.biz.user.model.User;
+import cn.com.qmth.stmms.biz.user.service.UserService;
+import cn.com.qmth.stmms.common.annotation.Logging;
+import cn.com.qmth.stmms.common.domain.ApiUser;
+import cn.com.qmth.stmms.common.enums.HistoryStatus;
+import cn.com.qmth.stmms.common.enums.LibraryStatus;
+import cn.com.qmth.stmms.common.enums.LockType;
+import cn.com.qmth.stmms.common.enums.LogType;
+import cn.com.qmth.stmms.common.utils.DateUtils;
+import cn.com.qmth.stmms.common.utils.ExportExcel;
+import cn.com.qmth.stmms.common.utils.RequestUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api(tags = "问题试卷")
+@Controller("adminProblemHistoryController")
+@RequestMapping("/api/admin/exam/problem/history")
+public class ProblemHistoryController extends BaseApiController {
+
+    protected static Logger log = LoggerFactory.getLogger(ProblemHistoryController.class);
+
+    public static HistoryStatus[] STATUS_LIST = { HistoryStatus.WAITING, HistoryStatus.BACK };
+
+    private static final String DEFAULT_SECRET_NUMBER = "***";
+    @Autowired
+    private ProblemTypeService problemService;
+
+    @Autowired
+    private ProblemHistoryService historyService;
+    private ExamService examService;
+
+    @Autowired
+    private MarkGroupService groupService;
+    @Autowired
+    private ExamStudentService studentService;
+
+    @Autowired
+    private ExamQuestionService questionService;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private MarkLibraryService libraryService;
+
+    @Autowired
+    private LockService lockService;
+
+    @Autowired
+    private MarkService markService;
+
+    @ApiOperation(value = "问题卷列表")
+    @Logging(menu = "查询问题卷", type = LogType.QUERY)
+    @RequestMapping(value = "query", method = RequestMethod.POST)
+    @ResponseBody
+    public PageResult<ProblemHistory> query(ProblemHistorySearchQuery query) {
+        return null;
+    }
+
+    @ApiOperation(value = "问题卷重置")
+    @Logging(menu = "问题卷重置", type = LogType.UPDATE)
+    @RequestMapping(value = "/restBatch", method = RequestMethod.POST)
+    @ResponseBody
+    public ResultMessage save(@RequestParam Integer[] libraryIds) {
+        ApiUser wu = RequestUtils.getApiUser();
+        for (Integer libraryId : libraryIds) {
+            MarkLibrary library = libraryService.findById(libraryId);
+            if (library != null && subjectCheck(library.getSubjectCode(), wu)) {
+                try {
+                    lockService.watch(LockType.EXAM_SUBJECT, library.getExamId(), library.getSubjectCode());
+                    lockService.watch(LockType.GROUP, library.getExamId(), library.getSubjectCode(),
+                            library.getGroupNumber());
+                    lockService.waitlock(LockType.STUDENT, library.getStudentId());
+                    if (library.getStatus().equals(LibraryStatus.PROBLEM)) {
+                        markService.rejectLibrary(library, wu.getUser().getId(), null, true);
+                    }
+                } catch (Exception e) {
+                    log.error("back library error", e);
+                } finally {
+                    lockService.unlock(LockType.STUDENT, library.getStudentId());
+                    lockService.unwatch(LockType.GROUP, library.getExamId(), library.getSubjectCode(),
+                            library.getGroupNumber());
+                    lockService.unwatch(LockType.EXAM_SUBJECT, library.getExamId(), library.getSubjectCode());
+                }
+            }
+        }
+        return resultOk();
+    }
+
+    @ApiOperation(value = "导出问题卷")
+    @Logging(menu = "导出问题卷", type = LogType.UPDATE)
+    @RequestMapping(value = "/export", method = RequestMethod.POST)
+    @ResponseBody
+    public void exportFile(ProblemHistorySearchQuery query,HttpServletResponse response) {
+        try {
+            String fileName = "问题卷数据.xlsx";
+            ApiUser user = getApiUser();
+            int examId = getSessionExamId();
+            Exam exam = examService.findById(examId);
+            List<ProblemType> problemTypes = problemService.findByExamId(examId);
+            Map<Integer, ProblemType> problemMap = new HashMap<Integer, ProblemType>();
+            for (ProblemType problemType : problemTypes) {
+                problemMap.put(problemType.getId(), problemType);
+            }
+            if (user.isSubjectHeader() && StringUtils.isBlank(query.getSubjectCode())) {
+                String subjectCodeIn = StringUtils.join(user.getSubjectCodeSet(), ",");
+                query.setSubjectCodeIn(subjectCodeIn);
+            }
+            if (query.getStatus() == null) {
+                query.setStatus(HistoryStatus.WAITING);
+            }
+            query.setExamId(examId);
+            query.setPageNumber(1);
+            query.setPageSize(Integer.MAX_VALUE);
+            query.orderByExamNumber();
+            query = historyService.findByQuery(query);
+            List<ProblemHistoryDTO> list = new LinkedList<ProblemHistoryDTO>();
+            for (ProblemHistory history : query.getResult()) {
+                ExamStudent student = studentService.findById(history.getStudentId());
+                ProblemHistoryDTO dto = new ProblemHistoryDTO();
+                dto.setSubjectCode(student.getSubjectCode());
+                dto.setSubjectName(student.getSubjectName());
+                dto.setStatus(query.getStatus().getName());
+                dto.setGroupNumber(history.getGroupNumber());
+                if(user.isSubjectHeader() && exam.isForbiddenInfo()){
+                    dto.setExamNumber(DEFAULT_SECRET_NUMBER);
+                    dto.setSecretNumber(DEFAULT_SECRET_NUMBER);
+                    dto.setName(DEFAULT_SECRET_NUMBER);
+                }else{
+                    dto.setExamNumber(student.getExamNumber());
+                    dto.setSecretNumber(student.getSecretNumber());
+                    dto.setName(student.getName());
+                }
+                dto.setProblemType(problemMap.get(history.getProblemId()).getName());
+                if (history.getMarkerId() != null) {
+                    User u = userService.findByMarkerId(history.getMarkerId());
+                    dto.setMarkLogin(u.getLoginName() + " " + u.getName());
+                    dto.setMarkTime(DateUtils.formatDateTime(history.getCreateTime()));
+                }
+                if (history.getUserId() != null) {
+                    User u = userService.findById(history.getUserId());
+                    dto.setProblemUserName(u.getLoginName() + " " + u.getName());
+                    dto.setProblemRestTime(DateUtils.formatDateTime(history.getUpdateTime()));
+                }
+                list.add(dto);
+            }
+            new ExportExcel("问题卷数据", ProblemHistoryDTO.class).setDataList(list).write(response, fileName).dispose();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            e.printStackTrace();
+            throw new StatusException("导出问题卷数据失败!"+e.getMessage());
+        }
+    }
+
+}

+ 24 - 15
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/QuestionController.java

@@ -5,15 +5,15 @@ import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 
+import cn.com.qmth.stmms.biz.exam.bean.ResultMessage;
+import io.swagger.annotations.Api;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.task.AsyncTaskExecutor;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -29,15 +29,15 @@ import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
 import cn.com.qmth.stmms.biz.exam.model.SelectiveGroup;
 import cn.com.qmth.stmms.biz.exam.service.*;
 import cn.com.qmth.stmms.biz.exam.service.query.ExamQuestionSearchQuery;
-import cn.com.qmth.stmms.biz.file.service.FileService;
 import cn.com.qmth.stmms.biz.lock.LockService;
 import cn.com.qmth.stmms.biz.mark.service.MarkService;
-import cn.com.qmth.stmms.biz.report.service.ReportService;
 import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.enums.*;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
+import io.swagger.annotations.ApiOperation;
 import net.sf.json.JSONObject;
 
+@Api(tags = "题目管理")
 @Controller("adminQuestionController")
 @RequestMapping("/api/admin/question")
 public class QuestionController extends BaseApiController {
@@ -80,6 +80,7 @@ public class QuestionController extends BaseApiController {
     @Autowired
     private SelectiveGroupService selectiveGroupService;
 
+    @ApiOperation(value = "科目详情-题目列表")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ResponseBody
     public List<ExamQuestion> list(ExamQuestionSearchQuery query) {
@@ -122,6 +123,7 @@ public class QuestionController extends BaseApiController {
         return list;
     }
 
+    @ApiOperation(value = "大题列表")
     @RequestMapping(value = "/main/list", method = RequestMethod.POST)
     @ResponseBody
     public List<ExamQuestion> mainList(ExamQuestionSearchQuery query) {
@@ -136,21 +138,24 @@ public class QuestionController extends BaseApiController {
         return mainList;
     }
 
+    @ApiOperation(value = "客观题判分策略")
     @RequestMapping(value = "/objectivePolicy/list", method = RequestMethod.POST)
     @ResponseBody
     public List<ObjectivePolicy> roleList() {
         return Arrays.asList(ObjectivePolicy.values());
     }
 
+    @ApiOperation(value = "题目类型")
     @RequestMapping(value = "/type/list", method = RequestMethod.POST)
     @ResponseBody
     public List<QuestionType> typeList() {
         return Arrays.asList(QuestionType.values());
     }
 
+    @ApiOperation(value = "删除题目")
     @Logging(menu = "删除题目", type = LogType.DELETE)
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
-    public JSONObject delete(HttpServletRequest request, @RequestParam List<Integer> ids) {
+    public ResultMessage delete(HttpServletRequest request, @RequestParam List<Integer> ids) {
         List<ExamQuestion> list = new ArrayList<ExamQuestion>();
         for (Integer id : ids) {
             ExamQuestion question = questionService.findById(id);
@@ -175,12 +180,13 @@ public class QuestionController extends BaseApiController {
         if (!list.isEmpty()) {
             taskExecutor.submit(new QuestionDeleteThread(list, markService, lockService));
         }
-        return result(true);
+        return resultOk();
     }
 
+    @ApiOperation(value = "编辑题目")
     @Logging(menu = "编辑题目", type = LogType.UPDATE)
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
-    public JSONObject update(HttpServletRequest request, ExamQuestion question) {
+    public ResultMessage update(HttpServletRequest request, ExamQuestion question) {
         int examId = getSessionExamId(request);
         ExamQuestion old = questionService.findById(question.getId());
         ExamQuestion newQ = questionService.findByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(examId,
@@ -237,7 +243,7 @@ public class QuestionController extends BaseApiController {
             group.setTotalScore(totalScore.doubleValue());
             groupService.save(group);
         }
-        return result(true);
+        return resultOk();
     }
 
     private boolean validate(ExamQuestion question, List<String> error, Map<Integer, String> titleMap) {
@@ -282,10 +288,10 @@ public class QuestionController extends BaseApiController {
         return num.length() - decimalPointIndex - 1;
     }
 
+    @ApiOperation(value = "新增题目")
     @Logging(menu = "新增题目", type = LogType.ADD)
     @RequestMapping(value = "/question/save", method = RequestMethod.POST)
-    public JSONObject save(HttpServletRequest request,
-                       ExamQuestion question) {
+    public ResultMessage save(HttpServletRequest request, ExamQuestion question) {
         int examId = getSessionExamId(request);
         ExamQuestion old = questionService.findByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(examId,
                 question.getSubjectCode(), question.isObjective(), question.getMainNumber(), question.getSubNumber());
@@ -303,7 +309,7 @@ public class QuestionController extends BaseApiController {
             question.setAnswer(null);
             question.setType(null);
         }
-        if(question.getTrackCount()==null ){
+        if (question.getTrackCount() == null) {
             question.setTrackCount(0);
         }
         Map<Integer, String> titleMap = new HashMap<>();
@@ -314,16 +320,19 @@ public class QuestionController extends BaseApiController {
         }
         List<String> error = new LinkedList<String>();
         if (validate(question, error, titleMap)) {
-            return result(StringUtils.join(error, " "));
+            ResultMessage resultMessage = new ResultMessage();
+            resultMessage.setMessage(StringUtils.join(error, " "));
+            resultMessage.setSuccess(false);
+            return resultMessage;
         }
         questionService.save(question);
         subjectService.updateScore(examId, question.getSubjectCode(), question.isObjective(),
                 questionService.sumTotalScore(examId, question.getSubjectCode(), question.isObjective()));
         if (!question.isObjective()) {
-            studentService.updateSubjectiveStatusAndScore(examId, question.getSubjectCode(),
-                    SubjectiveStatus.UNMARK, 0, null);
+            studentService.updateSubjectiveStatusAndScore(examId, question.getSubjectCode(), SubjectiveStatus.UNMARK, 0,
+                    null);
             inspectHistoryService.deleteByExamIdAndSubjectCode(examId, question.getSubjectCode());
         }
-        return result(true);
+        return resultOk();
     }
 }

+ 9 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/ScanController.java

@@ -8,6 +8,8 @@ import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,6 +39,7 @@ import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.utils.ExportExcel;
 
+@Api(tags = "扫描管理")
 @Controller("adminScanController")
 @RequestMapping("/api/admin/scan")
 public class ScanController extends BaseApiController {
@@ -54,6 +57,7 @@ public class ScanController extends BaseApiController {
 
     private FileService fileService;
 
+    @ApiOperation(value = "扫描进度-按科目查询")
     @RequestMapping(value = "/subject", method = RequestMethod.POST)
     @Logging(menu = "扫描进度-按科目查询", type = LogType.QUERY)
     @ResponseBody
@@ -91,7 +95,8 @@ public class ScanController extends BaseApiController {
         return pageResult;
     }
 
-    @Logging(menu = "扫描进度导出", type = LogType.EXPORT)
+    @ApiOperation(value = "扫描进度-按科目导出")
+    @Logging(menu = "扫描进度-按科目导出", type = LogType.EXPORT)
     @RequestMapping(value = "/subject/export", method = RequestMethod.POST)
     public void export(ExamSubjectSearchQuery query, HttpServletRequest request, HttpServletResponse response) {
         int examId = getSessionExamId(request);
@@ -127,6 +132,7 @@ public class ScanController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "扫描进度-按签到表查询")
     @RequestMapping(value = "/package", method = RequestMethod.POST)
     @Logging(menu = "扫描进度-按签到表查询", type = LogType.QUERY)
     @ResponseBody
@@ -140,6 +146,7 @@ public class ScanController extends BaseApiController {
         return PageUtil.of(query);
     }
 
+    @ApiOperation(value = "扫描进度-按考点查询")
     @Logging(menu = "扫描进度-按考点查询", type = LogType.QUERY)
     @RequestMapping(value="/examSite", method = RequestMethod.POST)
     @ResponseBody
@@ -198,6 +205,7 @@ public class ScanController extends BaseApiController {
         return pageResult;
     }
 
+    @ApiOperation(value = "扫描进度-按考点导出")
     @Logging(menu = "扫描进度导出", type = LogType.EXPORT)
     @RequestMapping(value = "/examSite/export", method = RequestMethod.POST)
     public void examSiteExport(ExamStudentSearchQuery query, HttpServletRequest request, HttpServletResponse response) {

+ 30 - 7
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/StudentController.java

@@ -10,6 +10,9 @@ import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.com.qmth.stmms.biz.exam.bean.ResultMessage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,6 +51,7 @@ import cn.com.qmth.stmms.common.utils.ImportExcel;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONObject;
 
+@Api(tags = "考生管理")
 @Controller("adminStudentController")
 @RequestMapping("/api/admin/student")
 public class StudentController extends BaseApiController {
@@ -82,6 +86,7 @@ public class StudentController extends BaseApiController {
 
     private static final String PAPER_TYPES_REGEX = "[a-zA-Z#]";
 
+    @ApiOperation(value = "查询考生")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ResponseBody
     @Logging(menu = "查询考生", type = LogType.QUERY)
@@ -122,6 +127,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "学院查询")
     @RequestMapping(value = "/college/list", method = RequestMethod.POST)
     @ResponseBody
     public List<String> collegeList(HttpServletRequest request) {
@@ -129,6 +135,7 @@ public class StudentController extends BaseApiController {
         return studentService.findDistinctCollege(examId);
     }
 
+    @ApiOperation(value = "班级查询")
     @RequestMapping(value = "/className/list", method = RequestMethod.POST)
     @ResponseBody
     public List<String> classNameList(HttpServletRequest request) {
@@ -136,6 +143,7 @@ public class StudentController extends BaseApiController {
         return studentService.findDistinctClassName(examId);
     }
 
+    @ApiOperation(value = "考点查询")
     @RequestMapping(value = "/examSite/list", method = RequestMethod.POST)
     @ResponseBody
     public List<String> examSiteList(HttpServletRequest request) {
@@ -143,6 +151,7 @@ public class StudentController extends BaseApiController {
         return studentService.findDistinctExamSite(examId);
     }
 
+    @ApiOperation(value = "获取考生")
     @RequestMapping(value = "/find", method = RequestMethod.POST)
     @ResponseBody
     @Logging(menu = "获取考生", type = LogType.QUERY)
@@ -150,10 +159,11 @@ public class StudentController extends BaseApiController {
         return studentService.findById(id);
     }
 
+    @ApiOperation(value = "新增考生")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ResponseBody
     @Logging(menu = "新增考生", type = LogType.ADD)
-    public JSONObject save(HttpServletRequest request, ExamStudent student) {
+    public ResultMessage save(HttpServletRequest request, ExamStudent student) {
         int examId = getSessionExamId(request);
         Exam exam = examService.findById(examId);
         ExamSubject subject = subjectService.find(examId, student.getSubjectCode());
@@ -182,13 +192,13 @@ public class StudentController extends BaseApiController {
             studentService.save(student);
             examService.updateExamUpdateTime(examId);
         }
-        return result("考生" + student.getName() + "保存成功");
+        return resultOk();
     }
-
+    @ApiOperation(value = "修改考生")
     @RequestMapping(value = "/update", method = RequestMethod.POST)
     @ResponseBody
     @Logging(menu = "修改考生", type = LogType.UPDATE)
-    public JSONObject update(HttpServletRequest request, ExamStudent student) {
+    public ResultMessage update(HttpServletRequest request, ExamStudent student) {
         int examId = getSessionExamId(request);
         Exam exam = examService.findById(examId);
         ExamSubject subject = subjectService.find(examId, student.getSubjectCode());
@@ -216,7 +226,7 @@ public class StudentController extends BaseApiController {
         previous.setClassName(student.getClassName());
         previous.setTeacher(student.getTeacher());
         previous = studentService.save(previous);
-        return result("考生" + student.getName() + "保存成功");
+        return resultOk();
     }
 
     private ExamStudent checkExamNumber(ExamStudent student, Map<String, ExamStudent> current,
@@ -238,10 +248,11 @@ public class StudentController extends BaseApiController {
         return null;
     }
 
+    @ApiOperation(value = "删除考生")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ResponseBody
     @Logging(menu = "删除考生", type = LogType.DELETE)
-    public JSONObject delete(HttpServletRequest request, @RequestParam Integer id) {
+    public ResultMessage delete(HttpServletRequest request, @RequestParam Integer id) {
         ExamStudent student = studentService.findById(id);
         if (student == null) {
             throw new StatusException("考生不存在");
@@ -251,9 +262,10 @@ public class StudentController extends BaseApiController {
         subjectService.updateUploadCount(student.getExamId(), student.getSubjectCode(), (int) studentService
                 .countUploadedByExamIdAndSubjectCode(student.getExamId(), student.getSubjectCode()));
         RequestUtils.setLog(request, "删除成功,id:" + id);
-        return result("删除考生成功");
+        return resultOk();
     }
 
+    @ApiOperation(value = "考生数据导入模版")
     @RequestMapping(value = "/template", method = RequestMethod.POST)
     public void importFileTemplate(HttpServletResponse response) {
         try {
@@ -268,6 +280,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "导入考生")
     @Logging(menu = "导入考生", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @ResponseBody
@@ -355,6 +368,7 @@ public class StudentController extends BaseApiController {
         return previous;
     }
 
+    @ApiOperation(value = "导出考生")
     @Logging(menu = "导出考生", type = LogType.EXPORT)
     @RequestMapping(value = "/export", method = RequestMethod.POST)
     public void exportFile(ExamStudentSearchQuery query, HttpServletRequest request, HttpServletResponse response) {
@@ -382,6 +396,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "缺考考生导入模版")
     @RequestMapping(value = "/absentTemplate", method = RequestMethod.POST)
     public void absentTemplate(HttpServletResponse response) {
         try {
@@ -396,6 +411,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "导入缺考名单")
     @Logging(menu = "导入缺考名单", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/absentImport", method = RequestMethod.POST)
     @ResponseBody
@@ -435,6 +451,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "违纪考生导入模版")
     @RequestMapping(value = "/breachTemplate", method = RequestMethod.POST)
     public void breachTemplate(HttpServletResponse response) {
         try {
@@ -449,6 +466,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "导入违纪名单")
     @Logging(menu = "导入违纪名单", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/breachImport", method = RequestMethod.POST)
     @ResponseBody
@@ -487,6 +505,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "违纪重置")
     @Logging(menu = "违纪重置", type = LogType.UPDATE)
     @RequestMapping(value = "/updateBreach", method = RequestMethod.POST)
     @ResponseBody
@@ -509,6 +528,7 @@ public class StudentController extends BaseApiController {
         return result;
     }
 
+    @ApiOperation(value = "多媒体考生上传模版")
     @RequestMapping(value = "/uploadTemplate", method = RequestMethod.POST)
     public void uploadTemplate(HttpServletResponse response) {
         try {
@@ -523,6 +543,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "导入多媒体考生")
     @RequestMapping(value = "/uploadImport", method = RequestMethod.POST)
     @Logging(menu = "导入多媒体考生", type = LogType.IMPORT_FILE)
     @ResponseBody
@@ -578,6 +599,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "整理异常导入模版")
     @RequestMapping(value = "/collationLabelTemplate", method = RequestMethod.POST)
     public void collationLabelTemplate(HttpServletResponse response) {
         try {
@@ -592,6 +614,7 @@ public class StudentController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "导入整理异常")
     @Logging(menu = "导入整理异常", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/collationLabelImport", method = RequestMethod.POST)
     @ResponseBody

+ 36 - 18
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/SubjectController.java

@@ -7,6 +7,9 @@ import java.util.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.com.qmth.stmms.biz.exam.bean.ResultMessage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -60,6 +63,7 @@ import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 
+@Api(tags = "科目管理")
 @Controller("adminSubjectController")
 @RequestMapping("/api/admin/subject")
 public class SubjectController extends BaseApiController {
@@ -122,6 +126,7 @@ public class SubjectController extends BaseApiController {
     @Value("${file.temp}")
     private String tempFile;
 
+    @ApiOperation(value = "科目下拉列表")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ResponseBody
     public List<ExamSubject> list(HttpServletRequest request) {
@@ -129,13 +134,14 @@ public class SubjectController extends BaseApiController {
         return getExamSubject(examId, RequestUtils.getApiUser(request));
     }
 
+    @ApiOperation(value = "科目层次下拉列表")
     @RequestMapping(value = "/level/list", method = RequestMethod.POST)
     @ResponseBody
     public List<String> levelList(HttpServletRequest request) {
         int examId = getSessionExamId(request);
         return subjectService.listLevel(examId);
     }
-
+    @ApiOperation(value = "科目专业下拉列表")
     @RequestMapping(value = "/category/list", method = RequestMethod.POST)
     @ResponseBody
     public List<String> categoryList(HttpServletRequest request) {
@@ -143,6 +149,7 @@ public class SubjectController extends BaseApiController {
         return subjectService.listCategory(examId);
     }
 
+    @ApiOperation(value = "科目查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ResponseBody
     public PageResult<ExamSubject> list(HttpServletRequest request, ExamSubjectSearchQuery query) {
@@ -158,16 +165,18 @@ public class SubjectController extends BaseApiController {
         return PageUtil.of(query);
     }
 
+    @ApiOperation(value = "获取指定科目")
     @RequestMapping(value = "/find", method = RequestMethod.POST)
     @ResponseBody
     public ExamSubject find(HttpServletRequest request, @RequestParam Integer examId, @RequestParam String code) {
         return subjectService.find(examId, code);
     }
 
+    @ApiOperation(value = "科目修改")
     @Logging(menu = "科目设置修改", type = LogType.UPDATE)
     @RequestMapping(value = "/update", method = RequestMethod.POST)
     @ResponseBody
-    public JSONObject save(HttpServletRequest request, ExamSubject subject) {
+    public ResultMessage save(HttpServletRequest request, ExamSubject subject) {
         ExamSubject previous = subjectService.find(getSessionExamId(request), subject.getCode());
         if (previous == null) {
             throw new StatusException("科目不存在");
@@ -179,12 +188,13 @@ public class SubjectController extends BaseApiController {
         previous.setDisplayQuestionName(
                 subject.getDisplayQuestionName() == null ? false : subject.getDisplayQuestionName());
         subjectService.save(previous);
-        return result(true);
+        return resultOk();
     }
 
+    @ApiOperation(value = "科目总分统计")
     @RequestMapping(value = "/statistic", method = RequestMethod.POST)
     @ResponseBody
-    public JSONObject statistic(HttpServletRequest request) {
+    public ResultMessage statistic(HttpServletRequest request) {
         int examId = getSessionExamId(request);
         List<Double> totalScoreList = subjectService.distinctTotalScore(examId);
         List<Long> subjectCountList = new ArrayList<Long>();
@@ -194,9 +204,10 @@ public class SubjectController extends BaseApiController {
             querys.setTotalScore(totalScore);
             subjectCountList.add(subjectService.countByQuery(querys));
         }
-        return result(true);
+        return resultOk();
     }
 
+    @ApiOperation(value = "卷型下拉列表")
     @RequestMapping(value = "/getPaperType", method = RequestMethod.POST)
     @ResponseBody
     public List<String> query(HttpServletRequest request, @RequestParam String subjectCode) {
@@ -206,6 +217,7 @@ public class SubjectController extends BaseApiController {
         return list;
     }
 
+    @ApiOperation(value = "客or主观题导入模版")
     @RequestMapping(value = "/template", method = RequestMethod.POST)
     public void importTemplate(HttpServletResponse response, @RequestParam Boolean objective) {
         try {
@@ -222,9 +234,10 @@ public class SubjectController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "客观题统分")
     @Logging(menu = "客观题统分", type = LogType.UPDATE)
     @RequestMapping(value = "/calculate", method = RequestMethod.POST)
-    public JSONObject calculate(HttpServletRequest request, @RequestParam(required = false) String subjectCode) {
+    public ResultMessage calculate(HttpServletRequest request, @RequestParam(required = false) String subjectCode) {
         ApiUser wu = RequestUtils.getApiUser(request);
         Exam exam = examService.findById(getSessionExamId(request));
         if (exam == null || !exam.getSchoolId().equals(wu.getUser().getSchoolId())) {
@@ -245,7 +258,7 @@ public class SubjectController extends BaseApiController {
                 taskExecutor.submit(thread);
             }
         }
-        return result(true);
+        return resultOk();
     }
 
     private Set<String> getCalculateSubjectCodes(Integer examId) {
@@ -258,7 +271,7 @@ public class SubjectController extends BaseApiController {
         }
         return set;
     }
-
+    @ApiOperation(value = "导出客or主观题")
     @Logging(menu = "导出客/主观题", type = LogType.EXPORT)
     @RequestMapping(value = "/export", method = RequestMethod.POST)
     public void exportFile(HttpServletRequest request, HttpServletResponse response, @RequestParam Boolean objective) {
@@ -300,6 +313,7 @@ public class SubjectController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "导入客or主观题")
     @Logging(menu = "导入客/主观题", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     public JSONObject importFile(HttpServletRequest request, MultipartFile file, @RequestParam Boolean objective) {
@@ -420,7 +434,7 @@ public class SubjectController extends BaseApiController {
         }
         return map;
     }
-
+    @ApiOperation(value = "导入主观题评卷分组")
     @Logging(menu = "导入主观题分组", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/importGroup", method = RequestMethod.POST)
     public JSONObject importGroupFile(HttpServletRequest request, MultipartFile file) {
@@ -504,10 +518,10 @@ public class SubjectController extends BaseApiController {
         RequestUtils.setLog(request, success + "个科目导入成功;");
         return result(StringUtils.join(error, " "));
     }
-
+    @ApiOperation(value = "科目成绩分析计算")
     @Logging(menu = "科目成绩分析计算", type = LogType.UPDATE)
     @RequestMapping(value = "/report", method = RequestMethod.POST)
-    public JSONObject report(HttpServletRequest request, @RequestParam(required = false) String subjectCode) {
+    public ResultMessage report(HttpServletRequest request, @RequestParam(required = false) String subjectCode) {
         ApiUser wu = RequestUtils.getApiUser(request);
         Exam exam = examService.findById(getSessionExamId(request));
         if (exam == null || !exam.getSchoolId().equals(wu.getUser().getSchoolId())) {
@@ -534,12 +548,13 @@ public class SubjectController extends BaseApiController {
                 taskExecutor.submit(thread);
             }
         }
-        return result(true);
+        return resultOk();
     }
 
+    @ApiOperation(value = "客观题分析计算")
     @Logging(menu = "客观题分析计算", type = LogType.UPDATE)
     @RequestMapping(value = "/report/objective", method = RequestMethod.POST)
-    public JSONObject reportObjective(HttpServletRequest request) {
+    public ResultMessage reportObjective(HttpServletRequest request) {
         ApiUser wu = RequestUtils.getApiUser(request);
         Exam exam = examService.findById(getSessionExamId(request));
         if (exam == null || !exam.getSchoolId().equals(wu.getUser().getSchoolId())) {
@@ -561,12 +576,12 @@ public class SubjectController extends BaseApiController {
                 taskExecutor.submit(thread);
             }
         }
-        return result(true);
+        return resultOk();
     }
-
+    @ApiOperation(value = "导入数据包")
     @Logging(menu = "导入数据包", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/importData", method = RequestMethod.POST)
-    public JSONObject importData(HttpServletRequest request, MultipartFile file) {
+    public ResultMessage importData(HttpServletRequest request, MultipartFile file) {
         int examId = getSessionExamId(request);
         List<String> error = new ArrayList<String>();
         try {
@@ -597,9 +612,12 @@ public class SubjectController extends BaseApiController {
             error.add("zip文件解析失败");
         }
         if (error.size() > 0) {
-            return result(StringUtils.join(error, " "));
+            ResultMessage resultMessage = new ResultMessage();
+            resultMessage.setMessage(StringUtils.join(error, " "));
+            resultMessage.setSuccess(false);
+            return resultMessage;
         }
-        return result(true);
+        return resultOk();
     }
 
     private List<String> parseCard(int examId, List<String> error, ZipReader zipReader) throws IOException {

+ 4 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/SystemController.java

@@ -4,6 +4,8 @@ import java.util.Arrays;
 import java.util.List;
 
 import cn.com.qmth.stmms.biz.file.service.FileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import net.sf.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import cn.com.qmth.stmms.api.controller.BaseApiController;
 import cn.com.qmth.stmms.common.enums.ExamType;
 
+@Api(tags = "系统配置")
 @Controller("sysController")
 @RequestMapping("/api/sys")
 public class SystemController extends BaseApiController {
@@ -24,13 +27,12 @@ public class SystemController extends BaseApiController {
 
     @Autowired
     private FileService fileService;
-
+    @ApiOperation(value = "系统版本及配置")
     @RequestMapping(value = "/version", method = RequestMethod.POST)
     @ResponseBody
     public JSONObject version() {
         JSONObject result  = new JSONObject();
         result.accumulate("fileServer", fileService.getFileServer());
-        result.accumulate("fileServer", fileService.getFileServer());
         return result;
     }
 

+ 34 - 25
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/UserController.java

@@ -6,6 +6,9 @@ import java.util.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.com.qmth.stmms.biz.exam.bean.ResultMessage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -42,6 +45,7 @@ import cn.com.qmth.stmms.common.enums.*;
 import cn.com.qmth.stmms.common.utils.*;
 import net.sf.json.JSONObject;
 
+@Api(tags = "用户管理")
 @Controller("adminUserController")
 @RequestMapping("/api/admin/user")
 public class UserController extends BaseApiController {
@@ -84,7 +88,8 @@ public class UserController extends BaseApiController {
     @Autowired
     private UserStudentService userStudentService;
 
-    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @ApiOperation(value = "用户查询")
+    @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ResponseBody
     @Logging(menu = "查询用户", type = LogType.QUERY)
     public PageResult<User> list(HttpServletRequest request, UserSearchQuery query) {
@@ -94,38 +99,40 @@ public class UserController extends BaseApiController {
         return PageUtil.of(query);
     }
 
+    @ApiOperation(value = "用户角色下拉列表")
     @RequestMapping(value = "/role/list", method = RequestMethod.POST)
     @ResponseBody
     public List<Role> roleList() {
         return Arrays.asList(ROLE_LIST);
     }
-
+    @ApiOperation(value = "用户来源下拉列表")
     @RequestMapping(value = "/source/list", method = RequestMethod.POST)
     @ResponseBody
     public List<UserSource> sourceList() {
         return Arrays.asList(UserSource.values());
     }
 
+    @ApiOperation(value = "获取指定用户")
     @RequestMapping(value = "/find", method = RequestMethod.POST)
     @ResponseBody
     public User findOne(HttpServletRequest request, @RequestParam Integer id) {
         return userService.findById(id);
     }
-
+    @ApiOperation(value = "新增用户")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @Logging(menu = "新增用户", type = LogType.ADD)
     @ResponseBody
-    public JSONObject save(HttpServletRequest request, UserSearchQuery query) {
-        return result(true);
+    public ResultMessage save(HttpServletRequest request, UserSearchQuery query) {
+        return resultOk();
     }
-
+    @ApiOperation(value = "修改用户")
     @RequestMapping(value = "/update", method = RequestMethod.POST)
     @ResponseBody
     @Logging(menu = "修改用户", type = LogType.UPDATE)
-    public JSONObject update(HttpServletRequest request, UserSearchQuery query) {
-        return result(true);
+    public ResultMessage update(HttpServletRequest request, UserSearchQuery query) {
+        return resultOk();
     }
-
+    @ApiOperation(value = "导出用户")
     @Logging(menu = "导出用户", type = LogType.EXPORT)
     @RequestMapping(value = "/export", method = RequestMethod.POST)
     public void exportFile(UserSearchQuery query, HttpServletRequest request, HttpServletResponse response) {
@@ -146,7 +153,7 @@ public class UserController extends BaseApiController {
             throw new StatusException("导出数据失败!失败信息:"+e.getMessage());
         }
     }
-
+    @ApiOperation(value = "按考试导出用户")
     @Logging(menu = "导出用户", type = LogType.EXPORT)
     @RequestMapping(value = "/exportExam", method = RequestMethod.POST)
     public void exportExam(UserSearchQuery query, HttpServletRequest request, HttpServletResponse response) {
@@ -239,6 +246,7 @@ public class UserController extends BaseApiController {
         }
     }
 
+    @ApiOperation(value = "按考试导出科目分表用户")
     @Logging(menu = "导出用户", type = LogType.EXPORT)
     @RequestMapping(value = "/exportSubject", method = RequestMethod.POST)
     public void exportSubject(UserSearchQuery query, HttpServletRequest request, HttpServletResponse response) {
@@ -341,11 +349,11 @@ public class UserController extends BaseApiController {
             throw new StatusException("导出用户数据失败"+e.getMessage());
         }
     }
-
+    @ApiOperation(value = "用户启用-禁用")
     @Logging(menu = "用户启用/禁用", type = LogType.UPDATE)
     @RequestMapping(value="/enable", method = RequestMethod.POST)
     @ResponseBody
-    public JSONObject toggle(HttpServletRequest request, @RequestParam List<Integer> ids,
+    public ResultMessage toggle(HttpServletRequest request, @RequestParam List<Integer> ids,
             @RequestParam Boolean enable) {
         for (Integer id : ids) {
             User user = userService.findById(id);
@@ -356,13 +364,13 @@ public class UserController extends BaseApiController {
             markerService.updateEnableByUserId(id, enable);
             userService.save(user);
         }
-        return result(true);
+        return resultOk();
     }
-
+    @ApiOperation(value = "重置密码")
     @Logging(menu = "用户重置密码", type = LogType.UPDATE)
     @RequestMapping(value = "/reset", method = RequestMethod.POST)
     @ResponseBody
-    public JSONObject reSetPassword(@RequestParam Integer[] ids, @RequestParam String password) {
+    public ResultMessage reSetPassword(@RequestParam Integer[] ids, @RequestParam String password) {
         for (Integer id : ids) {
             User user = userService.findById(id);
             if (user == null || UserSource.EXTERNAL.equals(user.getSource())) {
@@ -373,9 +381,10 @@ public class UserController extends BaseApiController {
             user.setRandomPassword(null);
             user = userService.save(user);
         }
-        return result(true);
+        return resultOk();
     }
 
+    @ApiOperation(value = "批量新增用户")
     @Logging(menu = "批量新增用户", type = LogType.ADD)
     @RequestMapping(value = "/batchSave", method = RequestMethod.POST)
     @ResponseBody
@@ -421,7 +430,7 @@ public class UserController extends BaseApiController {
         }
         return set;
     }
-
+    @ApiOperation(value = "绑定考生导入模板")
     @RequestMapping(value = "/student/template", method = RequestMethod.POST)
     public void importStudentTemplate(HttpServletResponse response) {
         try {
@@ -436,14 +445,14 @@ public class UserController extends BaseApiController {
             throw new StatusException("导入模板下载失败!失败信息:" + e.getMessage());
         }
     }
-
+    @ApiOperation(value = "绑定考生清空")
     @RequestMapping(value = "/student/clear", method = RequestMethod.POST)
     @ResponseBody
-    public JSONObject studentClear(@RequestParam Integer id) {
+    public ResultMessage studentClear(@RequestParam Integer id) {
         userStudentService.clear(id);
-        return result(true);
+        return resultOk();
     }
-
+    @ApiOperation(value = "科组长-复核员导入模版")
     @RequestMapping(value = "/subject/template", method = RequestMethod.POST)
     public void importFileTemplate(HttpServletResponse response, @RequestParam Boolean isHeader) {
         try {
@@ -458,8 +467,8 @@ public class UserController extends BaseApiController {
             throw new StatusException("导入模板下载失败!失败信息:" + e.getMessage());
         }
     }
-
-    @Logging(menu = "科组长/查询员导入", type = LogType.IMPORT_FILE)
+    @ApiOperation(value = "科组长-复核员导入")
+    @Logging(menu = "科组长/复核员导入", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/subject/import", method = RequestMethod.POST)
     @ResponseBody
     public JSONObject importFile(HttpServletRequest request, MultipartFile file, @RequestParam Boolean isHeader) {
@@ -550,7 +559,7 @@ public class UserController extends BaseApiController {
         }
         return user;
     }
-
+    @ApiOperation(value = "评卷员班级导入模版")
     @RequestMapping(value = "/class/template", method = RequestMethod.POST)
     public void importFileTemplate(HttpServletResponse response) {
         try {
@@ -564,7 +573,7 @@ public class UserController extends BaseApiController {
             throw new StatusException("导入模板下载失败!失败信息:" + e.getMessage());
         }
     }
-
+    @ApiOperation(value = "评卷员班级导入")
     @Logging(menu = "评卷员班级导入", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/class/import", method = RequestMethod.POST)
     @ResponseBody