فهرست منبع

validate saveOrgProperties

deason 3 سال پیش
والد
کامیت
a78438bbef

+ 23 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/OrgServiceImpl.java

@@ -20,13 +20,17 @@ import cn.com.qmth.examcloud.core.basic.service.bean.datarule.UserDataRuleForm;
 import cn.com.qmth.examcloud.core.basic.service.cache.OrgCache;
 import cn.com.qmth.examcloud.core.basic.service.cache.OrgPropertyCache;
 import cn.com.qmth.examcloud.core.basic.service.cache.RootOrgCache;
+import cn.com.qmth.examcloud.support.enums.FaceBiopsyScheme;
 import cn.com.qmth.examcloud.task.api.DataSyncCloudService;
 import cn.com.qmth.examcloud.task.api.request.SyncOrgReq;
 import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
@@ -40,6 +44,8 @@ import java.util.stream.Collectors;
 @Service
 public class OrgServiceImpl implements OrgService {
 
+    private static final Logger log = LoggerFactory.getLogger(OrgServiceImpl.class);
+
     @Autowired
     RoleRepo roleRepo;
 
@@ -266,6 +272,23 @@ public class OrgServiceImpl implements OrgService {
 
     @Override
     public void saveOrgProperties(Long orgId, Map<String, String> properties) {
+        if (MapUtils.isNotEmpty(properties)) {
+            String clientEnabled = properties.get("PC_CLIENT_ENABLED");
+            String faceType = properties.get("IDENTIFICATION_OF_LIVING_BODY_SCHEME");
+
+            // 校验客户端所选的活体方案
+            if ("true".equalsIgnoreCase(clientEnabled)) {
+                if (!FaceBiopsyScheme.FACE_CLIENT.getCode().equals(faceType)) {
+                    log.warn("PC_CLIENT_ENABLED = " + clientEnabled + ", faceType = " + faceType);
+                    throw new StatusException("请选择可用的活体检测方案");
+                }
+            } else {
+                if (FaceBiopsyScheme.FACE_CLIENT.getCode().equals(faceType)) {
+                    log.warn("PC_CLIENT_ENABLED = " + clientEnabled + ", faceType = " + faceType);
+                    throw new StatusException("请选择可用的活体检测方案");
+                }
+            }
+        }
 
         GlobalHelper.getPresentEntity(orgRepo, orgId, OrgEntity.class);