|
@@ -0,0 +1,77 @@
|
|
|
+package cn.com.qmth.stmms.api.controller.admin;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+
|
|
|
+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.ResponseBody;
|
|
|
+
|
|
|
+import com.qmth.boot.core.collection.PageResult;
|
|
|
+
|
|
|
+import cn.com.qmth.stmms.api.controller.BaseApiController;
|
|
|
+import cn.com.qmth.stmms.api.exception.ApiException;
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
+import cn.com.qmth.stmms.biz.exam.query.ExamSearchQuery;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
+import cn.com.qmth.stmms.biz.school.service.SchoolService;
|
|
|
+import cn.com.qmth.stmms.biz.utils.PageUtil;
|
|
|
+import cn.com.qmth.stmms.common.domain.ApiUser;
|
|
|
+import cn.com.qmth.stmms.common.enums.ExamStatus;
|
|
|
+import cn.com.qmth.stmms.common.enums.ExamType;
|
|
|
+import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
+
|
|
|
+@Controller("adminExamController")
|
|
|
+@RequestMapping("/api/admin/exam")
|
|
|
+public class ExamController extends BaseApiController {
|
|
|
+
|
|
|
+ protected static final Logger log = LoggerFactory.getLogger(ExamController.class);
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamService examService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SchoolService schoolService;
|
|
|
+
|
|
|
+ private Exam validateExam(ApiUser au, Integer examId, ExamType... types) {
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ if (exam == null || !validateSchool(au.getSchoolId(), exam.getSchoolId())
|
|
|
+ || exam.getStatus() != ExamStatus.START) {
|
|
|
+ throw ApiException.EXAM_NOT_ACCESSIBLED;
|
|
|
+ }
|
|
|
+ if (types != null && types.length > 0 && !Arrays.asList(types).contains(exam.getType())) {
|
|
|
+ throw ApiException.QUERY_PARAM_ERROR.replaceMessage("exam type invalid");
|
|
|
+ }
|
|
|
+ return exam;
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/list", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PageResult<Exam> list(HttpServletRequest request, ExamSearchQuery query) {
|
|
|
+ ApiUser user = RequestUtils.getApiUser(request);
|
|
|
+ query.setSchoolId(user.getSchoolId());
|
|
|
+ query.orderByIdDesc();
|
|
|
+ query = examService.findByQuery(query);
|
|
|
+ return PageUtil.of(query);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/type/list", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public List<ExamType> examTypeList() {
|
|
|
+ return Arrays.asList(ExamType.values());
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/status/list", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public List<ExamStatus> statusList() {
|
|
|
+ return Arrays.asList(ExamStatus.values());
|
|
|
+ }
|
|
|
+
|
|
|
+}
|