1
0
Эх сурвалжийг харах

评卷登录考试逆序;修复无考生评卷分组显示错误;修复多媒体试卷过大显示问题

ting.yin 4 жил өмнө
parent
commit
78c3da6e11

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamDao.java

@@ -39,7 +39,7 @@ public interface ExamDao extends PagingAndSortingRepository<Exam, Integer>, JpaS
     public Exam findFirstBySchoolIdAndCode(Integer schoolId, String code);
 
     @Query(value = "select * from eb_exam e where e.id in (select DISTINCT m.exam_id from eb_marker m where m.user_id=?1) and e.create_time >?2 "
-            + "order by e.id", nativeQuery = true)
+            + "order by e.id desc", nativeQuery = true)
     public List<Exam> findByMarkerUserId(Integer userId, Date time);
 
     @Query(value = "select * from eb_exam e where e.id in (select s.exam_id from eb_exam_subject s where s.code in (select su.subject_code from eb_subject_user su where su.user_id=?1) )"

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

@@ -89,9 +89,12 @@ public class MarkGroupController extends BaseExamController {
         ExamSubject subject = null;
         if (StringUtils.isNotBlank(subjectCode)) {
             subject = subjectService.find(examId, subjectCode);
-        } else {
+        } else if (!subjectList.isEmpty()) {
             subject = subjectList.get(0);
         }
+        if (subject == null) {
+            return "modules/exam/groupList";
+        }
         List<MarkGroup> list = groupService.findByExamAndSubject(examId, subject.getCode());
         for (MarkGroup group : list) {
             group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,

+ 17 - 38
stmms-web/src/main/java/cn/com/qmth/stmms/admin/user/SubjectUserController.java

@@ -1,14 +1,29 @@
 package cn.com.qmth.stmms.admin.user;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+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.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
 import cn.com.qmth.stmms.admin.exam.BaseExamController;
-import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.model.SubjectUser;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
 import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.biz.user.service.UserService;
-import cn.com.qmth.stmms.biz.user.service.query.UserSearchQuery;
 import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.domain.WebUser;
 import cn.com.qmth.stmms.common.enums.LogType;
@@ -20,21 +35,6 @@ import cn.com.qmth.stmms.common.utils.ExportExcel;
 import cn.com.qmth.stmms.common.utils.ImportExcel;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 
-import org.apache.commons.lang.StringUtils;
-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.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import java.util.*;
-
 @Controller
 @RequestMapping("/admin/user/subject")
 public class SubjectUserController extends BaseExamController {
@@ -151,25 +151,4 @@ public class SubjectUserController extends BaseExamController {
         }
         return user;
     }
-
-    @RequestMapping("/save")
-    public String add(Model model, HttpServletRequest request, UserSearchQuery query, @RequestParam String subjectCode) {
-        int examId = getSessionExamId(request);
-        Exam exam = examService.findById(examId);
-        query.setSchoolId(exam.getSchoolId());
-        query.setRole(Role.SUBJECT_HEADER);
-        query = userService.findByQuery(query);
-        model.addAttribute("query", query);
-        model.addAttribute("subject", subjectService.find(examId, subjectCode));
-        return "modules/exam/userSubject";
-    }
-
-    @Logging(menu = "科组长绑定", type = LogType.ADD)
-    @RequestMapping(value = "/add", method = RequestMethod.POST)
-    public String save(@RequestParam String subjectCode, @RequestParam Integer[] userIds, HttpServletRequest request,
-            RedirectAttributes redirectAttributes) {
-        subjectUserService.save(subjectCode, userIds);
-        addMessage(redirectAttributes, subjectCode + "设置成功");
-        return "redirect:/admin/user/subject?subjectCode=" + subjectCode;
-    }
 }

+ 67 - 67
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/jsonView.jsp

@@ -44,78 +44,78 @@
             dataType: "json",
             success: function (data) {
             	paperqQuestions = data.questions;
-            }
-        })
-        $.ajax({
-            type: "GET",
-            url: answerUrl,
-            dataType: "json",
-            success: function (data) {
-                //var data ='[{"mainNumber": 6,"subNumber": 1,"body": {"sections": [{ "blocks":[{"type": "text","value": "我是题目我是题目我是题目"}]}]},"answer": {"sections": [{"blocks":[{"type": "audio","value": "https://ecs-test-static.qmth.com.cn/oe-answer-file/3/8/19/3_8_19_15748452552644264.mp3"}]}]},"studentAnswer": {"sections": [{"blocks":[{"type": "image","value": "https://ecs-test-static.qmth.com.cn/oe-answer-file/3/8/20/3_8_20_15748452889591137.jpeg"},{"type": "image","value": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1582709869784&di=39683b1330bd09bebd93c95fe925ca70&imgtype=0&src=http%3A%2F%2Fn.sinaimg.cn%2Fsinacn10108%2F170%2Fw600h370%2F20190222%2Fd6de-htknpmh2595255.jpg"}]}]}}]';
-                //data = JSON.parse(data);
-                let questions = data || [];
-                for (var j in questions) {
-                	var question = questions[j];
-                	var paperQuestion = paperqQuestions[j];
-                    // 按题号过滤
-                    if (questionArr[question.mainNumber + "." + question.subNumber] === true || questionNumbers == "") {
-                        let numberTitle = {
-                            "blocks": [{
-                                "type": "text",
-                                "param": {"bold": true},
-                                "value": "题号:" + question.mainNumber + "-" + question.subNumber
-                            }]
-                        };
-                        let bodyTitle = {
-                            "blocks": [{
-                                "type": "text",
-                                "param": {"bold": true},
-                                "value": "题干:"
-                            }]
-                        };
-                        let answerTitle = {
-                            "blocks": [{
-                                "type": "text",
-                                "param": {"bold": true},
-                                "value": "考生答案:"
-                            }, {
-                                "type": "text",
-                                "param": {
-                                    "italic": true,
-                                    "danger": true
-                                },
-                                "value": "(字数统计:" + textCount(question.answer) + ")"
-                            }]
-                        };
-                        let standardTitle = {
-                            "blocks": [{
-                                "type": "text",
-                                "param": {"bold": true},
-                                "value": "标准答案:"
-                            }]
-                        };
-                        this.holder = $('#json-view-content');
-                        $(renderSection(numberTitle)).appendTo(this.holder);
-                        $(renderSection(bodyTitle)).appendTo(this.holder);
-                        if (paperQuestion.parentBody != null && paperQuestion.parentBody != undefined) {
-                            $(renderRichText(paperQuestion.parentBody)).appendTo(this.holder);
+                $.ajax({
+                    type: "GET",
+                    url: answerUrl,
+                    dataType: "json",
+                    success: function (data) {
+                        //var data ='[{"mainNumber": 6,"subNumber": 1,"body": {"sections": [{ "blocks":[{"type": "text","value": "我是题目我是题目我是题目"}]}]},"answer": {"sections": [{"blocks":[{"type": "audio","value": "https://ecs-test-static.qmth.com.cn/oe-answer-file/3/8/19/3_8_19_15748452552644264.mp3"}]}]},"studentAnswer": {"sections": [{"blocks":[{"type": "image","value": "https://ecs-test-static.qmth.com.cn/oe-answer-file/3/8/20/3_8_20_15748452889591137.jpeg"},{"type": "image","value": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1582709869784&di=39683b1330bd09bebd93c95fe925ca70&imgtype=0&src=http%3A%2F%2Fn.sinaimg.cn%2Fsinacn10108%2F170%2Fw600h370%2F20190222%2Fd6de-htknpmh2595255.jpg"}]}]}}]';
+                        //data = JSON.parse(data);
+                        let questions = data || [];
+                        for (var j in questions) {
+                        	var question = questions[j];
+                        	var paperQuestion = paperqQuestions[j];
+                            // 按题号过滤
+                            if (questionArr[question.mainNumber + "." + question.subNumber] === true || questionNumbers == "") {
+                                let numberTitle = {
+                                    "blocks": [{
+                                        "type": "text",
+                                        "param": {"bold": true},
+                                        "value": "题号:" + question.mainNumber + "-" + question.subNumber
+                                    }]
+                                };
+                                let bodyTitle = {
+                                    "blocks": [{
+                                        "type": "text",
+                                        "param": {"bold": true},
+                                        "value": "题干:"
+                                    }]
+                                };
+                                let answerTitle = {
+                                    "blocks": [{
+                                        "type": "text",
+                                        "param": {"bold": true},
+                                        "value": "考生答案:"
+                                    }, {
+                                        "type": "text",
+                                        "param": {
+                                            "italic": true,
+                                            "danger": true
+                                        },
+                                        "value": "(字数统计:" + textCount(question.answer) + ")"
+                                    }]
+                                };
+                                let standardTitle = {
+                                    "blocks": [{
+                                        "type": "text",
+                                        "param": {"bold": true},
+                                        "value": "标准答案:"
+                                    }]
+                                };
+                                this.holder = $('#json-view-content');
+                                $(renderSection(numberTitle)).appendTo(this.holder);
+                                $(renderSection(bodyTitle)).appendTo(this.holder);
+                                if (paperQuestion.parentBody != null && paperQuestion.parentBody != undefined) {
+                                    $(renderRichText(paperQuestion.parentBody)).appendTo(this.holder);
+                                }
+                                $(renderRichText(paperQuestion.body)).appendTo(this.holder);
+                                $(renderSection(answerTitle)).appendTo(this.holder);
+                                $(renderRichText(question.answer)).appendTo(this.holder);
+                                $(renderSection(standardTitle)).appendTo(this.holder);
+                                $(renderRichText(paperQuestion.answer)).appendTo(this.holder);
+                            }
+                        }
+                        if (this.viewer != undefined) {
+                            this.viewer.destroy();
                         }
-                        $(renderRichText(paperQuestion.body)).appendTo(this.holder);
-                        $(renderSection(answerTitle)).appendTo(this.holder);
-                        $(renderRichText(question.answer)).appendTo(this.holder);
-                        $(renderSection(standardTitle)).appendTo(this.holder);
-                        $(renderRichText(paperQuestion.answer)).appendTo(this.holder);
+                        const viewer = new Viewer($('#json-view-content')[0], {});
                     }
-                }
-                if (this.viewer != undefined) {
-                    this.viewer.destroy();
-                }
-                const viewer = new Viewer($('#json-view-content')[0], {});
+                });
             }
-        });
-
+        })
     }
 
