修改回调类配置状态更新处理逻辑

This commit is contained in:
zhangdongxu
2018-08-21 19:38:18 +08:00
parent fa58b0b584
commit af7767a3d0
7 changed files with 91 additions and 34 deletions

View File

@@ -20,6 +20,7 @@ public class CommonSourceFieldCfg {
private String defaultVal;
private String regexp;
private Boolean isSrcInfo=false;
private Boolean isCfgId=false;
public CommonSourceFieldCfg() {
super();
@@ -37,7 +38,7 @@ public class CommonSourceFieldCfg {
*/
public CommonSourceFieldCfg(String fieldType, String srcName,
String dstName, String range, Boolean isRequired,
String defaultVal, String regexp,Boolean isSrcInfo) {
String defaultVal, String regexp,Boolean isSrcInfo,Boolean isCfgId) {
super();
this.fieldType = fieldType;
this.srcName = srcName;
@@ -47,6 +48,7 @@ public class CommonSourceFieldCfg {
this.defaultVal = defaultVal;
this.regexp = regexp;
this.isSrcInfo = isSrcInfo;
this.isCfgId = isCfgId;
}
public String getSrcName() {
@@ -117,4 +119,19 @@ public class CommonSourceFieldCfg {
public void setIsSrcInfo(Boolean isSrcInfo) {
this.isSrcInfo = isSrcInfo;
}
/**
* @return the isCfgId
*/
public Boolean getIsCfgId() {
return isCfgId;
}
/**
* @param isCfgId the isCfgId to set
*/
public void setIsCfgId(Boolean isCfgId) {
this.isCfgId = isCfgId;
}
}

View File

@@ -94,6 +94,9 @@ public class ReadCommSourceXmlUtil {
if (!StringUtil.isEmpty(field.attribute("isSrcInfo"))) {
fieldCfg.setIsSrcInfo(Boolean.valueOf(field.attribute("isSrcInfo").getValue()));
}
if (!StringUtil.isEmpty(field.attribute("isCfgId"))) {
fieldCfg.setIsCfgId(Boolean.valueOf(field.attribute("isCfgId").getValue()));
}
cfgList.add(fieldCfg);
}
commonSourceCfgMap.put(serviceId.trim(), cfgList);

View File

@@ -179,9 +179,15 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
} catch (Exception e) {
transaction.discard();
if (e instanceof ServiceRuntimeException) {
throw e;
}else {
String error = "保存非maat类配置发生了异常," + e.getMessage();
// logger.error(error);
throw new ServiceRuntimeException(error, RestBusinessCode.SaveDataInError.getValue());
}
} finally {
// 释放连接到连接池
JedisUtils.returnResource(resource);
@@ -525,9 +531,13 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
throw new ServiceRuntimeException(error, RestBusinessCode.CannotConnectionRedis.getValue());
} catch (Exception e) {
transaction.discard();
if (e instanceof ServiceRuntimeException) {
throw e;
}else {
String error = "保存maat类配置发生了异常" + e.getMessage();
logger.error(error);
throw new ServiceRuntimeException(error, RestBusinessCode.SaveDataInError.getValue());
}
} finally {
// 释放连接到连接池
JedisUtils.returnResource(resource);
@@ -942,7 +952,13 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
transaction.discard();
String error = "删除非maat类配置发生了异常," + e.getMessage();
// logger.error(error);
if (e instanceof ServiceRuntimeException) {
throw e;
}else {
throw new ServiceRuntimeException(error, RestBusinessCode.DeleteDataInError.getValue());
}
} finally {
// 释放连接到连接池
JedisUtils.returnResource(resource);

View File

@@ -697,7 +697,15 @@ public class ConfigSourcesService extends BaseService {
checkOptForUpdate(srcMap);
validIdMap.put(srcMap.get("isValid").toString(), srcMap.get("isValid").toString());
Integer service = Integer.valueOf(srcMap.get("service").toString());
Long cfgId = Long.valueOf(srcMap.get("cfgId").toString());
List<CommonSourceFieldCfg> list = ReadCommSourceXmlUtil.getCommonSourceCfgByService(service+"");
String srcName="cfgId";
for (CommonSourceFieldCfg commonSourceFieldCfg : list) {
if (commonSourceFieldCfg.getIsCfgId()) {
srcName = commonSourceFieldCfg.getSrcName();
}
}
Long cfgId = Long.valueOf(srcMap.get(srcName).toString());
if (cfgMap.containsKey(service)) {
cfgMap.get(service).add(cfgId);
} else {
@@ -736,7 +744,8 @@ public class ConfigSourcesService extends BaseService {
configRedisService.delUnMaatConfig(restMap,validIdMap.containsKey("0")?true:false);
} catch (Exception e) {
// TODO: handle exception
throw new ServiceRuntimeException(RestBusinessCode.service_runtime_error.getErrorReason(),RestBusinessCode.service_runtime_error.getValue());
throw e;
//throw new ServiceRuntimeException(RestBusinessCode.service_runtime_error.getErrorReason(),RestBusinessCode.service_runtime_error.getValue());
}
}
@@ -749,25 +758,31 @@ public class ConfigSourcesService extends BaseService {
* @throws Exception
*/
private void checkOptForUpdate(Map<String, Object> srcMap) throws Exception{
String cfgId = srcMap.get("cfgId").toString();
String service = srcMap.get("service").toString();
String isValid = srcMap.get("isValid").toString();
if (StringUtil.isEmpty(cfgId)) {
throw new RestServiceException(RestBusinessCode.CfgIdIsNull.getErrorReason(),RestBusinessCode.CfgIdIsNull.getValue());
} else if (!StringUtil.isNumeric(cfgId)) {
throw new RestServiceException("cfgId字段格式不正确,"+RestBusinessCode.MastNumberic.getErrorReason(),RestBusinessCode.MastNumberic.getValue());
}
Object service = srcMap.get("service");
Object isValid = srcMap.get("isValid");
if (StringUtil.isEmpty(service)) {
throw new RestServiceException(RestBusinessCode.ServiceIsNull.getErrorReason(),RestBusinessCode.ServiceIsNull.getValue());
} else if (!StringUtil.isNumeric(service)) {
} else if (!StringUtil.isNumeric(service.toString())) {
throw new RestServiceException("service字段格式不正确,"+RestBusinessCode.MastNumberic.getErrorReason(),RestBusinessCode.MastNumberic.getValue());
}
List<CommonSourceFieldCfg> list = ReadCommSourceXmlUtil.getCommonSourceCfgByService(service+"");
String srcName="cfgId";
for (CommonSourceFieldCfg commonSourceFieldCfg : list) {
if (commonSourceFieldCfg.getIsCfgId()) {
srcName = commonSourceFieldCfg.getSrcName();
}
}
Object cfgId = srcMap.get(srcName);
if (StringUtil.isEmpty(cfgId)) {
throw new RestServiceException(RestBusinessCode.CfgIdIsNull.getErrorReason(),RestBusinessCode.CfgIdIsNull.getValue());
} else if (!StringUtil.isNumeric(cfgId.toString())) {
throw new RestServiceException("cfgId字段格式不正确,"+RestBusinessCode.MastNumberic.getErrorReason(),RestBusinessCode.MastNumberic.getValue());
}
if (StringUtil.isEmpty(isValid)) {
throw new RestServiceException("配置id为" + srcMap.get("cfgId") + "的isValid字段不能为空",RestBusinessCode.IsValidIsNull.getValue());
} else {
if (!StringUtil.isNumeric(service)) {
if (!StringUtil.isNumeric(service.toString())) {
throw new RestServiceException(RestBusinessCode.IsValidInWrongRange.getErrorReason(),RestBusinessCode.IsValidInWrongRange.getValue());
}
//配置取消改为状态更新(停/启用)

View File

@@ -15,6 +15,12 @@
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="isCfgId" type="xs:boolean">
<xs:annotation>
<xs:documentation><![CDATA[是否对应CfgId字段]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="dstName" type="xs:string" use="required">
<xs:annotation>
<xs:documentation><![CDATA[目的字段名需要传给服务接口中的Key]]>

View File

@@ -14,7 +14,7 @@
<t:commonSource serviceIds="3,4,25,28,5">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<!-- <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> -->
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="^([4|6]{1})|46|64|10$"/>
<t:field fieldType="IP" srcName="srcIp" dstName="src_ip" isRequired="true" isSrcInfo="true"/>
<t:field fieldType="IP" srcName="maskSrcIp" dstName="mask_src_ip" isRequired="true" isSrcInfo="true"/>
@@ -42,7 +42,7 @@
<t:commonSource serviceIds="261,262,263,264,389,390,391,392,1025">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<!-- <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> -->
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="String" srcName="dstFile" dstName="dst_file" isRequired="true"/>
<t:field fieldType="String" srcName="dstFileMd5" dstName="dst_file_md5" isRequired="true"/>
<t:field fieldType="Number" srcName="level" dstName="level" range="0-100" defaultVal="0"/>
@@ -59,7 +59,7 @@
<t:commonSource serviceIds="265,266,393,394">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<!-- <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> -->
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="String" srcName="description" dstName="description" isRequired="true"/>
<t:field fieldType="Number" srcName="level" dstName="level" range="0-100" defaultVal="0"/>
<t:field fieldType="Number" srcName="isValid" dstName="is_valid" isRequired="true" regexp="[1]"/>
@@ -70,7 +70,7 @@
<t:commonSource serviceIds="832">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<!-- <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> -->
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="Number" srcName="policyGroup" dstName="policy_group" isRequired="true"/>
<t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="[4|6]"/>
<t:field fieldType="Number" srcName="protocol" dstName="protocol" isRequired="true" defaultVal="0"/>
@@ -88,7 +88,7 @@
<t:commonSource serviceIds="64">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<!-- <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> -->
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="Number" srcName="policyGroup" dstName="policy_group" isRequired="true" defaultVal="0"/>
<t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="^([4|6]{1})|46|64|10$"/>
<t:field fieldType="IP" srcName="srcIp" dstName="src_ip" isRequired="true" isSrcInfo="true"/>
@@ -110,7 +110,7 @@
<t:commonSource serviceIds="65">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<!-- <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> -->
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="Number" srcName="reqStrateId" dstName="req_strate_id" isRequired="true" regexp="[0]|[1-9]+[0-9]{2,}"/>
<t:field fieldType="String" srcName="strateName" dstName="strate_name" isRequired="true"/>
<t:field fieldType="Number" srcName="resGroup1Id" dstName="res_group_1_id" defaultVal="0"/>
@@ -132,14 +132,14 @@
<!-- #0x208 PXY 证书管理 520=0:PXY_OBJ_KEYRING -->
<t:commonSource serviceIds="520">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<t:field fieldType="Number" srcName="keyringId" dstName="keyring_id" isRequired="true" />
<t:field fieldType="Number" srcName="keyringId" dstName="keyring_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="String" srcName="keyringName" dstName="keyring_name" isRequired="true"/>
<t:field fieldType="String" srcName="keyringType" dstName="keyring_type" isRequired="true"/>
<t:field fieldType="String" srcName="privateKeyFile" dstName="private_key_file" isRequired="true"/>
<t:field fieldType="String" srcName="publicKeyFile" dstName="public_key_file" isRequired="true"/>
<t:field fieldType="String" srcName="expireAfter" dstName="expire_after" isRequired="true"/>
<t:field fieldType="String" srcName="expireAfter" dstName="expire_after" defaultVal="30" isRequired="true"/>
<t:field fieldType="String" srcName="publicKeyAlgo" dstName="public_key_algo" isRequired="true"/>
<t:field fieldType="Number" srcName="crl" dstName="crl" range="0-100" defaultVal="0"/>
<t:field fieldType="Number" srcName="crl" dstName="crl" defaultVal=""/>
<t:field fieldType="Number" srcName="isValid" dstName="is_valid" isRequired="true" regexp="[1]"/>
<t:field fieldType="Date" srcName="opTime" dstName="op_time" isRequired="true"/>
</t:commonSource>
@@ -147,7 +147,7 @@
<!-- # 0x260 PXY 管控文件策略 608=0:PXY_OBJ_FILE -->
<t:commonSource serviceIds="608">
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<t:field fieldType="Number" srcName="fileId" dstName="file_id" isRequired="true" />
<t:field fieldType="Number" srcName="fileId" dstName="file_id" isRequired="true" isCfgId="true"/>
<t:field fieldType="String" srcName="fileDesc" dstName="file_desc" isRequired="true"/>
<t:field fieldType="String" srcName="contentType" dstName="content_type" isRequired="true"/>
<t:field fieldType="Number" srcName="contentLength" dstName="content_length" isRequired="true"/>

View File

@@ -138,8 +138,8 @@
</p:maatType>
<p:maatType service="520">
<p:expressions>
<p:keyExpression>EFFECTIVE_RULE;:;{un_maat_table_name};,;[cfg_id]</p:keyExpression>
<p:valueExpression>[keyring_id];\t;[service];\t;[keyring_name];\t;[keyring_type];\t;[private_key_file];\t;[publici_key_file];\t;[expire_after];\t;[kublic_key_algo];\t;[crl];\t;[is_valid];\t;[op_time];&amp;nbsp;0;\n</p:valueExpression>
<p:keyExpression>EFFECTIVE_RULE;:;{un_maat_table_name};,;[keyring_id]</p:keyExpression>
<p:valueExpression>[keyring_id];\t;[service];\t;[keyring_name];\t;[keyring_type];\t;[private_key_file];\t;[public_key_file];\t;[expire_after];\t;[public_key_algo];\t;[crl];\t;[is_valid];\t;[op_time];&amp;nbsp;0;\n</p:valueExpression>
</p:expressions>
<p:sequences>
<p:operation>1</p:operation>
@@ -158,7 +158,7 @@
</p:maatType>
<p:maatType service="608">
<p:expressions>
<p:keyExpression>EFFECTIVE_RULE;:;{un_maat_table_name};,;[cfg_id]</p:keyExpression>
<p:keyExpression>EFFECTIVE_RULE;:;{un_maat_table_name};,;[file_id]</p:keyExpression>
<p:valueExpression>[file_id];\t;[service];\t;[file_desc];\t;[content_type];\t;[content_length];\t;[file_path];\t;[is_valid];\t;[op_time];&amp;nbsp;0;\n</p:valueExpression>
</p:expressions>
<p:sequences>