浏览代码

移植整卷阅版本考试接口修改,可选自定义pageNumber和pageSize,默认改为按ID倒序,pageSize小于1时设置为20

luoshi 6 年之前
父节点
当前提交
e00b1093bb

+ 6 - 9
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/query/ExamSearchQuery.java

@@ -3,6 +3,9 @@ package cn.com.qmth.stmms.biz.exam.query;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
+
 import cn.com.qmth.stmms.biz.common.BaseQuery;
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
@@ -19,7 +22,9 @@ public class ExamSearchQuery extends BaseQuery<Exam> {
 
     private Set<Integer> ids;
 
-    private Boolean orderByCreateTimeDesc;
+    public void orderByIdDesc() {
+        setSort(new Sort(Direction.DESC, "id"));
+    }
 
     public Integer getCreatorId() {
         return creatorId;
@@ -63,14 +68,6 @@ public class ExamSearchQuery extends BaseQuery<Exam> {
         }
     }
 
-    public Boolean getOrderByCreateTimeDesc() {
-        return orderByCreateTimeDesc;
-    }
-
-    public void setOrderByCreateTimeDesc(Boolean orderByCreateTimeDesc) {
-        this.orderByCreateTimeDesc = orderByCreateTimeDesc;
-    }
-
     public Integer getSchoolId() {
         return schoolId;
     }

+ 0 - 6
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamServiceImpl.java

@@ -12,8 +12,6 @@ import javax.persistence.criteria.Root;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.domain.Sort.Direction;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -74,10 +72,6 @@ public class ExamServiceImpl extends BaseQueryService<Exam> implements ExamServi
     @Override
     public ExamSearchQuery findByQuery(final ExamSearchQuery query) {
         checkQuery(query);
-        if (query.getOrderByCreateTimeDesc() != null) {
-            query.setSort(new Sort(query.getOrderByCreateTimeDesc() ? Direction.DESC : Direction.ASC, "createTime"));
-        }
-
         Page<Exam> result = examDao.findAll(new Specification<Exam>() {
 
             @Override

+ 10 - 2
stmms-common/src/main/java/cn/com/qmth/stmms/common/utils/DateUtils.java

@@ -1,6 +1,7 @@
 /**
- * Copyright &copy; 2012-2013 <a
- * href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
+ * Copyright &copy; 2012-2013
+ * <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights
+ * reserved.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  */
@@ -60,6 +61,13 @@ public class DateUtils extends org.apache.commons.lang.time.DateUtils {
         return formatDate(date, "yyyy-MM-dd HH:mm:ss");
     }
 
+    /**
+     * 得到日期时间字符串,转换格式(yyyy-MM-dd)
+     */
+    public static String formatDate(Date date) {
+        return formatDate(date, "yyyy-MM-dd");
+    }
+
     /**
      * 得到当前时间字符串 格式(HH:mm:ss)
      */

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ExamController.java

@@ -56,7 +56,7 @@ public class ExamController extends BaseExamController {
         SessionExamUtils.clearExamId(request);
         User user = RequestUtils.getWebUser(request).getUser();
         query.setSchoolId(user.getSchoolId());
-        query.setOrderByCreateTimeDesc(true);
+        query.orderByIdDesc();
         query = examService.findByQuery(query);
         if (query.getCurrentCount() > 0) {
             model.addAttribute("examList", query.getResult());

+ 132 - 141
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamInfoController.java

@@ -1,141 +1,132 @@
-package cn.com.qmth.stmms.api.controller;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import cn.com.qmth.stmms.admin.vo.ExamSubjectVO;
-import cn.com.qmth.stmms.biz.api.auth.annotation.AuthValidate;
-import cn.com.qmth.stmms.biz.api.auth.exception.ApiException;
-import cn.com.qmth.stmms.biz.campus.model.Campus;
-import cn.com.qmth.stmms.biz.campus.service.CampusService;
-import cn.com.qmth.stmms.biz.exam.model.Exam;
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
-import cn.com.qmth.stmms.biz.exam.query.ExamSearchQuery;
-import cn.com.qmth.stmms.biz.exam.service.ExamService;
-import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
-import cn.com.qmth.stmms.biz.user.model.User;
-import cn.com.qmth.stmms.common.enums.ExamStatus;
-import cn.com.qmth.stmms.common.utils.DateUtils;
-import cn.com.qmth.stmms.common.utils.RequestUtils;
-
-@Controller("examInfoApiController")
-@RequestMapping("/api")
-public class ExamInfoController extends BaseApiController {
-
-    @Autowired
-    private ExamService examService;
-
-    @Autowired
-    private ExamSubjectService subjectService;
-
-    @Autowired
-    private CampusService campusService;
-
-    @RequestMapping("/version")
-    @ResponseBody
-    public String version(HttpServletRequest request) {
-        return "ft";
-    }
-
-    @AuthValidate({ "adminUser", "scanner" })
-    @RequestMapping(value = "/exams", method = RequestMethod.GET)
-    @ResponseBody
-    public JSONArray getExamInfos(HttpServletRequest request) {
-        User user = RequestUtils.getApiUser(request);
-        JSONArray array = new JSONArray();
-        List<Exam> list = new LinkedList<Exam>();
-        if (user.getSchoolId() != null) {
-            ExamSearchQuery query = new ExamSearchQuery();
-            query.setSchoolId(user.getSchoolId());
-            query.addStatus(ExamStatus.START);
-            query.setPageNumber(1);
-            query.setPageSize(20);
-            query.setOrderByCreateTimeDesc(true);
-            query = examService.findByQuery(query);
-            if (query.getCurrentCount() > 0) {
-                list = query.getResult();
-            }
-        }
-
-        for (Exam exam : list) {
-            JSONObject obj = new JSONObject();
-            obj.accumulate("id", exam.getId());
-            obj.accumulate("name", exam.getName());
-            String examTime = DateUtils.formatDateTime(exam.getExamTime());
-            obj.accumulate("examTime", examTime);
-            array.add(obj);
-        }
-        return array;
-    }
-
-    @AuthValidate({ "adminUser", "scanner" })
-    @RequestMapping(value = "/campus", method = RequestMethod.GET)
-    @ResponseBody
-    public JSONArray getCampus(HttpServletRequest request) {
-        User user = RequestUtils.getApiUser(request);
-        List<Campus> list = campusService.findBySchoolId(user.getSchoolId());
-        JSONArray array = new JSONArray();
-        for (Campus c : list) {
-            JSONObject obj = new JSONObject();
-            obj.accumulate("code", c.getId().toString());
-            obj.accumulate("name", c.getName());
-            array.add(obj);
-        }
-        return array;
-    }
-
-    @RequestMapping(value = "/subjects/{examId}", method = RequestMethod.GET)
-    @ResponseBody
-    public JSONArray getSubjects(@PathVariable Integer examId) {
-        List<ExamSubject> sList = subjectService.list(examId);
-        JSONArray array = new JSONArray();
-        for (ExamSubject subject : sList) {
-            JSONObject obj = new JSONObject();
-            obj.accumulate("code", subject.getCode());
-            obj.accumulate("name", subject.getName());
-            array.add(obj);
-        }
-        return array;
-    }
-
-    @AuthValidate({ "adminUser", "scanner" })
-    @RequestMapping(value = "/subject/update", method = RequestMethod.POST)
-    @ResponseBody
-    public JSONObject updateSubject(HttpServletRequest request, @RequestBody ExamSubjectVO subject) {
-        User user = RequestUtils.getApiUser(request);
-        Exam exam = examService.findById(subject.getExamId());
-        JSONObject result = new JSONObject();
-        if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
-            ExamSubject es = subjectService.find(subject.getExamId(), subject.getCode());
-            if (es != null) {
-                if (subject.getHasAnswer() != null) {
-                    es.setHasAnswer(subject.getHasAnswer().booleanValue());
-                }
-                if (subject.getHasPaper() != null) {
-                    es.setHasPaper(subject.getHasPaper().booleanValue());
-                }
-                subjectService.save(es);
-                result.accumulate("code", subject.getCode());
-                return result;
-            }else{
-            	result.accumulate("code", "");
-            }
-        }else{
-        	throw ApiException.EXAM_NOT_ACCESSIBLED;
-        }
-        return result;
-    }
-}
+package cn.com.qmth.stmms.api.controller;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import cn.com.qmth.stmms.admin.vo.ExamSubjectVO;
+import cn.com.qmth.stmms.biz.api.auth.annotation.AuthValidate;
+import cn.com.qmth.stmms.biz.api.auth.exception.ApiException;
+import cn.com.qmth.stmms.biz.campus.model.Campus;
+import cn.com.qmth.stmms.biz.campus.service.CampusService;
+import cn.com.qmth.stmms.biz.exam.model.Exam;
+import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
+import cn.com.qmth.stmms.biz.exam.query.ExamSearchQuery;
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
+import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
+import cn.com.qmth.stmms.biz.user.model.User;
+import cn.com.qmth.stmms.common.enums.ExamStatus;
+import cn.com.qmth.stmms.common.utils.DateUtils;
+import cn.com.qmth.stmms.common.utils.RequestUtils;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+@Controller("examInfoApiController")
+@RequestMapping("/api")
+public class ExamInfoController extends BaseApiController {
+
+    @Autowired
+    private ExamService examService;
+
+    @Autowired
+    private ExamSubjectService subjectService;
+
+    @Autowired
+    private CampusService campusService;
+
+    @RequestMapping("/version")
+    @ResponseBody
+    public String version(HttpServletRequest request) {
+        return "ft";
+    }
+
+    @AuthValidate({ "adminUser", "scanner" })
+    @RequestMapping("/exams")
+    @ResponseBody
+    public JSONArray getExamInfos(HttpServletRequest request, ExamSearchQuery query) {
+        User user = RequestUtils.getApiUser(request);
+        JSONArray array = new JSONArray();
+        if (user.getSchoolId() != null) {
+            query.setSchoolId(user.getSchoolId());
+            query.addStatus(ExamStatus.START);
+            if (query.getPageSize() < 1) {
+                query.setPageSize(20);
+            }
+            query = examService.findByQuery(query);
+            for (Exam exam : query.getResult()) {
+                JSONObject obj = new JSONObject();
+                obj.accumulate("id", exam.getId());
+                obj.accumulate("name", exam.getName());
+                obj.accumulate("examTime", DateUtils.formatDate(exam.getExamTime()));
+                array.add(obj);
+            }
+        }
+        return array;
+    }
+
+    @AuthValidate({ "adminUser", "scanner" })
+    @RequestMapping(value = "/campus", method = RequestMethod.GET)
+    @ResponseBody
+    public JSONArray getCampus(HttpServletRequest request) {
+        User user = RequestUtils.getApiUser(request);
+        List<Campus> list = campusService.findBySchoolId(user.getSchoolId());
+        JSONArray array = new JSONArray();
+        for (Campus c : list) {
+            JSONObject obj = new JSONObject();
+            obj.accumulate("code", c.getId().toString());
+            obj.accumulate("name", c.getName());
+            array.add(obj);
+        }
+        return array;
+    }
+
+    @RequestMapping(value = "/subjects/{examId}", method = RequestMethod.GET)
+    @ResponseBody
+    public JSONArray getSubjects(@PathVariable Integer examId) {
+        List<ExamSubject> sList = subjectService.list(examId);
+        JSONArray array = new JSONArray();
+        for (ExamSubject subject : sList) {
+            JSONObject obj = new JSONObject();
+            obj.accumulate("code", subject.getCode());
+            obj.accumulate("name", subject.getName());
+            array.add(obj);
+        }
+        return array;
+    }
+
+    @AuthValidate({ "adminUser", "scanner" })
+    @RequestMapping(value = "/subject/update", method = RequestMethod.POST)
+    @ResponseBody
+    public JSONObject updateSubject(HttpServletRequest request, @RequestBody ExamSubjectVO subject) {
+        User user = RequestUtils.getApiUser(request);
+        Exam exam = examService.findById(subject.getExamId());
+        JSONObject result = new JSONObject();
+        if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
+            ExamSubject es = subjectService.find(subject.getExamId(), subject.getCode());
+            if (es != null) {
+                if (subject.getHasAnswer() != null) {
+                    es.setHasAnswer(subject.getHasAnswer().booleanValue());
+                }
+                if (subject.getHasPaper() != null) {
+                    es.setHasPaper(subject.getHasPaper().booleanValue());
+                }
+                subjectService.save(es);
+                result.accumulate("code", subject.getCode());
+                return result;
+            } else {
+                result.accumulate("code", "");
+            }
+        } else {
+            throw ApiException.EXAM_NOT_ACCESSIBLED;
+        }
+        return result;
+    }
+}