diff --git a/src/main/java/neatlogic/module/deploy/api/appconfig/env/SaveDeployAppConfigEnvAutoConfigApi.java b/src/main/java/neatlogic/module/deploy/api/appconfig/env/SaveDeployAppConfigEnvAutoConfigApi.java index 5eb87e481e7a675637c46e5232e208dbb30439aa..b0d838f98ea1df97d70fb12f3447b85b22ff8422 100644 --- a/src/main/java/neatlogic/module/deploy/api/appconfig/env/SaveDeployAppConfigEnvAutoConfigApi.java +++ b/src/main/java/neatlogic/module/deploy/api/appconfig/env/SaveDeployAppConfigEnvAutoConfigApi.java @@ -24,6 +24,8 @@ import neatlogic.framework.deploy.constvalue.DeployAppConfigAction; import neatlogic.framework.deploy.dto.app.DeployAppEnvAutoConfigAuditVo; import neatlogic.framework.deploy.dto.app.DeployAppEnvAutoConfigKeyValueVo; import neatlogic.framework.deploy.dto.app.DeployAppEnvAutoConfigVo; +import neatlogic.framework.deploy.exception.DeployAppConfigEnvAutoConfigKeyIrregularException; +import neatlogic.framework.deploy.exception.DeployAppConfigEnvAutoConfigKeyRepeatException; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; @@ -37,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * @author lvzk @@ -97,7 +100,23 @@ public class SaveDeployAppConfigEnvAutoConfigApi extends PrivateApiComponentBase //校验环境权限、编辑配置的操作权限 deployAppAuthorityService.checkEnvAuth(appSystemId, paramObj.getLong("envId")); deployAppAuthorityService.checkOperationAuth(appSystemId, DeployAppConfigAction.EDIT); - + Set keySet = new HashSet<>(); + for (DeployAppEnvAutoConfigKeyValueVo keyValueVo : keyValueList ) { + if (keySet.contains(keyValueVo.getKey())) { + throw new DeployAppConfigEnvAutoConfigKeyRepeatException(keyValueVo.getKey()); + } + keySet.add(keyValueVo.getKey()); + } + if (instanceId != 0L) { + DeployAppEnvAutoConfigVo appEnvAutoConfigVo = new DeployAppEnvAutoConfigVo(appSystemId, appModuleId, envId, 0L); + List oldKeyValueList = deployAppConfigMapper.getAppEnvAutoConfigKeyValueList(appEnvAutoConfigVo); + List keyList = oldKeyValueList.stream().filter(Objects::nonNull).map(DeployAppEnvAutoConfigKeyValueVo::getKey).collect(Collectors.toList()); + for (DeployAppEnvAutoConfigKeyValueVo keyValueVo : keyValueList) { + if (!keyList.contains(keyValueVo.getKey())) { + throw new DeployAppConfigEnvAutoConfigKeyIrregularException(keyValueVo.getKey()); + } + } + } // DeployAppEnvAutoConfigVo appEnvAutoConfigVo = JSON.toJavaObject(paramObj, DeployAppEnvAutoConfigVo.class); DeployAppEnvAutoConfigVo appEnvAutoConfigVo = new DeployAppEnvAutoConfigVo(appSystemId, appModuleId, envId, instanceId); List oldKeyValueList = deployAppConfigMapper.getAppEnvAutoConfigKeyValueList(appEnvAutoConfigVo); diff --git a/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml b/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml index 9cfcf428c67b984766f378c913edf754136ede0a..38d4f728e0e03ca86d8c904975016a20f7dd98b3 100644 --- a/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml +++ b/src/main/java/neatlogic/module/deploy/dao/mapper/DeployAppConfigMapper.xml @@ -1191,6 +1191,7 @@ along with this program. If not, see .--> +