瀏覽代碼

更新依赖

yin 1 周之前
父節點
當前提交
f9185b4c5b

+ 5 - 0
pom.xml

@@ -342,6 +342,11 @@
                 <artifactId>tools-common</artifactId>
                 <version>${qmth-boot-version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.qmth.boot</groupId>
+                <artifactId>core-models</artifactId>
+                <version>${qmth-boot-version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 8 - 0
stmms-biz/pom.xml

@@ -76,5 +76,13 @@
        		<groupId>com.qmth.boot</groupId>
            	<artifactId>tools-common</artifactId>
        	</dependency>
+        <dependency>
+            <groupId>com.qmth.boot</groupId>
+            <artifactId>core-models</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.boot</groupId>
+            <artifactId>core-models</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 84 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/utils/PageUtil.java

@@ -0,0 +1,84 @@
+package cn.com.qmth.stmms.biz.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.qmth.stmms.biz.common.BaseQuery;
+import com.qmth.boot.core.collection.PageResult;
+
+public class PageUtil {
+	public static <T> PageResult<T> of(BaseQuery<T> query) {
+        PageResult<T> result = new PageResult<>();
+        result.setResult(query.getResult());
+        result.setPageNumber(query.getPageNumber());
+        result.setPageSize(query.getPageSize());
+        result.setTotalCount(query.getTotalCount());
+        result.setPageCount(query.getCurrentCount());
+        return result;
+	}
+
+
+
+	public static <T> PageResult<T> emptyPage(){
+    	PageResult<T> page=new PageResult<>();
+    	page.setPageCount(0);
+    	page.setPageNumber(1);
+    	page.setPageSize(10);
+    	page.setTotalCount(0);
+    	page.setResult(new ArrayList<>());
+    	return page;
+    }
+
+	public static <T> PageResult<T> of(List<T> list, Integer pageNum, Integer pageSize) {
+        if (list == null) {
+            return null;
+        }
+        if (list.size() == 0) {
+            return null;
+        }
+
+        Integer count = list.size(); // 记录总数
+        Integer pageCount = pageCount(list, pageNum, pageSize);
+
+        int fromIndex = 0; // 开始索引
+        int toIndex = 0; // 结束索引
+
+        if (pageCount < pageNum) {
+            return null;
+        }
+        if (pageCount - pageNum != 0) {
+            fromIndex = (pageNum - 1) * pageSize;
+            toIndex = fromIndex + pageSize;
+        } else {
+            fromIndex = (pageNum - 1) * pageSize;
+            toIndex = count;
+        }
+
+        List<T> pageList = list.subList(fromIndex, toIndex);
+        PageResult<T> page=new PageResult<>();
+        page.setPageCount(pageCount);
+        page.setPageNumber(pageNum);
+        page.setPageSize(pageSize);
+        page.setTotalCount(list.size());
+        page.setResult(pageList);
+        return page;
+    }
+
+    private static <T> Integer pageCount(List<T> list, Integer pageNum, Integer pageSize) {
+        if (list == null) {
+            return 0;
+        }
+        if (list.size() == 0) {
+            return 0;
+        }
+        Integer count = list.size(); // 记录总数
+        Integer pageCount = 0; // 页数
+        if (count % pageSize == 0) {
+            pageCount = count / pageSize;
+        } else {
+            pageCount = count / pageSize + 1;
+        }
+
+        return pageCount;
+    }
+}

+ 4 - 0
stmms-web/pom.xml

@@ -61,6 +61,10 @@
 			<version>2.4.2</version>
 			<scope>runtime</scope>
 		</dependency>
+		<dependency>
+			<groupId>com.qmth.boot</groupId>
+			<artifactId>core-models</artifactId>
+		</dependency>
 	</dependencies>
 
 	<build>

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

@@ -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());
+    }
+
+}