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

fix:机构树查询 login_name

caozixuan 3 жил өмнө
parent
commit
8925af68a7

+ 41 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/marking/Question.java

@@ -3,6 +3,9 @@ package com.qmth.distributed.print.business.bean.marking;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 题目结构
@@ -65,6 +68,18 @@ public class Question {
         this.answer = answer;
     }
 
+    /**
+     * 判断两个题目是否完全相同
+     * <p>
+     *     1.大题号
+     *     2.小题号
+     *     3.题目分数
+     *     4.大题名称
+     * </p>
+     * @param a 题目a
+     * @param b 题目b
+     * @return true:相同 false:不相同
+     */
     public static boolean matchTwoObjects(Question a, Question b) {
         if (!a.getMainNumber().equals(b.getMainNumber())) {
             return false;
@@ -77,4 +92,30 @@ public class Question {
         }
         return a.getMainTitle().equals(b.getMainTitle());
     }
+
+    /**
+     * 匹配两个题目集合是否在关键字段上相同
+     * @param ql1 题目集合1
+     * @param ql2 题目集合2
+     * @return true:相同 false:不相同
+     */
+    public static boolean matchTwoQuestionList(List<Question> ql1, List<Question> ql2){
+        // 两个结构内元素数量不一致直接返回错误
+        if (ql1.size() != ql2.size()) {
+            return false;
+        }
+
+        // 排序
+        List<Question> ql1Sort = ql1.stream().sorted(Comparator.comparing(Question::getMainNumber).thenComparing(Question::getSubNumber)).collect(Collectors.toList());
+        List<Question> ql2Sort = ql2.stream().sorted(Comparator.comparing(Question::getMainNumber).thenComparing(Question::getSubNumber)).collect(Collectors.toList());
+
+        for (int i = 0; i < ql1Sort.size(); i++) {
+            Question q1 = ql1Sort.get(i);
+            Question q2 = ql2Sort.get(i);
+            if (!Question.matchTwoObjects(q1, q2)) {
+                return false;
+            }
+        }
+        return true;
+    }
 }

+ 13 - 22
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java

@@ -280,10 +280,17 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
     @Transactional(rollbackFor = Exception.class)
     @Override
     public ExamPaperStructure submitExamPaperParams(String evaluationParameterStr, SysUser requestUser) {
-        // 1.保存试卷结构
+        // 1.判断试卷中主观题是否全部完成分组
+        EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr, EvaluationParameters.class);
+//        Question.matchTwoQuestionList(evaluationParameters.getPaperStructureInfo().getSubjectiveQuestionList(),
+//                evaluationParameters.getGroupInfo().stream().flatMap(e -> {
+//                    List<Question> questionList = e.getQuestions();
+//
+//                }).collect(Collectors.toList()));
+        // 2.保存试卷结构
         ExamPaperStructure examPaperStructure = this.saveExamPaperStructure(evaluationParameterStr, requestUser);
-        // 2.保存分组和分组关系信息
-        EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr,EvaluationParameters.class);
+        // 3.保存分组和分组关系信息
+
         examPaperGroupService.saveExamPaperGroupInfo(examPaperStructure.getId(), evaluationParameters.getGroupInfo());
         // 返回试卷结构信息
         return examPaperStructure;
@@ -332,7 +339,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
      * @return 评卷参数id
      */
     private ExamPaperStructure saveExamPaperStructure(String evaluationParameterStr, SysUser requestUser) {
-        EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr,EvaluationParameters.class);
+        EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr, EvaluationParameters.class);
         BasicPaperInfo basicPaperInfo = evaluationParameters.getBasicPaperInfo();
         PaperStructureInfo paperStructureInfo = evaluationParameters.getPaperStructureInfo();
 
@@ -346,7 +353,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
         String courseCode = basicPaperInfo.getCourseCode();
         String courseName = basicPaperInfo.getCourseName();
         String paperType = basicPaperInfo.getPaperType();
-        if (!SystemConstant.strNotNull(paperType)){
+        if (!SystemConstant.strNotNull(paperType)) {
             throw ExceptionResultEnum.ERROR.exception("试卷类型不存在");
         }
         ExamPaperStructureStatusEnum status = basicPaperInfo.getStatus();
@@ -581,22 +588,6 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
 
         List<Question> freshList = JSON.parseArray(newQuestions, Question.class);
 
-        // 两个结构内元素数量不一致直接返回错误
-        if (dbList.size() != freshList.size()) {
-            return false;
-        }
-
-        // 排序
-        List<Question> dbSort = dbList.stream().sorted(Comparator.comparing(Question::getMainNumber).thenComparing(Question::getSubNumber)).collect(Collectors.toList());
-        List<Question> freshSort = freshList.stream().sorted(Comparator.comparing(Question::getMainNumber).thenComparing(Question::getSubNumber)).collect(Collectors.toList());
-
-        for (int i = 0; i < dbSort.size(); i++) {
-            Question db = dbSort.get(i);
-            Question fresh = freshSort.get(i);
-            if (!Question.matchTwoObjects(db, fresh)) {
-                return false;
-            }
-        }
-        return true;
+        return Question.matchTwoQuestionList(dbList, freshList);
     }
 }

+ 11 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/SysUserResult.java

@@ -20,6 +20,9 @@ public class SysUserResult implements Serializable {
     @ApiModelProperty(value = "用户id")
     private Long id;
 
+    @ApiModelProperty(value = "登录名")
+    private String loginName;
+
     @ApiModelProperty(value = "用户真实姓名")
     private String realName;
 
@@ -44,6 +47,14 @@ public class SysUserResult implements Serializable {
         this.id = id;
     }
 
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
     public String getRealName() {
         return realName;
     }

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -1134,6 +1134,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             }
             SysUserResult sysUserResult = new SysUserResult();
             sysUserResult.setId(e.getId());
+            sysUserResult.setLoginName(e.getLoginName());
             sysUserResult.setRealName(e.getRealName());
             sysUserResult.setMobileNumber(e.getMobileNumber());
             sysUserResult.setOrgId(e.getOrgId());