1
0
ting.yin 3 gadi atpakaļ
vecāks
revīzija
40c962e844

+ 8 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/MarkerServiceImpl.java

@@ -134,11 +134,15 @@ public class MarkerServiceImpl extends BaseQueryService<Marker> implements Marke
                 }
                 if (StringUtils.isNotBlank(query.getLoginName())) {
                     List<User> users = userDao.findStartWithLoginName(query.getLoginName());
-                    List<Integer> list = new ArrayList<Integer>();
-                    for (User user : users) {
-                        list.add(user.getId());
+                    if (!users.isEmpty()) {
+                        List<Integer> list = new ArrayList<Integer>();
+                        for (User user : users) {
+                            list.add(user.getId());
+                        }
+                        predicates.add(root.get("userId").in(list));
+                    } else {
+                        predicates.add(cb.equal(root.get("userId"), 0));
                     }
-                    predicates.add(root.get("userId").in(list));
                 }
                 return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
                         .size()]));

+ 8 - 6
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/ObjectiveQuestionDTO.java

@@ -5,6 +5,7 @@ import org.apache.commons.lang.StringUtils;
 import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.common.annotation.ExcelField;
+import cn.com.qmth.stmms.common.enums.QuestionType;
 
 public class ObjectiveQuestionDTO implements QuestionDTO {
 
@@ -34,8 +35,8 @@ public class ObjectiveQuestionDTO implements QuestionDTO {
     @ExcelField(title = "小题满分", align = 2, sort = 80)
     private Double totalScore;
 
-    @ExcelField(title = "题型(1-单选,2-多选,3-判断)", align = 2, sort = 90)
-    private Integer question;
+    @ExcelField(title = "题型(1-单选,2-多选,3-判断)", align = 2, sort = 90, type = 2)
+    private Integer type;
 
     public ObjectiveQuestionDTO() {
 
@@ -67,6 +68,7 @@ public class ObjectiveQuestionDTO implements QuestionDTO {
         question.setAnswer(StringUtils.trimToNull(answer));
         question.setTotalScore(totalScore);
         question.setIntervalScore(1d);
+        question.setType(QuestionType.findByValue(type));
         return question;
     }
 
@@ -134,12 +136,12 @@ public class ObjectiveQuestionDTO implements QuestionDTO {
         this.paperType = paperType;
     }
 
-    public Integer getQuestion() {
-        return question;
+    public Integer getType() {
+        return type;
     }
 
-    public void setQuestion(Integer question) {
-        this.question = question;
+    public void setType(Integer type) {
+        this.type = type;
     }
 
 }

+ 4 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/SubjectQuestionDTO.java

@@ -150,6 +150,10 @@ public class SubjectQuestionDTO {
                         error.add("[" + subjectCode + "] 大题号" + question.getMainNumber() + "有判断题标答不为A或B的记录");
                         return false;
                     }
+                    if (QuestionType.SINGLE.equals(question.getType()) && question.getAnswer().length() > 1) {
+                        error.add("[" + subjectCode + "] 大题号" + question.getMainNumber() + "有单选题标答大于一个的记录");
+                        return false;
+                    }
                     String title = titleMap.get(question.getMainNumber());
                     if (title != null && !title.equals(question.getMainTitle())) {
                         error.add("[" + subjectCode + "] 大题号" + question.getMainNumber() + "有名称不一致的记录");