Преглед на файлове

Merge remote-tracking branch 'origin/release_v4.1.4'

deason преди 2 години
родител
ревизия
86c69ca826

+ 13 - 5
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamController.java

@@ -327,7 +327,7 @@ public class ExamController extends ControllerSupport {
     @DataRule(type = DataRuleType.EXAM)
     @ApiOperation(value = "查询考试批次")
     @GetMapping("queryByNameLike")
-    public List<ExamDomain> query(@RequestParam(required = true) String name,
+    public List<ExamDomain> query(@RequestParam(required = false) String name,
                                   @RequestParam(required = false) String examTypes,
                                   @RequestParam(required = false) Boolean enable,
                                   @RequestParam(required = false) String propertyKeys,
@@ -380,11 +380,15 @@ public class ExamController extends ControllerSupport {
             if (null != studentId) {
                 Subquery<ExamStudentEntity> subquery = query.subquery(ExamStudentEntity.class);
                 Root<ExamStudentEntity> subRoot = subquery.from(ExamStudentEntity.class);
-                subquery.select(subRoot.get("id"));
+                // subquery.select(subRoot.get("id"));
+                // Predicate p1 = cb.equal(subRoot.get("studentId"), studentId);
+                // Predicate p2 = cb.equal(subRoot.get("examId"), root.get("id"));
+                // subquery.where(cb.and(p1, p2));
+                // predicates.add(cb.exists(subquery));
+                subquery.distinct(true).select(subRoot.get("examId"));
                 Predicate p1 = cb.equal(subRoot.get("studentId"), studentId);
-                Predicate p2 = cb.equal(subRoot.get("examId"), root.get("id"));
-                subquery.where(cb.and(p1, p2));
-                predicates.add(cb.exists(subquery));
+                subquery.where(p1);
+                predicates.add(root.get("id").in(subquery));
             }
 
             return cb.and(predicates.toArray(new Predicate[predicates.size()]));
@@ -895,6 +899,8 @@ public class ExamController extends ControllerSupport {
             ExamEntity exam = GlobalHelper.getEntity(examRepo, examId, ExamEntity.class);
             exam.setEnable(true);
             examRepo.saveAndFlush(exam);
+
+            examSpecialSettingsRepo.updateExamEnableByExamId(examId, true);
         }
 
         for (Long examId : examIds) {
@@ -937,6 +943,8 @@ public class ExamController extends ControllerSupport {
             ExamEntity exam = GlobalHelper.getEntity(examRepo, examId, ExamEntity.class);
             exam.setEnable(false);
             examRepo.saveAndFlush(exam);
+
+            examSpecialSettingsRepo.updateExamEnableByExamId(examId, false);
         }
 
         for (Long examId : examIds) {

+ 10 - 9
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/OnGoingExamServiceImpl.java

@@ -69,28 +69,29 @@ public class OnGoingExamServiceImpl implements OnGoingExamService {
         for (ExamSpecialSettingsEntity cur : byExam) {
             if (!cur.getSpecialSettingsEnabled()) {
                 examList.add(cur);
+                continue;
             }
+
             ExamSpecialSettingsType specialSettingsType = cur.getSpecialSettingsType();
             if (null == specialSettingsType) {
                 examList.add(cur);
-            } else if (specialSettingsType.equals(ExamSpecialSettingsType.ORG_BASED)) {
+                continue;
+            }
+
+            if (specialSettingsType.equals(ExamSpecialSettingsType.ORG_BASED)) {
                 ExamSpecialSettingsEntity specialSettings = examSpecialSettingsRepo
-                        .findByExamIdAndOrgIdAndCourseIdIsNullAndStudentIdIsNull(cur.getExamId(),
-                                orgId);
+                        .findByExamIdAndOrgIdAndCourseIdIsNullAndStudentIdIsNull(cur.getExamId(), orgId);
                 if (null == specialSettings) {
                     examList.add(cur);
-                } else if (null == specialSettings.getBeginTime()
-                        && null == specialSettings.getEndTime()) {
+                } else if (null == specialSettings.getBeginTime() && null == specialSettings.getEndTime()) {
                     examList.add(cur);
                 }
             } else if (specialSettingsType.equals(ExamSpecialSettingsType.STUDENT_BASED)) {
                 ExamSpecialSettingsEntity specialSettings = examSpecialSettingsRepo
-                        .findByExamIdAndStudentIdAndOrgIdIsNullAndCourseIdIsNull(cur.getExamId(),
-                                studentId);
+                        .findByExamIdAndStudentIdAndOrgIdIsNullAndCourseIdIsNull(cur.getExamId(), studentId);
                 if (null == specialSettings) {
                     examList.add(cur);
-                } else if (null == specialSettings.getBeginTime()
-                        && null == specialSettings.getEndTime()) {
+                } else if (null == specialSettings.getBeginTime() && null == specialSettings.getEndTime()) {
                     examList.add(cur);
                 }
             } else if (specialSettingsType.equals(ExamSpecialSettingsType.STAGE_BASED)) {

+ 324 - 318
examcloud-core-examwork-starter/src/main/resources/exam-properties.xml

@@ -1,321 +1,327 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <enums>
-	<enum>
-		<id>1</id>
-		<name>SCORE_PUBLISHING</name>
-		<desc>发布成绩</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>2</id>
-		<name>IS_ENTRANCE_EXAM</name>
-		<desc>是否入学考试</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>3</id>
-		<name>FREEZE_TIME</name>
-		<desc>交卷冻结时间</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>4</id>
-		<name>EXAM_RECONNECT_TIME</name>
-		<desc>断点续考时间(秒)</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>5</id>
-		<name>BEFORE_EXAM_REMARK</name>
-		<desc>考前说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>6</id>
-		<name>AFTER_EXAM_REMARK</name>
-		<desc>考后说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>7</id>
-		<name>SHOW_CHEATING_REMARK</name>
-		<desc>是否展示作弊</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>8</id>
-		<name>CHEATING_REMARK</name>
-		<desc>作弊说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>9</id>
-		<name>PRACTICE_TYPE</name>
-		<desc>练习模式</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>10</id>
-		<name>SINGLE_EDIT</name>
-		<desc>单选题补充说明是否可填</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>11</id>
-		<name>MUTIPLE_EDIT</name>
-		<desc>多选题补充说明是否可填</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>12</id>
-		<name>BOOL_EDIT</name>
-		<desc>判断题补充说明是否可填</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>13</id>
-		<name>FILL_BLANK_EDIT</name>
-		<desc>填空题补充说明是否可填</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>14</id>
-		<name>SINGLE_ANSWER_REMARK</name>
-		<desc>单选题补充说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>15</id>
-		<name>MUTIPLE_ANSWER_REMARK</name>
-		<desc>多选题补充说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>16</id>
-		<name>BOOL_ANSWER_REMARK</name>
-		<desc>判断题补充说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>17</id>
-		<name>FILL_BLANK_REMARK</name>
-		<desc>填空题补充说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>18</id>
-		<name>TEXT_ANSWER_REMARK</name>
-		<desc>问答题补充说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>19</id>
-		<name>NESTED_ANSWER_REMARK</name>
-		<desc>套题补充说明</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>20</id>
-		<name>IS_FACE_ENABLE</name>
-		<desc>是否启用人脸识别</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>21</id>
-		<name>IS_FACE_CHECK</name>
-		<desc>进入考试是否验证人脸识别(强制、非强制)</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>22</id>
-		<name>SNAPSHOT_INTERVAL</name>
-		<desc>抓拍间隔</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>23</id>
-		<name>WARN_THRESHOLD</name>
-		<desc>预警阈值</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>24</id>
-		<name>MARKING_TYPE</name>
-		<desc>阅卷方式</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>25</id>
-		<name>IS_FACE_VERIFY</name>
-		<desc>是否开启人脸活体检测</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>26</id>
-		<name>FACE_VERIFY_START_MINUTE</name>
-		<desc>活体检测开始分钟数</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>27</id>
-		<name>FACE_VERIFY_END_MINUTE</name>
-		<desc>活体检测结束分钟数</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>28</id>
-		<name>IP_LIMIT</name>
-		<desc>是否IP限制</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>29</id>
-		<name>IP_ADDRESSES</name>
-		<desc>IP白名单</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>30</id>
-		<name>IS_OBJ_SCORE_VIEW</name>
-		<desc>是否显示客观题成绩</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>31</id>
-		<name>CAN_UPLOAD_ATTACHMENT</name>
-		<desc>是否允许上传附件(离线考试)</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>32</id>
-		<name>LIVING_WARN_THRESHOLD</name>
-		<desc>真实性预警阀值</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>33</id>
-		<name>PUSH_SCORE</name>
-		<desc>是否推送成绩给学校</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>34</id>
-		<name>OFFLINE_UPLOAD_FILE_TYPE</name>
-		<desc>离线考试上传文件类型限制</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>35</id>
-		<name>MARKING_TASK_BUILDED</name>
-		<desc>阅卷是否生成评卷任务</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>36</id>
-		<name>MAX_INTERRUPT_NUM</name>
-		<desc>断点续考次数限制</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>37</id>
-		<name>IS_STRANGER_ENABLE</name>
-		<desc>是否启用陌生人检测</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>38</id>
-		<name>CHECK_ENVIRONMENT</name>
-		<desc>是否开启环境监察</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>39</id>
-		<name>WEIXIN_ANSWER_ENABLED</name>
-		<desc>开放微信小程序作答</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>40</id>
-		<name>ADD_FACE_VERIFY_OUT_FREEZE_TIME</name>
-		<desc>冻结时间外添加人脸活体检测</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>41</id>
-		<name>OUT_FREEZE_TIME_FACE_VERIFY_START_MINUTE</name>
-		<desc>冻结时间外活体检测开始分钟数</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>42</id>
-		<name>OUT_FREEZE_TIME_FACE_VERIFY_END_MINUTE</name>
-		<desc>冻结时间外活体检测结束分钟数</desc>
-		<valueType>LONG</valueType>
-	</enum>
-	<enum>
-		<id>43</id>
-		<name>LIMITED_IF_NO_SPECIAL_SETTINGS</name>
-		<desc>无特殊设置时禁止考试</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>44</id>
-		<name>APP_EXAM_ENABLED </name>
-		<desc>开放APP考试</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>45</id>
-		<name>VIRTUAL_CAMERA_AUDIT_ENABLED</name>
-		<desc>虚拟摄像头进入待审</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>46</id>
-		<name>EXAM_CYCLE_ENABLED</name>
-		<desc>是否启用考试周期设置</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>47</id>
-		<name>EXAM_CYCLE_WEEK</name>
-		<desc>考试周期星期设置</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>48</id>
-		<name>EXAM_CYCLE_TIME_RANGE</name>
-		<desc>考试周期时间段设置</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>49</id>
-		<name>IP_TOTAL_LIMIT</name>
-		<desc>IP访问设置-整体控制</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>50</id>
-		<name>IP_CENTER_LIMIT</name>
-		<desc>IP访问设置-学习中心控制</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>51</id>
-		<name>SHOW_UNDERTAKING</name>
-		<desc>显示设置-显示考生承诺书</desc>
-		<valueType>BOOLEAN</valueType>
-	</enum>
-	<enum>
-		<id>52</id>
-		<name>UNDERTAKING</name>
-		<desc>显示设置-考生承诺书</desc>
-		<valueType>STRING</valueType>
-	</enum>
-	<enum>
-		<id>53</id>
-		<name>MAX_SWITCH_SCREEN_COUNT</name>
-		<desc>控制设置-切屏次数限制</desc>
-		<valueType>INTEGER</valueType>
-	</enum>
+    <enum>
+        <id>1</id>
+        <name>SCORE_PUBLISHING</name>
+        <desc>发布成绩</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>2</id>
+        <name>IS_ENTRANCE_EXAM</name>
+        <desc>是否入学考试</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>3</id>
+        <name>FREEZE_TIME</name>
+        <desc>交卷冻结时间</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>4</id>
+        <name>EXAM_RECONNECT_TIME</name>
+        <desc>断点续考时间(秒)</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>5</id>
+        <name>BEFORE_EXAM_REMARK</name>
+        <desc>考前说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>6</id>
+        <name>AFTER_EXAM_REMARK</name>
+        <desc>考后说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>7</id>
+        <name>SHOW_CHEATING_REMARK</name>
+        <desc>是否展示作弊</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>8</id>
+        <name>CHEATING_REMARK</name>
+        <desc>作弊说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>9</id>
+        <name>PRACTICE_TYPE</name>
+        <desc>练习模式</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>10</id>
+        <name>SINGLE_EDIT</name>
+        <desc>单选题补充说明是否可填</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>11</id>
+        <name>MUTIPLE_EDIT</name>
+        <desc>多选题补充说明是否可填</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>12</id>
+        <name>BOOL_EDIT</name>
+        <desc>判断题补充说明是否可填</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>13</id>
+        <name>FILL_BLANK_EDIT</name>
+        <desc>填空题补充说明是否可填</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>14</id>
+        <name>SINGLE_ANSWER_REMARK</name>
+        <desc>单选题补充说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>15</id>
+        <name>MUTIPLE_ANSWER_REMARK</name>
+        <desc>多选题补充说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>16</id>
+        <name>BOOL_ANSWER_REMARK</name>
+        <desc>判断题补充说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>17</id>
+        <name>FILL_BLANK_REMARK</name>
+        <desc>填空题补充说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>18</id>
+        <name>TEXT_ANSWER_REMARK</name>
+        <desc>问答题补充说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>19</id>
+        <name>NESTED_ANSWER_REMARK</name>
+        <desc>套题补充说明</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>20</id>
+        <name>IS_FACE_ENABLE</name>
+        <desc>是否启用人脸识别</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>21</id>
+        <name>IS_FACE_CHECK</name>
+        <desc>进入考试是否验证人脸识别(强制、非强制)</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>22</id>
+        <name>SNAPSHOT_INTERVAL</name>
+        <desc>抓拍间隔</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>23</id>
+        <name>WARN_THRESHOLD</name>
+        <desc>预警阈值</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>24</id>
+        <name>MARKING_TYPE</name>
+        <desc>阅卷方式</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>25</id>
+        <name>IS_FACE_VERIFY</name>
+        <desc>开启考前人脸活体检测</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>26</id>
+        <name>FACE_VERIFY_START_MINUTE</name>
+        <desc>活体检测开始分钟数</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>27</id>
+        <name>FACE_VERIFY_END_MINUTE</name>
+        <desc>活体检测结束分钟数</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>28</id>
+        <name>IP_LIMIT</name>
+        <desc>是否IP限制</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>29</id>
+        <name>IP_ADDRESSES</name>
+        <desc>IP白名单</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>30</id>
+        <name>IS_OBJ_SCORE_VIEW</name>
+        <desc>是否显示客观题成绩</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>31</id>
+        <name>CAN_UPLOAD_ATTACHMENT</name>
+        <desc>是否允许上传附件(离线考试)</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>32</id>
+        <name>LIVING_WARN_THRESHOLD</name>
+        <desc>真实性预警阀值</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>33</id>
+        <name>PUSH_SCORE</name>
+        <desc>是否推送成绩给学校</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>34</id>
+        <name>OFFLINE_UPLOAD_FILE_TYPE</name>
+        <desc>离线考试上传文件类型限制</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>35</id>
+        <name>MARKING_TASK_BUILDED</name>
+        <desc>阅卷是否生成评卷任务</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>36</id>
+        <name>MAX_INTERRUPT_NUM</name>
+        <desc>断点续考次数限制</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>37</id>
+        <name>IS_STRANGER_ENABLE</name>
+        <desc>是否启用陌生人检测</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>38</id>
+        <name>CHECK_ENVIRONMENT</name>
+        <desc>是否开启环境监察</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>39</id>
+        <name>WEIXIN_ANSWER_ENABLED</name>
+        <desc>开放微信小程序作答</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>40</id>
+        <name>ADD_FACE_VERIFY_OUT_FREEZE_TIME</name>
+        <desc>冻结时间外添加人脸活体检测</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>41</id>
+        <name>OUT_FREEZE_TIME_FACE_VERIFY_START_MINUTE</name>
+        <desc>冻结时间外活体检测开始分钟数</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>42</id>
+        <name>OUT_FREEZE_TIME_FACE_VERIFY_END_MINUTE</name>
+        <desc>冻结时间外活体检测结束分钟数</desc>
+        <valueType>LONG</valueType>
+    </enum>
+    <enum>
+        <id>43</id>
+        <name>LIMITED_IF_NO_SPECIAL_SETTINGS</name>
+        <desc>无特殊设置时禁止考试</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>44</id>
+        <name>APP_EXAM_ENABLED</name>
+        <desc>开放APP考试</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>45</id>
+        <name>VIRTUAL_CAMERA_AUDIT_ENABLED</name>
+        <desc>虚拟摄像头进入待审</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>46</id>
+        <name>EXAM_CYCLE_ENABLED</name>
+        <desc>是否启用考试周期设置</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>47</id>
+        <name>EXAM_CYCLE_WEEK</name>
+        <desc>考试周期星期设置</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>48</id>
+        <name>EXAM_CYCLE_TIME_RANGE</name>
+        <desc>考试周期时间段设置</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>49</id>
+        <name>IP_TOTAL_LIMIT</name>
+        <desc>IP访问设置-整体控制</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>50</id>
+        <name>IP_CENTER_LIMIT</name>
+        <desc>IP访问设置-学习中心控制</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>51</id>
+        <name>SHOW_UNDERTAKING</name>
+        <desc>显示设置-显示考生承诺书</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
+    <enum>
+        <id>52</id>
+        <name>UNDERTAKING</name>
+        <desc>显示设置-考生承诺书</desc>
+        <valueType>STRING</valueType>
+    </enum>
+    <enum>
+        <id>53</id>
+        <name>MAX_SWITCH_SCREEN_COUNT</name>
+        <desc>控制设置-切屏次数限制</desc>
+        <valueType>INTEGER</valueType>
+    </enum>
+    <enum>
+        <id>54</id>
+        <name>IS_FACE_VERIFY_BEFORE</name>
+        <desc>开启考中人脸活体检测</desc>
+        <valueType>BOOLEAN</valueType>
+    </enum>
 </enums>