(1)index 跟子配置保存放到service同一个事务中

(2)修复是否下发选项隐藏导致的空指针异常
This commit is contained in:
wangxin
2018-11-21 11:19:40 +08:00
parent de34fd9103
commit 6bbb2b6038
10 changed files with 423 additions and 442 deletions

View File

@@ -94,6 +94,7 @@ import com.nis.util.excel.thread.CheckStringFormatThread;
import com.nis.web.security.UserUtils;
import com.nis.web.service.ArchiveServcie;
import com.nis.web.service.AreaService;
import com.nis.web.service.BaseService;
import com.nis.web.service.DictService;
import com.nis.web.service.LogService;
import com.nis.web.service.MenuService;
@@ -1248,7 +1249,7 @@ public class BaseController {
String specServiceId = request.getParameter("appId");
String behaviorId = request.getParameter("behaviorId");
String asnIpGroup = request.getParameter("asnGroupId");
String isSend = request.getParameter("isSend");
String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend");
SpecificServiceCfg specificServiceCfg = null;
if (serviceDict!=null&&(serviceDict.getServiceId().intValue() == 33 || serviceDict.getServiceId().intValue() == 145
|| serviceDict.getServiceId().intValue() == 35
@@ -1403,7 +1404,7 @@ public class BaseController {
asnIpCfgs.add(_cfg);
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, asnIpCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
ipCfgService.saveAndSend(regionDict, serviceDict, specificServiceCfg, asnIpCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_ipPortCfgs.clear();
@@ -1532,7 +1533,7 @@ public class BaseController {
}
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _ipPortCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
ipCfgService.saveAndSend(regionDict, serviceDict, specificServiceCfg, _ipPortCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_ipPortCfgs.clear();
@@ -1653,7 +1654,7 @@ public class BaseController {
}
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _stringCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
ipCfgService.saveAndSend(regionDict, serviceDict, specificServiceCfg, _stringCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_stringCfgs.clear();
@@ -1731,7 +1732,7 @@ public class BaseController {
}
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _complexkeywordCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
ipCfgService.saveAndSend(regionDict, serviceDict, specificServiceCfg, _complexkeywordCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_complexkeywordCfgs.clear();
@@ -1771,7 +1772,7 @@ public class BaseController {
cfg.setCompileId(compileIds.get(ind));
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _dnsResStrategies, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
ipCfgService.saveAndSend(regionDict, serviceDict, specificServiceCfg, _dnsResStrategies, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
_dnsResStrategies.clear();
cfgIndexInfos.clear();
appPolicyCfgs.clear();
@@ -1850,144 +1851,6 @@ public class BaseController {
}
}
/**
* 分割并保存
* @param regionDict
* @param serviceDict
* @param specificServiceCfg
* @param asnNoMap
* @param list
* @param cfgIndexInfos
* @param appPolicyCfgs
*/
public void splitAndSave(FunctionRegionDict regionDict,FunctionServiceDict serviceDict,
SpecificServiceCfg specificServiceCfg,
List<? extends BaseCfg> list,List<CfgIndexInfo> cfgIndexInfos,
List<AppPolicyCfg> appPolicyCfgs,boolean send){
if(list!=null&&list.size()>0) {
String type=null;
if (list.get(0) instanceof BaseIpCfg) {
type="BaseIpCfg";
}else if(list.get(0) instanceof BaseStringCfg) {
type="BaseStringCfg";
}else if(list.get(0) instanceof ComplexkeywordCfg) {
type="ComplexkeywordCfg";
}else if(list.get(0) instanceof DnsResStrategy) {
type="DnsResStrategy";
}else if(list.get(0) instanceof AsnIpCfg) {
type="AsnIpCfg";
}
if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) {
ipCfgService.saveCfgIndexOf(cfgIndexInfos);
}
if (appPolicyCfgs != null && appPolicyCfgs.size() > 0) {
appCfgService.savePolicyList(appPolicyCfgs);
}
if("BaseIpCfg".equals(type)) {
List<BaseIpCfg> listPage = (List<BaseIpCfg>) list;
if (regionDict.getFunctionId().equals(301)) {
ddosCfgService.saveDdosIpCfg((List<BaseIpCfg>)listPage);
}else if (regionDict.getFunctionId().equals(401)) {
dnsIpCfgService.saveDnsIpCfg((List<BaseIpCfg>)listPage);
}else if (specificServiceCfg!=null&&regionDict.getFunctionId().equals(405)) {
appCfgService.saveAppIpCfg((List<BaseIpCfg>)listPage,specificServiceCfg);
}else {
ipCfgService.saveIpBatch(regionDict,serviceDict,(List<BaseIpCfg>)listPage,send);
}
}else if("AsnIpCfg".equals(type)) {
List<AsnIpCfg> listPage = (List<AsnIpCfg>) list;
asnIpCfgService.saveAsnIpBatch(listPage);
}else if("BaseStringCfg".equals(type)) {
List<BaseStringCfg<?>> listPage = (List<BaseStringCfg<?>>) list;
// 调用对应配置的service
// ip_payload
if (regionDict.getDictId().intValue() == 167) {
// interceptCfgService.saveInterceptCfg(listPage);
interceptCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "intercept_pkt_bin",send);
}
// http url
if (regionDict.getDictId().intValue() == 9||regionDict.getDictId().intValue() == 15 || regionDict.getDictId().intValue() == 596) {
// websiteCfgService.saveHttpUrlCfg(listPage);
websiteCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "http_url_cfg",send);
}
// FTP url/content
if (regionDict.getDictId().intValue() == 36||regionDict.getDictId().intValue() == 37) {
// fileTransferCfgService.saveFtpCfg(listPage);
fileTransferCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "ftp_keyword_cfg",send);
}
// P2P eMule Keyword
if(regionDict.getDictId().intValue() == 158){
fileTransferCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "p2p_keyword_cfg",send);
}
// P2P File Marking
if(regionDict.getDictId().intValue() == 159){
// fileTransferCfgService.saveP2pCfg(listPage);
fileTransferCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "p2p_hash_cfg",send);
}
// BGP AS
if (regionDict.getFunctionId().equals(61)) {
// bgpCfgService.saveBgpAsCfg(listPage);
bgpCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "ntc_bgp_as_cfg",send);
}
// SSL SNI/SAN/CN
if (regionDict.getFunctionId().intValue() == 34) {
// websiteCfgService.saveSslCfg(listPage);
websiteCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "ssl_keyword_cfg",send);
}
// HTTP 请求/应答内容
if(regionDict.getDictId().intValue()==12||regionDict.getDictId().intValue()==13||regionDict.getDictId().intValue()==601||regionDict.getDictId().intValue()==602) {
// websiteCfgService.saveHttpBodyCfg(listPage);
websiteCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "http_body_cfg",send);
}
// 流媒体协议
if(regionDict.getDictId().intValue()==25){
// avContentCfgService.saveContUrlCfg(listPage);
avContentCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "av_cont_url_cfg",send);
}
// Voip Account
if(regionDict.getDictId().intValue()==16){
// avContentCfgService.saveVoIpAccountCfg(listPage);
avContentCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "av_voip_account_cfg",send);
}
// APP域名特征
if(regionDict.getDictId().intValue()==64){
// appCfgService.saveAppDomainCfg(listPage);
appCfgService.saveAppDomainCfgBatch(listPage);
}
}else if("ComplexkeywordCfg".equals(type)) {
List<ComplexkeywordCfg> listPage = (List<ComplexkeywordCfg>) list;
// DNS
if (regionDict.getDictId().intValue() == 28) {
// websiteCfgService.saveDnsCfg(listPage);
websiteCfgService.saveComplexkeywordCfgBatch(listPage, "dns_domain_cfg");
}
// Mail
if (regionDict.getDictId().intValue() == 30 || regionDict.getDictId().intValue() == 31||regionDict.getDictId().intValue() == 599) {
// mailCfgService.saveMailCfg(listPage);
mailCfgService.saveComplexkeywordCfgBatch(listPage, "mail_keyword_cfg");
}
// HTTP请求头域
if(regionDict.getDictId().intValue()==10) {
// websiteCfgService.saveHttpReqHeadCfg(listPage);
websiteCfgService.saveComplexkeywordCfgBatch(listPage, "http_req_head_cfg");
}
// HTTP响应头域
if(regionDict.getDictId().intValue()==11) {
// websiteCfgService.saveHttpResHeadCfg(listPage);
websiteCfgService.saveComplexkeywordCfgBatch(listPage, "http_res_head_cfg");
}
// APP http特征
if(regionDict.getDictId().intValue()==63) {
// appCfgService.saveAppHttpCfg(listPage);
appCfgService.saveAppHttpCfgBatch(listPage);
}
}else if("DnsResStrategy".equals(type)) {
List<DnsResStrategy> listPage = (List<DnsResStrategy>) list;
// dnsResStrategyService.saveDnsResStrategies(listPage);
dnsResStrategyService.saveDnsResStrategyCfgBatch(listPage);
}
}
}
/**
* 多域配置导出
*