+    
     function textCount(jsonBody) {
         let sections = jsonBody.sections || [];
         let count = 0;

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp

@@ -12,7 +12,7 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
-	<li><a href="${ctx}/admin/exam/mark?subjectCode=${subject.code}">评卷进度</a></li>
+	<li><a href="${ctx}/admin/exam/mark?subjectCode=${query.code}">评卷进度</a></li>
     <li><a href="${ctx}/admin/exam/group?subjectCode=${query.subjectCode}">分组管理</a></li>
     <li><a href="${ctx}/admin/exam/marker?subjectCode=${query.subjectCode}">评卷员管理</a></li>
     <li><a href="${ctx}/admin/exam/trial?subjectCode=${query.subjectCode}">试评管理</a></li>

+ 0 - 77
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/userSubject.jsp

@@ -1,77 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
-<html>
-<head>
-	<title>评卷员进度</title>
-	<meta name="decorator" content="default"/>
-	<%@include file="/WEB-INF/views/include/head.jsp" %>
-	<style type="text/css">.sort{color:#0663A2;cursor:pointer;}</style>
-</head>
-<body>
-	<ul class="nav nav-tabs">
-		<li><a href="${ctx}/admin/exam-param/marker?subjectCode=${subject.code}">评卷员管理</a></li>
-		<li  class="active"><a href="#">科目:${subject.code }-${subject.name }设置</a></li>
-	</ul>
-	<form id="searchForm"  action="${ctx}/admin/exam-param/marker/save" method="post" class="breadcrumb form-search">
-		<input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber}"/>
-		<input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize}"/>
-		<input type="hidden" name="subjectCode" value="${subject.code}"/>
-		<div>
-			<label>登录名</label>
-			<input type="text" name="loginName" value="${query.loginName }"  maxlength="20" class="input-small"/> 
-			&nbsp;
-			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
-			<input id="addSubmit" class="btn btn-primary" type="button" value="绑定" onclick="goAdd()"/>
-		</div>
-	</form>
-	<tags:message content="${message}"/>
-	<form id="addForm"  action="${ctx}/admin/exam-param/marker/add" method="post" class="breadcrumb form-search">
-	<input type="hidden" id="subjectCode" name="subjectCode" value="${subject.code}"/>
-	<table id="contentTable" class="table table-striped table-bordered table-condensed">
-		<thead>
-			<tr>
-				<th></th>
-				<th>登录名</th>
-				<th>姓名</th>
-			</tr>
-		</thead>
-		<tbody>
-		<c:forEach items="${query.result}" var="user">
-			<tr>
-				<td><input name="userIds" type="checkbox" value="${user.id }"/></td>
-				<td>${user.loginName}</td>
-				<td>${user.name}</td>
-			</tr>
-		</c:forEach>
-		</tbody>
-	</table>
-	</form>
-	<div class="pagination">${query}</div>
-<script type="text/javascript">
-function page(n,s){
-	$("#pageNumber").val(n);
-	$("#pageSize").val(s);
-	$("#searchForm").submit();
-	return false;
-}
-function goSearch(){
-	$("#pageNumber").val(1);
-	$("#pageSize").val('${query.pageSize}');
-	$("#searchForm").submit();
-	return false;
-}
-function goAdd(){
-	var check_list = []
-	$("input[name='userIds']:checked").each(function(){
-		check_list.push($(this).val())
-	})
-    if(check_list.length==0) {
-        alert('请选择用户');
-        return false;
-    }
-	$("#addForm").submit();
-	return false;
-}
-</script>	
-</body>
-</html>