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

Merge branch 'dev_1.5.1' of http://git.qmth.com.cn/luoshi/stmms-ft.git into dev_1.5.1

xiatian 10 сар өмнө
parent
commit
ab66441948

+ 26 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/config/service/impl/SystemCache.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import javax.annotation.PostConstruct;
 
+import cn.com.qmth.stmms.common.enums.TrialMode;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -48,6 +49,8 @@ public class SystemCache {
 
     private boolean enableStudentSheetCount;
 
+    private TrialMode trialMode;
+
     @Value("${qmth.solar.host}")
     private String host;
 
@@ -65,6 +68,7 @@ public class SystemCache {
                 Auth = true;
                 doubleTrack = true;
                 groupDeleteWarn = false;
+                trialMode = TrialMode.SHARE;
             }
         } else if (s != null && SystemAuthType.OFFLINE.equals(s.getType())) {
             JSONObject json = AppLicenseUtil.parseLicense(ByteArray.fromBase64(s.getDescription()).value());
@@ -73,11 +77,12 @@ public class SystemCache {
             Auth = false;
             doubleTrack = false;
             groupDeleteWarn = false;
+            trialMode = TrialMode.SHARE;
         }
         fileServer = configService.findByType(ConfigType.FILE_SERVER);
         markTime = Long.parseLong(configService.findByType(ConfigType.MARK_TIME));
         String studentSheetCount = configService.findByType(ConfigType.STUDENT_SHEET_COUNT);
-        enableStudentSheetCount = studentSheetCount!=null&&studentSheetCount.equals("on");
+        enableStudentSheetCount = studentSheetCount != null && studentSheetCount.equals("on");
     }
 
     public boolean isAuth() {
@@ -136,6 +141,14 @@ public class SystemCache {
         this.enableStudentSheetCount = enableStudentSheetCount;
     }
 
+    public TrialMode getTrialMode() {
+        return trialMode;
+    }
+
+    public void setTrialMode(TrialMode trialMode) {
+        this.trialMode = trialMode;
+    }
+
     public void parseJson(JSONObject json) {
         if (json != null) {
             Auth = true;
@@ -170,11 +183,23 @@ public class SystemCache {
                     e.printStackTrace();
                 }
             }
+
+            this.trialMode = TrialMode.SHARE;
+            if (json.has("control") && json.getJSONObject("control").has("custom")
+                    && json.getJSONObject("control").getJSONObject("custom").has("trial_mode")) {
+                try {
+                    this.trialMode = TrialMode.findByName(json.getJSONObject("control").getJSONObject("custom")
+                            .getString("trial_mode"));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
         } else {
             Auth = false;
             doubleTrack = false;
             groupDeleteWarn = false;
             expireTime = null;
+            trialMode = TrialMode.SHARE;
         }
     }
 

+ 5 - 7
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkCronService.java

@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import cn.com.qmth.stmms.common.enums.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,11 +35,6 @@ import cn.com.qmth.stmms.biz.mark.service.MarkService;
 import cn.com.qmth.stmms.biz.mark.service.TrialService;
 import cn.com.qmth.stmms.biz.report.service.ReportService;
 import cn.com.qmth.stmms.biz.utils.TaskLockUtil;
-import cn.com.qmth.stmms.common.enums.ConfigType;
-import cn.com.qmth.stmms.common.enums.ExamStatus;
-import cn.com.qmth.stmms.common.enums.LibraryStatus;
-import cn.com.qmth.stmms.common.enums.LockType;
-import cn.com.qmth.stmms.common.enums.MarkStatus;
 
 /**
  * 与评卷相关的所有定时任务
@@ -218,7 +214,9 @@ public class MarkCronService {
                         MarkStatus.FORMAL, MarkStatus.TRIAL);
                 for (MarkGroup group : groups) {
                     // 试评状态的分组也提前生成
-                    buildTrialLibrary(group);
+                    if (TrialMode.SHARE.equals(systemCache.getTrialMode()) || null == systemCache.getTrialMode()) {
+                        buildTrialLibrary(group);
+                    }
                     // 生成正评任务
                     buildFormalLibrary(group);
                 }
@@ -301,7 +299,7 @@ public class MarkCronService {
                             list = new ArrayList<>();
                         }
                     }
-                    if(!list.isEmpty()){
+                    if (!list.isEmpty()) {
                         Collections.shuffle(list);
                         saveList.addAll(list);
                     }

+ 5 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -7,6 +7,7 @@ import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
 
+import cn.com.qmth.stmms.biz.config.service.impl.SystemCache;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -117,6 +118,9 @@ public class MarkServiceImpl implements MarkService {
     @Autowired
     private LockService lockService;
 
+    @Autowired
+    private SystemCache authCache;
+
     private Map<Integer, Long> markerLastUpdateTime = new ConcurrentHashMap<>();
 
     @Autowired
@@ -574,7 +578,7 @@ public class MarkServiceImpl implements MarkService {
                     }
                 }
             }
-        } else if (group.getStatus() == MarkStatus.TRIAL) {
+        } else if (group.getStatus() == MarkStatus.TRIAL ) {
             TrialLibrary library = trialLibraryDao.findOne(result.getLibraryId());
             if (library != null && library.getExamId().equals(group.getExamId())
                     && library.getSubjectCode().equals(group.getSubjectCode())

+ 28 - 0
stmms-common/src/main/java/cn/com/qmth/stmms/common/enums/TrialMode.java

@@ -0,0 +1,28 @@
+package cn.com.qmth.stmms.common.enums;
+
+/**
+ * 试评模式
+ */
+public enum TrialMode {
+
+    SHARE("成绩汇总模式"), EXCLUSIVE("分组比对模式");
+
+    private String name;
+
+    private TrialMode(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public static TrialMode findByName(String name) {
+        for (TrialMode c : TrialMode.values()) {
+            if (c.toString().equalsIgnoreCase(name)) {
+                return c;
+            }
+        }
+        return null;
+    }
+}

+ 4 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/config/SystemAuthController.java

@@ -12,6 +12,7 @@ import cn.com.qmth.stmms.common.controller.BaseController;
 import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.enums.SystemAuthType;
+import cn.com.qmth.stmms.common.enums.TrialMode;
 import cn.com.qmth.stmms.common.utils.AesUtils;
 import cn.com.qmth.stmms.common.utils.Encodes;
 
@@ -71,6 +72,7 @@ public class SystemAuthController extends BaseController {
         view.addObject("doubleTrack", authCache.isDoubleTrack());
         view.addObject("groupDeleteWarn", authCache.isGroupDeleteWarn());
         view.addObject("expireTime", authCache.getExpireTime() == null ? null : new Date(authCache.getExpireTime()));
+        view.addObject("trialMode", authCache.getTrialMode()== null ? TrialMode.SHARE:authCache.getTrialMode());
         return view;
     }
 
@@ -101,11 +103,13 @@ public class SystemAuthController extends BaseController {
                 authCache.setAuth(true);
                 authCache.setDoubleTrack(true);
                 authCache.setExpireTime(null);
+                authCache.setTrialMode(TrialMode.SHARE);
                 schoolService.updateOrg();
             } else {
                 authCache.setAuth(false);
                 authCache.setDoubleTrack(false);
                 authCache.setExpireTime(null);
+                authCache.setTrialMode(TrialMode.SHARE);
                 addMessage(redirectAttributes, "授权验证失败");
             }
         } else {

+ 2 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/sys/authInfo.jsp

@@ -31,7 +31,8 @@
 	        <div class="controls">
 	        	${systemAuth.type.name }
 	        	<c:if test="${doubleTrack}">:双评轨迹授权</c:if>
-	        	<c:if test="${groupDeleteWarn}">&nbsp; 开启删除分组警告</c:if>
+	        	<c:if test="${groupDeleteWarn}">&nbsp; 开启删除分组警告&nbsp; </c:if>
+				试评:${trialMode.name}
 	        </div>
 	    </div>
 	</form:form>