暂存修改

This commit is contained in:
wangxin
2019-05-06 15:21:02 +08:00
parent 68b92c624c
commit ebd6c928cc
9 changed files with 833 additions and 283 deletions

View File

@@ -10,11 +10,9 @@ import java.util.concurrent.BlockingQueue;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jets3t.service.ServiceException;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -30,20 +28,15 @@ import com.beust.jcommander.internal.Lists;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.IpCommCfg;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.template.IpCommCfgTemplate;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.Reflections;
import com.nis.util.ServiceConfigTemplateUtil;
import com.nis.util.StringUtil;
import com.nis.util.excel.ImportBigExcel;
import com.nis.web.controller.BaseController;
@@ -131,46 +124,46 @@ public class IpCommGroupController extends BaseController {
return "redirect:" + adminPath + "/basics/ip/list?functionId=" + cfg.getFunctionId();
}
@RequestMapping(value = { "/audit" })
@RequiresPermissions(value = { "ip:common:config" })
public String audit(Model model, @ModelAttribute("cfg") IpCommCfg cfg, Integer isAudit, Integer isValid,
String ids, Integer functionId, HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) {
// 选中配置审核
if (!StringUtil.isEmpty(ids)) {
List<IpCommCfg> ipGroupCfgs = ipCommGroupCfgService.getByIds(ids);
List<IpCommCfg> temp = Lists.newArrayList();
try {
ipCommGroupCfgService.audit(ipGroupCfgs, isAudit, isValid);
} catch (Exception e) {
logger.error("审核失败", e);
addMessage(redirectAttributes, "error", "audit_failed");
} finally {
temp.clear();
}
return "redirect:" + adminPath + "/basics/ip/list?functionId=" + cfg.getFunctionId();
} else {// 全部审核
// 条件下所有配置审核
Page<IpCommCfg> searchPage = new Page<IpCommCfg>(request, response, "a");
Page<IpCommCfg> auditPage = new Page<IpCommCfg>(request, response, "a");
BeanUtils.copyProperties(searchPage, auditPage);
try {
auditAll(auditPage, isValid, cfg);
addMessage(redirectAttributes, "success", "audit_success");
} catch (Exception e) {
logger.error("配置下发失败:", e);
if (e instanceof MaatConvertException) {
addMessage(redirectAttributes, "error", "request_service_failed");
} else {
addMessage(redirectAttributes, "error", "audit_failed");
}
}
return list(model, request, response, cfg);
}
}
// @RequestMapping(value = { "/audit" })
// @RequiresPermissions(value = { "ip:common:config" })
// public String audit(Model model, @ModelAttribute("cfg") IpCommCfg cfg, Integer isAudit, Integer isValid,
// String ids, Integer functionId, HttpServletRequest request, HttpServletResponse response,
// RedirectAttributes redirectAttributes) {
// // 选中配置审核
// if (!StringUtil.isEmpty(ids)) {
// List<IpCommCfg> ipGroupCfgs = ipCommGroupCfgService.getByIds(ids);
// List<IpCommCfg> temp = Lists.newArrayList();
// try {
// ipCommGroupCfgService.audit(ipGroupCfgs, isAudit, isValid);
// } catch (Exception e) {
// logger.error("审核失败", e);
// addMessage(redirectAttributes, "error", "audit_failed");
// } finally {
// temp.clear();
// }
// return "redirect:" + adminPath + "/basics/ip/list?functionId=" + cfg.getFunctionId();
// } else {// 全部审核
// // 条件下所有配置审核
// Page<IpCommCfg> searchPage = new Page<IpCommCfg>(request, response, "a");
// Page<IpCommCfg> auditPage = new Page<IpCommCfg>(request, response, "a");
// BeanUtils.copyProperties(searchPage, auditPage);
//
// try {
// auditAll(auditPage, isValid, cfg);
// addMessage(redirectAttributes, "success", "audit_success");
// } catch (Exception e) {
// logger.error("配置下发失败:", e);
// if (e instanceof MaatConvertException) {
// addMessage(redirectAttributes, "error", "request_service_failed");
// } else {
// addMessage(redirectAttributes, "error", "audit_failed");
// }
//
// }
//
// return list(model, request, response, cfg);
// }
// }
@RequestMapping(value = { "/delete" })
@RequiresPermissions(value = { "ip:common:config" })
@@ -260,121 +253,121 @@ public class IpCommGroupController extends BaseController {
* @param redirectAttributes
* @return
*/
@Override
public void auditAll(Page page, Integer auditType, Object entity) throws Exception {
long start = System.currentTimeMillis();
page.setOrderBy("");
page.setPageSize(Constants.MAAT_JSON_SEND_SIZE);
page.setPageNo(1);
page.setLastPage(false);
// 携带审核状态信息的BaseCfg
BaseCfg auditBatchCfg = new BaseCfg();
// 携带审核条件的BaseCfg
IpCommCfg searchIpCommGroupCfg = new IpCommCfg();
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchIpCommGroupCfg);
auditType = (Integer) Reflections.invokeGetter(entity, "isAudit");
// 全部审核通过,只查询当前条件下的所有未审核的配置 -批量审核通过/不通过
if (auditType.equals(1) || auditType.equals(2)) {
searchIpCommGroupCfg.setIsValid(0);
searchIpCommGroupCfg.setIsAudit(0);
if (auditType.equals(1)) {
auditBatchCfg.setIsAudit(1);
auditBatchCfg.setIsValid(1);
} else {
auditBatchCfg.setIsAudit(2);
auditBatchCfg.setIsValid(0);
}
auditBatchCfg.setAuditTime(new Date());
auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
} else {
// 全部取消通过,只查询当前条件下的所有审核通过的配置
searchIpCommGroupCfg.setIsValid(1);
searchIpCommGroupCfg.setIsAudit(1);
auditBatchCfg.setIsAudit(3);
auditBatchCfg.setIsValid(0);
auditBatchCfg.setAuditTime(new Date());
auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
}
ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil();
Integer functionId = 0;
if (auditBatchCfg != null && !StringUtil.isEmpty(auditBatchCfg.getFunctionId())) {
functionId = auditBatchCfg.getFunctionId();
}
List<Map<String, Object>> serviceList = serviceTemplate.getServiceListByFunctionId(functionId);
for (Map<String, Object> service : serviceList) {
String tableNameXml = service.get("tableName").toString(); // 获取业务主配置表
String serviceTypeXml = service.get("serviceType").toString(); // 业务类型 1maat 2callback
String classNameXml = service.get("className").toString(); // 主配置Java类
String serviceIdXml = service.get("id").toString(); // service字典表 service_id字段
auditBatchCfg.setServiceId(Integer.valueOf(serviceIdXml));
auditBatchCfg.setTableName(tableNameXml);
searchIpCommGroupCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchIpCommGroupCfg.setTableName(tableNameXml);
if ("1".equals(serviceTypeXml)) {// maat类配置
// 存放域配置类型 及 对应表名
List<Map<String, Object>> cfgList = (List<Map<String, Object>>) service.get("cfgList");
List<Map<String, Object>> userRegionList = (List<Map<String, Object>>) service.get("userRegionList");
int cfgType = Integer.parseInt(service.get("cfgType").toString());
if (auditBatchCfg.getIsAudit() == 1) {
boolean hasData = true;
while (hasData) {
page.setPageNo(1);
page.setLastPage(false);
List list = ipCommGroupCfgService.findPage(page, searchIpCommGroupCfg).getList();
if(CollectionUtils.isNotEmpty(list)){
Map<Integer,List> groupIdMap=new HashMap();
// 配置生效处理
if(auditBatchCfg.getIsAudit().equals(1)) {
hasData=commonPolicyService.auditReuseCommonConfigData(page, auditBatchCfg,groupIdMap,hasData);
Map<Integer,List> groupIpMap=new HashMap();
if(CollectionUtils.isNotEmpty(list)) {
for (IpCommCfg obj : (List<IpCommCfg>)list) {
BaseCfg baseCfg=(BaseCfg)obj;
if(!StringUtil.isEmpty(obj.getGroupId())) {
groupIdMap.get(obj.getGroupId()).add(baseCfg);
}else {
List newList=new ArrayList<>();
newList.add(baseCfg);
groupIdMap.put(obj.getGroupId(),newList);
}
}
}
}
if(hasData) {
page.setPageNo(1);
page.setLastPage(false);
}
}else{
hasData = false;
}
}
}
} else {
throw new RuntimeException("wrong service type " + serviceTypeXml);
}
}
// 批量审核通过时如果没有携带isValid检索条件返回界面需要将isValid置为null
if (!StringUtil.isEmpty(entity)) {
BaseCfg base = (BaseCfg) entity;
if (!StringUtil.isEmpty(base.getSeltype()) && base.getSeltype().equals("isValid")) {
base.setIsValid(null);
BeanUtils.copyProperties(base, entity);
}
}
long end = System.currentTimeMillis();
logger.warn("配置批量生效/失效耗时:" + (end - start));
}
// @Override
// public void auditAll(Page page, Integer auditType, Object entity) throws Exception {
// long start = System.currentTimeMillis();
// page.setOrderBy("");
// page.setPageSize(Constants.MAAT_JSON_SEND_SIZE);
// page.setPageNo(1);
// page.setLastPage(false);
// // 携带审核状态信息的BaseCfg
// BaseCfg auditBatchCfg = new BaseCfg();
// // 携带审核条件的BaseCfg
// IpCommCfg searchIpCommGroupCfg = new IpCommCfg();
// BeanUtils.copyProperties(entity, auditBatchCfg);
// BeanUtils.copyProperties(entity, searchIpCommGroupCfg);
//
// auditType = (Integer) Reflections.invokeGetter(entity, "isAudit");
//
// // 全部审核通过,只查询当前条件下的所有未审核的配置 -批量审核通过/不通过
// if (auditType.equals(1) || auditType.equals(2)) {
//
// searchIpCommGroupCfg.setIsValid(0);
// searchIpCommGroupCfg.setIsAudit(0);
//
// if (auditType.equals(1)) {
// auditBatchCfg.setIsAudit(1);
// auditBatchCfg.setIsValid(1);
// } else {
// auditBatchCfg.setIsAudit(2);
// auditBatchCfg.setIsValid(0);
// }
// auditBatchCfg.setAuditTime(new Date());
// auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
// } else {
// // 全部取消通过,只查询当前条件下的所有审核通过的配置
// searchIpCommGroupCfg.setIsValid(1);
// searchIpCommGroupCfg.setIsAudit(1);
//
// auditBatchCfg.setIsAudit(3);
// auditBatchCfg.setIsValid(0);
// auditBatchCfg.setAuditTime(new Date());
// auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
// }
//
// ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil();
// Integer functionId = 0;
// if (auditBatchCfg != null && !StringUtil.isEmpty(auditBatchCfg.getFunctionId())) {
// functionId = auditBatchCfg.getFunctionId();
// }
// List<Map<String, Object>> serviceList = serviceTemplate.getServiceListByFunctionId(functionId);
// for (Map<String, Object> service : serviceList) {
// String tableNameXml = service.get("tableName").toString(); // 获取业务主配置表
// String serviceTypeXml = service.get("serviceType").toString(); // 业务类型 1maat 2callback
// String classNameXml = service.get("className").toString(); // 主配置Java类
// String serviceIdXml = service.get("id").toString(); // service字典表 service_id字段
// auditBatchCfg.setServiceId(Integer.valueOf(serviceIdXml));
// auditBatchCfg.setTableName(tableNameXml);
// searchIpCommGroupCfg.setServiceId(Integer.valueOf(serviceIdXml));
// searchIpCommGroupCfg.setTableName(tableNameXml);
//
// if ("1".equals(serviceTypeXml)) {// maat类配置
// // 存放域配置类型 及 对应表名
// List<Map<String, Object>> cfgList = (List<Map<String, Object>>) service.get("cfgList");
// List<Map<String, Object>> userRegionList = (List<Map<String, Object>>) service.get("userRegionList");
// int cfgType = Integer.parseInt(service.get("cfgType").toString());
// if (auditBatchCfg.getIsAudit() == 1) {
// boolean hasData = true;
//
// while (hasData) {
// page.setPageNo(1);
// page.setLastPage(false);
// List list = ipCommGroupCfgService.findPage(page, searchIpCommGroupCfg).getList();
// if(CollectionUtils.isNotEmpty(list)){
// Map<Integer,List> groupIdMap=new HashMap();
// // 配置生效处理
// if(auditBatchCfg.getIsAudit().equals(1)) {
// hasData=commonPolicyService.auditReuseCommonConfigData(page, auditBatchCfg,groupIdMap,hasData);
// Map<Integer,List> groupIpMap=new HashMap();
// if(CollectionUtils.isNotEmpty(list)) {
// for (IpCommCfg obj : (List<IpCommCfg>)list) {
// BaseCfg baseCfg=(BaseCfg)obj;
// if(!StringUtil.isEmpty(obj.getGroupId())) {
// groupIdMap.get(obj.getGroupId()).add(baseCfg);
// }else {
// List newList=new ArrayList<>();
// newList.add(baseCfg);
// groupIdMap.put(obj.getGroupId(),newList);
// }
// }
// }
//
// }
// if(hasData) {
// page.setPageNo(1);
// page.setLastPage(false);
// }
// }else{
// hasData = false;
// }
// }
// }
// } else {
// throw new RuntimeException("wrong service type " + serviceTypeXml);
// }
// }
//
// // 批量审核通过时如果没有携带isValid检索条件返回界面需要将isValid置为null
// if (!StringUtil.isEmpty(entity)) {
// BaseCfg base = (BaseCfg) entity;
// if (!StringUtil.isEmpty(base.getSeltype()) && base.getSeltype().equals("isValid")) {
// base.setIsValid(null);
// BeanUtils.copyProperties(base, entity);
// }
// }
// long end = System.currentTimeMillis();
// logger.warn("配置批量生效/失效耗时:" + (end - start));
// }
@RequestMapping(value = "import", method=RequestMethod.POST)
public String importIp(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes,
@RequestParam("files") MultipartFile[] files
@@ -416,10 +409,10 @@ public class IpCommGroupController extends BaseController {
List<BaseIpCfg> _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!ipPortCfgs.isEmpty()) {
ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> regionIds=Lists.newArrayList();
List<Integer> numRegionGroupIds=Lists.newArrayList();
List<Integer> numRegionRegionIds=Lists.newArrayList();
if(!regionDict.getFunctionId().equals(405)) {//app ip compileId 从config_group_info中取
//List<Integer> regionIds=Lists.newArrayList();
//List<Integer> numRegionGroupIds=Lists.newArrayList();
//List<Integer> numRegionRegionIds=Lists.newArrayList();
/*if(!regionDict.getFunctionId().equals(405)) {//app ip compileId 从config_group_info中取
try {
if(isSend.equals("1")) {
regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
@@ -442,7 +435,7 @@ public class IpCommGroupController extends BaseController {
logger.info("获取域ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
}
}*/
int ind=0;
for (BaseIpCfg cfg : _ipPortCfgs) {
cfg.setAction(serviceDict==null?null:serviceDict.getAction());
@@ -459,7 +452,7 @@ public class IpCommGroupController extends BaseController {
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(regionIds!=null&&regionIds.size()==_ipPortCfgs.size()) {
/*if(regionIds!=null&&regionIds.size()==_ipPortCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
if(serviceDict!=null&&serviceDict.getProtocolId()!=null) {
@@ -469,7 +462,7 @@ public class IpCommGroupController extends BaseController {
if(numRegionRegionIds!=null&&numRegionRegionIds.size()==_ipPortCfgs.size()) {
cfg.setNumberRegionRegionId(numRegionRegionIds.get(ind));
}
}
}*/
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
@@ -518,9 +511,9 @@ public class IpCommGroupController extends BaseController {
public Map<Integer,String> ajaxGetGroups(Model model,@RequestParam(required=true,value="groupIds")String groupIds){
Map<Integer,String> groupIdList=new HashMap<Integer,String>();
if(StringUtils.isNotBlank(groupIds)) {
List<PolicyGroupInfo> list=policyGroupInfoService.findPolicyByServiceGroupInfoList(groupIds);
List<PolicyGroupInfo> list=policyGroupInfoService.findPolicyByGroupInfoList(groupIds);
for(PolicyGroupInfo p:list) {
groupIdList.put(p.getServiceGroupId(), p.getGroupName());
groupIdList.put(p.getGroupId(), p.getGroupName());
}
}
return groupIdList;

View File

@@ -181,6 +181,27 @@ public class HttpRedirectPolicyController extends BaseController {
return "/cfg/proxy/control/httpRedirectForm";
}
@RequestMapping(value = { "commForm" })
@RequiresPermissions(value = { "control:httpBlock:config", "control:httpRedirect:config",
"control:httpReplace:config", "control:httpMinit:config",
"control:httpWhitelist:config" }, logical = Logical.OR)
public String commForm(Model model, HttpServletRequest request, HttpServletResponse response, String ids,
@ModelAttribute("cfg") CfgIndexInfo entity) {
if (StringUtils.isNotBlank(ids)) {
entity = httpRedirectCfgService.getCommCfg(Long.parseLong(ids), null);
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
}
// 获取所有的响应文件内容,阻断,或重定向时可以选择
List<ProxyFileStrategyCfg> allProxyFileStrategys = proxyFileStrategyService
.getProxyFileStrategyCfgList(new ProxyFileStrategyCfg());
model.addAttribute("_cfg", entity);
model.addAttribute("allProxyFileStrategys", allProxyFileStrategys);
return "/cfg/proxy/control/httpRedirectCommonForm";
}
@RequestMapping(value = { "saveOrUpdate" })
@RequiresPermissions(value = { "control:httpBlock:config", "control:httpRedirect:config",
"control:httpReplace:config", "control:httpMinit:config",

View File

@@ -118,78 +118,78 @@ public class IpCommGroupCfgService extends BaseService {
}
}
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void audit(List<IpCommCfg> ipCommGroupCfgs, Integer isAudit, Integer isValid) {
// TODO Auto-generated method stub
Set<Integer> groupIds=Sets.newHashSet();
if(!StringUtil.isEmpty(ipCommGroupCfgs)){
for(IpCommCfg cfg:ipCommGroupCfgs) {
cfg.setIsValid(isValid);
cfg.setIsAudit(isAudit);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(new Date());
groupIds.add(cfg.getGroupId());
ipCommGroupCfgDao.update(cfg);
}
}
//查询有效的Ip配置个数
for(Integer groupId:groupIds) {
Integer groupCount=ipCommGroupCfgDao.getGroupIdCount(groupId);
if(groupCount>0){//udFlag 设置为1
policyGroupInfoDao.updateUdFlag(groupId, 1,5);
}else{//udFlag 设置为0
policyGroupInfoDao.updateUdFlag(groupId, 0,5);
}
}
//下发配置时改变公共组udFlag标识
send2Maat(ipCommGroupCfgs,isValid);
}
public void send2Maat(List<IpCommCfg> ipCommGroupCfgs,int isValid) {
GroupReuseAddBean maatBean = new GroupReuseAddBean();
List<GroupReuseCfg> groupReuseList=new ArrayList<>();
GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
List<IpCfg> ipRegionList = groupReuseCfgAddRemoveConvert(ipCommGroupCfgs,isValid,null);
List<StringCfg> strRegionList = new ArrayList<>();
List<NumBoundaryCfg> numRegionList = new ArrayList<>();
groupReuseCfg.setIpRegionList(ipRegionList);
groupReuseCfg.setStrRegionList(strRegionList);
groupReuseCfg.setNumRegionList(numRegionList);
groupReuseList.add(groupReuseCfg);
maatBean.setGroupReuseCfgList(groupReuseList);
maatBean.setAuditTime(new Date());
maatBean.setCreatorName(UserUtils.getUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
logger.warn("IP Common Region Send To Maat start");
long start=System.currentTimeMillis();
if(isValid==Constants.VALID_YES) {
maatBean.setOpAction(Constants.INSERT_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
if(ipCommGroupCfgs.size()<=100) {
logger.info("ip 公共组域新增配置下发配置参数:"+json);
}else {
logger.info("ip 公共组域新增配置下发region条数"+ipCommGroupCfgs.size());
}
//调用服务接口下发配置
ToMaatResult result =ConfigServiceUtil.postGroupReuseSources(json);
logger.info("ip 公共组域新增配置响应信息:"+result.getMsg());
}else {
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
if(ipCommGroupCfgs.size()<=100) {
logger.info("ip 公共组域删除配置下发配置参数:"+json);
}else {
logger.info("ip 公共组域删除配置下发region条数"+ipCommGroupCfgs.size());
}
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,3);
logger.info("asn ip复用域删除配置响应信息"+result.getMsg());
}
long end=System.currentTimeMillis();
logger.warn("IP Common Region Send To Maat finish,cost:"+(end-start));
}
// @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
// public void audit(List<IpCommCfg> ipCommGroupCfgs, Integer isAudit, Integer isValid) {
// // TODO Auto-generated method stub
// Set<Integer> groupIds=Sets.newHashSet();
// if(!StringUtil.isEmpty(ipCommGroupCfgs)){
// for(IpCommCfg cfg:ipCommGroupCfgs) {
// cfg.setIsValid(isValid);
// cfg.setIsAudit(isAudit);
// cfg.setAuditorId(UserUtils.getUser().getId());
// cfg.setAuditTime(new Date());
// groupIds.add(cfg.getGroupId());
// ipCommGroupCfgDao.update(cfg);
// }
// }
// //查询有效的Ip配置个数
// for(Integer groupId:groupIds) {
// Integer groupCount=ipCommGroupCfgDao.getGroupIdCount(groupId);
// if(groupCount>0){//udFlag 设置为1
// policyGroupInfoDao.updateUdFlag(groupId, 1,5);
// }else{//udFlag 设置为0
// policyGroupInfoDao.updateUdFlag(groupId, 0,5);
// }
// }
// //下发配置时改变公共组udFlag标识
// send2Maat(ipCommGroupCfgs,isValid);
// }
// public void send2Maat(List<IpCommCfg> ipCommGroupCfgs,int isValid) {
// GroupReuseAddBean maatBean = new GroupReuseAddBean();
// List<GroupReuseCfg> groupReuseList=new ArrayList<>();
// GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
// List<IpCfg> ipRegionList = groupReuseCfgAddRemoveConvert(ipCommGroupCfgs,isValid,null);
// List<StringCfg> strRegionList = new ArrayList<>();
// List<NumBoundaryCfg> numRegionList = new ArrayList<>();
// groupReuseCfg.setIpRegionList(ipRegionList);
// groupReuseCfg.setStrRegionList(strRegionList);
// groupReuseCfg.setNumRegionList(numRegionList);
// groupReuseList.add(groupReuseCfg);
// maatBean.setGroupReuseCfgList(groupReuseList);
// maatBean.setAuditTime(new Date());
// maatBean.setCreatorName(UserUtils.getUser().getName());
// maatBean.setVersion(Constants.MAAT_VERSION);
// logger.warn("IP Common Region Send To Maat start");
// long start=System.currentTimeMillis();
// if(isValid==Constants.VALID_YES) {
// maatBean.setOpAction(Constants.INSERT_ACTION);
// //调用服务接口下发配置数据
// String json=gsonToJson(maatBean);
// if(ipCommGroupCfgs.size()<=100) {
// logger.info("ip 公共组域新增配置下发配置参数:"+json);
// }else {
// logger.info("ip 公共组域新增配置下发region条数"+ipCommGroupCfgs.size());
// }
// //调用服务接口下发配置
// ToMaatResult result =ConfigServiceUtil.postGroupReuseSources(json);
// logger.info("ip 公共组域新增配置响应信息:"+result.getMsg());
// }else {
// maatBean.setOpAction(Constants.UPDATE_ACTION);
// //调用服务接口下发配置数据
// String json=gsonToJson(maatBean);
// if(ipCommGroupCfgs.size()<=100) {
// logger.info("ip 公共组域删除配置下发配置参数:"+json);
// }else {
// logger.info("ip 公共组域删除配置下发region条数"+ipCommGroupCfgs.size());
//
// }
// //调用服务接口下发配置
// ToMaatResult result = ConfigServiceUtil.put(json,3);
// logger.info("asn ip复用域删除配置响应信息"+result.getMsg());
// }
// long end=System.currentTimeMillis();
// logger.warn("IP Common Region Send To Maat finish,cost:"+(end-start));
// }
public void delete(String ids) {
// TODO Auto-generated method stub
if(ids==null) {
@@ -217,24 +217,24 @@ public class IpCommGroupCfgService extends BaseService {
BeanUtils.copyProperties(cfg, ipCommCfg);
ipCommCfgs.add(ipCommCfg);
((IpCommGroupCfgDao) batchSqlSession.getMapper(IpCommGroupCfgDao.class)).insertForBatch(ipCommCfg);
if(send) {
if(groupCount.containsKey(ipCommCfg.getGroupId())) {
groupCount.put(ipCommCfg.getGroupId(), groupCount.get(ipCommCfg.getGroupId())+1);
}else {
groupCount.put(ipCommCfg.getGroupId(), 1);
}
}
// if(send) {
// if(groupCount.containsKey(ipCommCfg.getGroupId())) {
// groupCount.put(ipCommCfg.getGroupId(), groupCount.get(ipCommCfg.getGroupId())+1);
// }else {
// groupCount.put(ipCommCfg.getGroupId(), 1);
// }
// }
}
if(send) {
if(groupCount.size()>0) {
for(Entry<Integer, Integer> groupId:groupCount.entrySet()) {
policyGroupInfoDao.updateUdFlag(groupId.getKey(), 1,5);
}
this.send2Maat(ipCommCfgs, Constants.VALID_YES);
}
}
// if(send) {
// if(groupCount.size()>0) {
// for(Entry<Integer, Integer> groupId:groupCount.entrySet()) {
// policyGroupInfoDao.updateUdFlag(groupId.getKey(), 1,5);
// }
//
// this.send2Maat(ipCommCfgs, Constants.VALID_YES);
// }
// }
batchSqlSession.commit();
}finally {
if(batchSqlSession != null){

View File

@@ -78,6 +78,10 @@ public class HttpRedirectCfgService extends CrudService<WebsiteCfgDao,CfgIndexIn
entity.setNtcSubscribeIdCfgList(subscribeIdList);
return entity;
}
public CfgIndexInfo getCommCfg(Long cfgId,Integer compileId){
CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId,compileId);
return entity;
}
public Map<String, List> exportHttpCfg(CfgIndexInfo entity){
Map<String, List> dataMap=new HashMap<String, List>();

View File

@@ -110,3 +110,6 @@
<script src="${pageContext.request.contextPath}/static/pages/scripts/appNames.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/clipboard.js" type="text/javascript"></script>
<link href="${pageContext.request.contextPath}/static/global/plugins/select2/css/select2.css" rel="stylesheet" />
<link href="${pageContext.request.contextPath}/static/global/plugins/select2/css/select2-bootstrap.min.css" rel="stylesheet" />
<script src="${pageContext.request.contextPath}/static/global/plugins/select2/js/select2.js" type="text/javascript"></script>

View File

@@ -143,8 +143,8 @@ var reSort=function(obj,index){
<select name="userRegion3" data-live-search="true" data-live-search-placeholder="search" class="selectpicker form-control required">
<option value="${_cfg.userRegion3}"><spring:message code="select"/></option>
<c:forEach items="${policyGroupInfos}" var="ipGroupInfo">
<option value="${ipGroupInfo.serviceGroupId}"
<c:if test="${_cfg.userRegion3 eq ipGroupInfo.serviceGroupId }">
<option value="${ipGroupInfo.groupId}"
<c:if test="${_cfg.userRegion3 eq ipGroupInfo.groupId }">
selected
</c:if>
>${ipGroupInfo.groupName}</option>

View File

@@ -96,8 +96,8 @@ $(function(){
<select name="groupId" data-live-search="true" data-live-search-placeholder="search" class="selectpicker form-control required">
<option value="${_cfg.groupId}"><spring:message code="select"/></option>
<c:forEach items="${policyGroupInfos}" var="ipGroupInfo">
<option value="${ipGroupInfo.serviceGroupId}"
<c:if test="${_cfg.groupId eq ipGroupInfo.serviceGroupId }">
<option value="${ipGroupInfo.groupId}"
<c:if test="${_cfg.groupId eq ipGroupInfo.groupId }">
selected
</c:if>
>${ipGroupInfo.groupName}</option>

View File

@@ -75,7 +75,6 @@
$(".group").each(function(){
var text=$(this);
$.each(data,function(key,values){
console.log(key);
if(key==$(text).text()){
$(text).html(values);
}
@@ -132,7 +131,7 @@
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${cfg.isFilterAction }"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<%-- <div class="pull-left">
<c:set var="state"><spring:message code='group'/></c:set>
<form:select path="isAudit" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="all_states"/></form:option>
@@ -141,7 +140,7 @@
<form:option value="2"><spring:message code="unapproved"></spring:message></form:option>
<form:option value="3"><spring:message code="cancel_approved"></spring:message></form:option>
</form:select>
</div>
</div> --%>
<div class="pull-left">
@@ -151,7 +150,7 @@
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="destIpAddress"><spring:message code="IP"></spring:message></form:option>
<form:option value="isValid"><spring:message code="valid_identifier"></spring:message></form:option>
<%-- <form:option value="isValid"><spring:message code="valid_identifier"></spring:message></form:option> --%>
</form:select>
</div>
@@ -197,7 +196,7 @@
</div>
<shiro:hasPermission name="asn:ip:confirm">
<%-- <shiro:hasPermission name="ip:common:config">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="examine"></spring:message>
@@ -209,7 +208,7 @@
<li><sys:delRow url="${ctx}/basics/ip/audit?isAudit=3&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div>
</shiro:hasPermission>
</shiro:hasPermission> --%>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -256,7 +255,7 @@
</div>
</div>
<div class="col-md-2">
<%-- <div class="col-md-2">
<div class="form-group">
<label><spring:message code="audit_time"/></label>
<input name="search_audit_time_start" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
@@ -272,7 +271,7 @@
value="<fmt:formatDate value="${cfg.search_audit_time_end}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
</div> --%>
</div>
@@ -287,7 +286,7 @@
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th class="sort-column r.compile_id" style="display: none;" column="cfg_id" ><spring:message code="cfg_id"/></th>
<%-- <th class="sort-column r.compile_id" style="display: none;" column="cfg_id" ><spring:message code="cfg_id"/></th> --%>
<%-- <th><spring:message code="seq"/></th> --%>
<th column="config_describe" ><spring:message code="config_describe"/></th>
<%-- <th><spring:message code="group"/></th> --%>
@@ -295,18 +294,15 @@
<th column="ip_type" ><spring:message code="ip_type"/></th>
<th column="IP" ><spring:message code="IP"/></th>
<th column="ip_pattern" ><spring:message code="ip_pattern"/></th>
<th><spring:message code="classification"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th>
<th><spring:message code="is_audit"/></th>
<%-- <th><spring:message code="is_audit"/></th> --%>
<%-- <th><spring:message code="log_total"/></th> --%>
<th column="valid_identifier" ><spring:message code="valid_identifier"/></th>
<th column="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th>
<th column="edit_time" class="sort-column r.edit_time"><spring:message code="edit_time"/></th>
<th><spring:message code="auditor"/></th>
<th class="sort-column r.audit_time"><spring:message code="audit_time"/></th>
<%-- <th><spring:message code="auditor"/></th>
<th class="sort-column r.audit_time"><spring:message code="audit_time"/></th> --%>
<%-- <th><spring:message code="operation"></spring:message></th> --%>
</tr>
</thead>
@@ -314,7 +310,7 @@
<c:forEach items="${page.list }" var="cfg" varStatus="status" step="1">
<tr>
<td><input type="checkbox" class="i-checks" id="${cfg.cfgId}" isValid="${cfg.isValid}" value="${cfg.isAudit}"></td>
<td>${cfg.compileId }</td>
<%-- <td>${cfg.compileId }</td> --%>
<td>${cfg.cfgDesc }</td>
<td class="group">${cfg.groupId}</td>
<td>
@@ -329,7 +325,7 @@
<c:if test="${cfg.destIpPattern==ipPatternC.itemCode}"><spring:message code="${ipPatternC.itemValue }"/></c:if>
</c:forEach>
</td>
<td>
<%-- <td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '1'}"><span class="label label-success"><spring:message code="approved"></spring:message></span></c:when>
@@ -337,7 +333,7 @@
<c:when test="${cfg.isAudit eq '3'}"><span class="label label-warning"><spring:message code="cancel_approved"></spring:message></span></c:when>
</c:choose>
</td>
</td> --%>
<%-- <td audit="${cfg.isAudit}" functionId="${cfg.functionId}" compileId="${cfg.compileId}" action="${cfg.action}"><div class="loading-total"></div></td> --%>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
@@ -348,8 +344,8 @@
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td>
<td><fmt:formatDate value="${cfg.editTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.auditorName }</td>
<td><fmt:formatDate value="${cfg.auditTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<%-- <td>${cfg.auditorName }</td>
<td><fmt:formatDate value="${cfg.auditTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> --%>
</tr>
</c:forEach>

View File

@@ -0,0 +1,533 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<style type="text/css">
.boxSolid {
border: 1px solid #eeeeee
}
</style>
<script type="text/javascript">
$(document)
.ready(
function() {
//initCommIpVal();
/* $("#cancel").on("click", function() {
window.history.back();
});*/
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
$("#protocolId").val($(this).attr("protocolId"));
});
$("#serviceId").val($(".action:checked").attr("serviceId"));
$("#protocolId").val($(".action:checked").attr("protocolId"));
$("#cfgFrom").validate(
{
errorPlacement : function(error, element) {
if($(element).parents().hasClass("tagsinput")){
$(element).parents(".col-md-6").next("div").append(error);
}else{
$(element).parents(".form-group").find(
"div[for='"
+ element.attr("name")
+ "']").append(error);
}
},
submitHandler : function(form) {
var flag = true;
//代表所有业务都隐藏了,提示必须增加一种业务数据
if(!$(".httpReqCfg").hasClass("hidden")){
if($(".httpReqCfg").find(".boxSolid").length==$(".httpReqCfg").find(".boxSolid.hidden").length){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return;
}
}
//代表所有区域都隐藏了,提示必须增加个区域信息
if($("input[name='isAreaEffective']:checked").val()==1 && $(".container-fluid:visible").size()==0){
if($("#areaIsp").hasClass("hidden")) $("#areaIp").find(".glyphicon-plus").click();
if($("#areaIp").hasClass("hidden")) $("#areaIsp").find(".glyphicon-plus").click();
top.$.jBox.tip("<spring:message code='one_more_area'/>", "<spring:message code='info'/>");
return;
}
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$("#keywordError").text()+"</label>");
flag = false;
}
});
//keywords非空校验完成校验二进制字符串
$(".boxSolid:visible").find("select[name$='isHexbin']").each(function(){
var isHexbin=$(this).val();
if(isHexbin == 1){ //十六进制
var keywords=$("input[name$='"+$(this).attr("name").replace("isHexbin","cfgKeywords")+"']").val();
keywords=keywords.replace("***and***","")
if(keywords != ''){
if(!(/^([0-9|a-f|A-F]*)$/.test(keywords))){
$(this).parents(".boxSolid").find(
"div[for='"
+ $(this).attr("name").replace("isHexbin","cfgKeywords")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$.validator.messages.hexCheck+"</label>");
flag = false;
}
}
}
});
var flag1=validateInvisibleCharTag();
if(flag){
flag=flag1;
}
if(flag){
//将disable属性的元素删除
$(".disabled").each(function(){
$(this).remove();
});
$("input[name$='exprType']").attr("disabled",false);
loading('onloading...');
form.submit();
}else{
return;
}
},
errorContainer : "#messageBox",
});
//业务内容增加
/* $("span[title='add']").on("click", function() {
$(".ipPort0").removeClass("hidden");
}); */
$('#ipCommGroup').select2({
width:"100%",
placeholder: 'Please Select',
//language: "zh-CN",
// data:JSON.parse('${ipGroupData}'), // 默认值填写 value 是id text:是名字 不能使用其他字段
inputMessage:'search',
ajax: {
url: "${ctx}/basics/policyGroup/ajaxGetPagedGroup", // 请求后台借口地址
dataType: 'json',
method:"post",
delay: 200,
data: function (params) {
return {
type:5,
//keyWord: params.term || '', //搜索参数
pageNo: params.page || 1, //分页参数
pageSize: 10, //每次查询10条记录
};
},
processResults: function (data, params) {
params.page = params.page || 1;
var tempResult = data.list,d_l=[];
for (var i = 0, len = tempResult.length; i < len; i++) {
var tem={};
tem.id = tempResult[i].serviceGroupId; // 后台传回来需要显示的id 根据自己需要写值
tem.text = tempResult[i].groupName;
d_l.push(tem);
}
return {
results: d_l,
pagination: {
more: (params.page) < data.last
}
};
},
cache: true
},
escapeMarkup: function (markup) {
return markup;
},
templateResult:function(repo){
if (repo.loading) {
return repo.text;
}
var markup = "<a tabindex='0' class='' style='font-family: \"Helvetica Neue\" Helvetica, Arial, sans-serif;font-size: 14px; cursor: pointer;user-select: none;display: inline-block;box-sizing: border-box;color: #6f6f6f;font-weight: 300;line-height: 18px;white-space: nowrap;' data-tokens='null'><span style='margin-right:34px;'>"+repo.text+"</span>" +
"<span class='glyphicon glyphicon-ok check-mark' style='box-sizing: border-box;'></span></a>";
return markup;
},
debug:true/* ,
dropdownParent: $('.groupId'),
templateSelection: formatRepoSelection (data) {
return data.bck03||data.text;
} */
});
});
//业务窗口打开
var addContent = function(obj, contentClassName) {
$("." + contentClassName + "0").removeClass("hidden").removeClass(
"disabled");
$(obj).addClass("hidden");
}
//业务窗口关闭
var delContent = function(contentClassName, addBtnClassName) {
$("." + contentClassName).addClass("hidden").addClass("disabled");
$("." + addBtnClassName).removeClass("hidden");
}
function formatRepoSelection (data) {
return repo.full_name || repo.text;
}
</script>
</head>
<body>
<span id="keywordError" style="display:none"><spring:message code="required"></spring:message></span>
<span id="tagsinputTip" style="display:none"><spring:message code="multiple_keywords_tip"></spring:message></span>
<div class="page-content">
<h3 class="page-title">
<spring:message code="${_cfg.menuNameCode }"></spring:message>
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>
<c:if test="${empty _cfg.cfgId}">
<spring:message code="add"></spring:message>
</c:if>
<c:if test="${not empty _cfg.cfgId}">
<spring:message code="edit"></spring:message>
</c:if>
</div>
</div>
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form id="cfgFrom" action="${ctx}/proxy/control/httpRedirect/saveOrUpdateCommGroup"
method="post" class="form-horizontal">
<input type="hidden" name="cfgId" id="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" name="isValid" value="${_cfg.isValid}">
<input type="hidden" name="isAudit" value="${_cfg.isAudit}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
<div class="form-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message
code="config_describe" /></label>
<div class="col-md-6">
<input class="form-control" type="text" name="cfgDesc"
value="${_cfg.cfgDesc}">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message
code="action" /></label>
<div class="col-md-6">
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
serviceId="${service.serviceId }" class="action"
protocolId="${service.protocolId }"
regionCode="${service.regionCode }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq service.action }">
<c:set var="action" value="${dict.itemCode }"></c:set>
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</c:if>
</label>
</c:forEach>
</div>
<div for="action"></div>
</div>
</div>
</div>
<c:if test="${action != 128 }">
<c:if test="${empty _cfg.cfgId }">
<c:set var="doLog" value="1"/>
</c:if>
<c:if test="${!empty _cfg.cfgId }">
<c:set var="doLog" value="${_cfg.doLog }"/>
</c:if>
<!-- 记录日志begin -->
<div class="row doLog">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
</div>
<!-- 记录日志end -->
</c:if>
<c:if test="${action eq 128}"><!-- 白名单不记录日志默认为0 -->
<input type="hidden" name="dolog" value="0"/>
</c:if>
<%@include file="/WEB-INF/views/cfg/actionRegionForm.jsp"%>
<br>
<c:forEach items="${regionList}" var="region" varStatus="status">
<c:if test="${region.regionType eq 1 }">
<!--ip info-->
<div class="httpReqCfg">
<c:set var="tabName" value="httpIpTab"></c:set>
<h4 class="form-section" >
<spring:message code="http_ip_title" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<c:forEach items="${_cfg.ipPortList}" var="ipPort"
varStatus="status">
<c:set var="cfgName" value="ipPortList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index}
<c:if test="${empty ipPort.cfgId}">hidden disabled </c:if>" >
<%@include file="/WEB-INF/views/cfg/ipCfgForm.jsp"%>
</div>
<c:set var="ipCfgIndex" value="${ipCfgIndex+1}"></c:set>
</c:forEach>
</div>
<!--/ip info-->
</c:if>
<c:if test="${region.regionType eq 2 }">
<c:if test="${region.configRegionValue eq _cfg.httpUrl.cfgType }">
<!--url info-->
<div class="httpReqCfg">
<c:set var="tabName" value="httpUrlTab"></c:set>
<h4 class="form-section" >
<spring:message code="http_url_title" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpUrl.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.httpUrlList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="httpUrlList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index}
<c:if test="${empty cfg.cfgId}">hidden disabled </c:if>" >
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
<!--/url info-->
</c:if>
<c:if test="${region.configRegionValue eq _cfg.httpReqBody.cfgType }">
<!--request body info-->
<div class="httpReqCfg">
<c:set var="tabName" value="httpReqBodyTab"></c:set>
<h4 class="form-section" >
<spring:message code="http_req_body_title" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpReqBody.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.httpReqBodyList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="httpReqBodyList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>" >
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
<!--/request body info-->
</c:if>
<c:if test="${region.configRegionValue eq _cfg.httpResBody.cfgType }">
<!--response body info-->
<div class="httpReqCfg">
<c:set var="tabName" value="httpResBodyTab"></c:set>
<h4 class="form-section" >
<spring:message code="http_res_body_title" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpResBody.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.httpResBodyList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="httpResBodyList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>" >
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
</c:if>
<c:if test="${region.configRegionValue eq _cfg.ntcSubscribeIdCfg.cfgType }">
<!--response body info-->
<div class="httpReqCfg ntcSubscribeIdCfgCfg">
<c:set var="tabName" value="ntcSubscribeIdCfgTab"></c:set>
<h4 class="form-section">
<spring:message code="NTC_SUBSCRIBE_ID" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpResBody.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.ntcSubscribeIdCfgList}" var="cfg" varStatus="status">
<c:set var="cfgName" value="ntcSubscribeIdCfgList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>" >
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
</c:if>
</c:if>
<c:if test="${region.regionType eq 3 }">
<c:if test="${region.configRegionValue eq _cfg.httpReqHdr.cfgType }">
<!--request header info-->
<div class="httpReqCfg">
<c:set var="tabName" value="httpReqHdrTab"></c:set>
<h4 class="form-section" >
<spring:message code="http_req_hdr_title" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpReqHdr.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.httpReqHdrList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="httpReqHdrList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
<!--/request header info-->
</c:if>
<c:if test="${region.configRegionValue eq _cfg.httpResHdr.cfgType }">
<!--response header info-->
<div class="httpReqCfg">
<c:set var="tabName" value="httpResHdrTab"></c:set>
<h4 class="form-section" >
<spring:message code="http_res_hdr_title" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpResHdr.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.httpResHdrList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="httpResHdrList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
<!--/ip common group info-->
<div class="ipCommGroup">
<c:set var="tabName" value="ipCommGroupTab"></c:set>
<h4 class="form-section" >
<spring:message code="ip_comm_group" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<c:forEach items="${_cfg.ipCommGroupCfgList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="ipCommGroupCfgList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>">
<div class="row">
<div class="pull-right">
<span class="glyphicon glyphicon-remove pull-right" title="remove"
onClick="delContent('${tabName}${status.index}','${tabName}Add');" />
</div>
</div>
<br>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="ip_comm_group" /></label>
<div class="groupId col-md-6">
<select name="${cfgName}.groupId" class="selectpicker js-example-basic-single content-input form-control required" id="ipCommGroup" data-start-page="1">
</select>
</div>
<div for="${cfgName}.groupId"></div>
</div>
</div>
</div>
</div>
</c:forEach>
</div>
</c:if>
</c:if>
</c:forEach>
<%@include file="/WEB-INF/include/form/areaInfo.jsp"%>
<br>
<%@include file="/WEB-INF/include/form/basicInfo.jsp"%>
<br>
<%@include file="/WEB-INF/include/form/scheduleNew.jsp"%>
<div class="form-actions">
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-offset-3 col-md-8">
<c:set var="auditPermission" value="false"></c:set>
<!-- 拥有配置新增直接生效的功能权限 -->
<shiro:hasPermission name="save:audit:permission">
<c:set var="auditPermission" value="true"></c:set>
</shiro:hasPermission>
<c:choose>
<c:when test="${!(fns:getUser().isAdmin()) && auditPermission}">
<button id="audit" type="submit" class="btn green">
<spring:message code="submit" />
</button>
</c:when>
<c:otherwise>
<button id="save" type="submit" class="btn green">
<spring:message code="submit" />
</button>
</c:otherwise>
</c:choose>
<button id="cancel" type="button" class="btn default">
<spring:message code="cancel" />
</button>
</div>
</div>
</div>
<div class="col-md-6"></div>
</div>
</div>
</div>
</form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</body>
</html>