|
@@ -1,12 +1,126 @@
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
|
+import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
|
|
|
+import com.google.gson.Gson;
|
|
|
|
+
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.bean.ScoreVerifyParam;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.bean.ScoreVerifyVo;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.ScoreVerify;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.query.ScoreVerifyQuery;
|
|
|
|
+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.ScoreVerifyService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exception.StatusException;
|
|
|
|
+import cn.com.qmth.stmms.common.domain.WebUser;
|
|
|
|
+import cn.com.qmth.stmms.common.enums.ExamType;
|
|
|
|
+import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
|
+import net.sf.json.JSONObject;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+@Controller("scoreVerifyController")
|
|
@RequestMapping("/admin/exam/score/verify")
|
|
@RequestMapping("/admin/exam/score/verify")
|
|
public class ScoreVerifyController extends BaseExamController {
|
|
public class ScoreVerifyController extends BaseExamController {
|
|
|
|
|
|
- protected static Logger log = LoggerFactory.getLogger(ScoreVerifyController.class);
|
|
|
|
|
|
+ protected static Logger log = LoggerFactory.getLogger(ScoreVerifyController.class);
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ScoreVerifyService scoreVerifyService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamQuestionService questionService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamService examService;
|
|
|
|
|
|
|
|
+ @RequestMapping(value = "init")
|
|
|
|
+ public String init(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ Integer examId = getSessionExamId(request);
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ return "modules/exam/permission";
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("showType", "query");
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "page")
|
|
|
|
+ public String page(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ Integer examId = getSessionExamId(request);
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ return "modules/exam/permission";
|
|
|
|
+ }
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ query.setExamId(examId);
|
|
|
|
+ query.setUserId(wu.getId());
|
|
|
|
+ ScoreVerify sv=scoreVerifyService.findByExamIdAndUserId(examId,wu.getId());
|
|
|
|
+ if(sv==null) {
|
|
|
|
+ return createAndQuery(model, request, query);
|
|
|
|
+ }else {
|
|
|
|
+ Gson gson = new Gson();
|
|
|
|
+ ScoreVerifyParam param = gson.fromJson(sv.getParams(), ScoreVerifyParam.class);
|
|
|
|
+ query.setParam(param);
|
|
|
|
+ return query(model, request, query);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String createAndQuery(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ try {
|
|
|
|
+ scoreVerifyService.createQuery(query);
|
|
|
|
+ query.setFlagged(null);
|
|
|
|
+ Integer totalCount = scoreVerifyService.countByQuery(query);
|
|
|
|
+ if(totalCount>0) {
|
|
|
|
+ List<ScoreVerifyVo> list = scoreVerifyService.findByQuery(query);
|
|
|
|
+ query.setFlagged(true);
|
|
|
|
+ Integer needVerifyCount = scoreVerifyService.countByQuery(query);
|
|
|
|
+ query.setResult(list);
|
|
|
|
+ query.setTotalCount(totalCount);
|
|
|
|
+ model.addAttribute("needVerifyCount", needVerifyCount);
|
|
|
|
+ }else {
|
|
|
|
+ query.setResult(new ArrayList<>());
|
|
|
|
+ query.setTotalCount(0);
|
|
|
|
+ model.addAttribute("needVerifyCount", 0);
|
|
|
|
+ }
|
|
|
|
+ } catch (StatusException e) {
|
|
|
|
+ model.addAttribute("errmsg", e.getDesc());
|
|
|
|
+ }finally {
|
|
|
|
+ model.addAttribute("showType", "page");
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("query", query);
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String query(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ query.setFlagged(null);
|
|
|
|
+ Integer totalCount = scoreVerifyService.countByQuery(query);
|
|
|
|
+ if(totalCount>0) {
|
|
|
|
+ List<ScoreVerifyVo> list = scoreVerifyService.findByQuery(query);
|
|
|
|
+ query.setFlagged(true);
|
|
|
|
+ Integer needVerifyCount = scoreVerifyService.countByQuery(query);
|
|
|
|
+ query.setResult(list);
|
|
|
|
+ query.setTotalCount(totalCount);
|
|
|
|
+ model.addAttribute("needVerifyCount", needVerifyCount);
|
|
|
|
+ }else {
|
|
|
|
+ query.setResult(new ArrayList<>());
|
|
|
|
+ query.setTotalCount(0);
|
|
|
|
+ model.addAttribute("needVerifyCount", 0);
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("query", query);
|
|
|
|
+ model.addAttribute("showType", "page");
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ }
|
|
}
|
|
}
|