diff --git a/src/main/java/com/nis/domain/Page.java b/src/main/java/com/nis/domain/Page.java index 094feeb66..046d3a8db 100644 --- a/src/main/java/com/nis/domain/Page.java +++ b/src/main/java/com/nis/domain/Page.java @@ -62,6 +62,8 @@ public class Page { private RequestContext requestContext; + private int maxExportSize=Constants.MAX_EXPORT_SIZE; + public Page() { this.pageSize = -1; } @@ -662,7 +664,13 @@ public class Page { public String getFuncParam() { return funcParam; } - + @JsonIgnore + public int getMaxExportSize() { + return maxExportSize; + } + public void setMaxExportSize(int maxExportSize) { + this.maxExportSize = maxExportSize; + } /** * 设置分页函数的附加参数 * @return diff --git a/src/main/java/com/nis/domain/configuration/BaseCfg.java b/src/main/java/com/nis/domain/configuration/BaseCfg.java index 68ad54642..8c8c6f92e 100644 --- a/src/main/java/com/nis/domain/configuration/BaseCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseCfg.java @@ -15,6 +15,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import com.nis.domain.BaseEntity; +import com.nis.util.excel.ExcelField; /** * @ClassName: BaseConfig.java @@ -48,20 +49,24 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 配置描述 */ + @ExcelField(title="config_describe") protected String cfgDesc; /** * GK类型 */ + @ExcelField(title="action") protected Integer action; /** * 有效标识 */ + @ExcelField(title="valid_identifier") @Expose protected Integer isValid; /** * 是否审核 */ + @ExcelField(title="is_audit") protected Integer isAudit; /** * 创建人员 @@ -70,10 +75,12 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 创建人员 */ + @ExcelField(title="creator") protected String creatorName; /** * 配置时间 */ + @ExcelField(title="config_time") protected Date createTime; /** * 修改人员 @@ -82,10 +89,12 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 创建人员 */ + @ExcelField(title="editor") protected String editorName; /** * 修改时间 */ + @ExcelField(title="edit_time") protected Date editTime; /** * 审核人员 @@ -94,11 +103,13 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 审核人员 */ + @ExcelField(title="auditor") protected String auditorName; /** * 审核时间 */ @Expose + @ExcelField(title="audit_time") @SerializedName("opTime") protected Date auditTime; /** @@ -114,22 +125,27 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 来函 */ + @ExcelField(title="letter") protected String requestName; /** * 是否区域gk */ + @ExcelField(title="whether_area_block") protected Integer isAreaEffective; /** * 分类 */ + @ExcelField(title="type") protected String classify; /** * 性质 */ + @ExcelField(title="attribute") protected String attribute; /** * 标签 */ + @ExcelField(title="label") protected String lable; /** * 分类 diff --git a/src/main/java/com/nis/domain/configuration/BaseStringCfg.java b/src/main/java/com/nis/domain/configuration/BaseStringCfg.java index 7c22d86d3..d61e0ed19 100644 --- a/src/main/java/com/nis/domain/configuration/BaseStringCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseStringCfg.java @@ -12,6 +12,7 @@ import org.apache.commons.lang3.StringEscapeUtils; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; +import com.nis.util.excel.ExcelField; /** * @ClassName: BaseStringConfig.java @@ -34,7 +35,9 @@ public class BaseStringCfg extends BaseCfg { */ @Expose @SerializedName("keywords") + @ExcelField(title="key_word") protected String cfgKeywords; + protected String cfgKeywordsShowName; /** * @param cfgKeywords the cfgKeywords to set @@ -46,18 +49,21 @@ public class BaseStringCfg extends BaseCfg { * 表达式类型 */ @Expose + @ExcelField(title="expression_type") @SerializedName("exprType") protected Integer exprType ; /** * 匹配方式 */ @Expose + @ExcelField(title="match_method") @SerializedName("matchMethod") protected Integer matchMethod ; /** * 是否hex二进制 */ @Expose + @ExcelField(title="whether_hexbinary") @SerializedName("isHexbin") protected Integer isHexbin; diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index afccef2c4..009ff8ba8 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -161,6 +161,10 @@ public final class Constants { * 每页最大显示数 */ public static final int MAX_PAGE_SIZE = Configurations.getIntProperty("maxPageSize", 100000); + /** + * 每次最大导出条数 + */ + public static final int MAX_EXPORT_SIZE = Configurations.getIntProperty("maxExportSize", 100000); /** * 对/错 @@ -324,6 +328,6 @@ public final class Constants { public static final String SSL_SAN_REGION = Configurations.getStringProperty("ssl_san_region","ssl_san"); public static final String SSL_CA_REGION = Configurations.getStringProperty("ssl_ca_region","ssl_ca"); public static final String PROTOCOL_NUM_REGION = Configurations.getStringProperty("protocol_num_region","protocol_num"); - + public static final String BGP_IP_REGION = Configurations.getStringProperty("bgp_ip_region","bgp_ip"); public static final String KEYWORD_EXPR = Configurations.getStringProperty("keyword_expr","***and***"); } diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index cec609e7f..1e900bd0b 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -9,6 +9,7 @@ import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -41,6 +42,7 @@ import com.google.common.collect.Lists; import com.nis.util.DictUtils; import com.nis.util.Encodes; import com.nis.util.Reflections; +import com.nis.util.StringUtil; /** * 导出Excel文件(导出“XLSX”格式,支持大数据量导出 @see org.apache.poi.ss.SpreadsheetVersion) @@ -76,6 +78,23 @@ public class ExportExcel { */ List annotationList = Lists.newArrayList(); + /** + * //递归获取cls实体对象及父级对象的属性 + * @param list + * @param cls + */ + public void getFields(List list,Class cls) { + Field[] fields=cls.getDeclaredFields(); + if(fields != null && fields.length > 0){ + for (Field field : fields) { + list.add(field); + } + } + if(cls.getSuperclass() != null){ + getFields(list,cls.getSuperclass()); + } + } + /** * 构造函数 * @param title 表格标题,传“空值”,表示无标题 @@ -84,7 +103,6 @@ public class ExportExcel { public ExportExcel(String title, Class cls){ this(title, cls, 1); } - /** * 构造函数 * @param title 表格标题,传“空值”,表示无标题 @@ -93,27 +111,31 @@ public class ExportExcel { * @param groups 导入分组 */ public ExportExcel(String title, Class cls, int type, int... groups){ + List list=new ArrayList(); // Get annotation field - Field[] fs = cls.getDeclaredFields(); - for (Field f : fs){ - ExcelField ef = f.getAnnotation(ExcelField.class); - if (ef != null && (ef.type()==0 || ef.type()==type)){ - if (groups!=null && groups.length>0){ - boolean inGroup = false; - for (int g : groups){ - if (inGroup){ - break; - } - for (int efg : ef.groups()){ - if (g == efg){ - inGroup = true; - annotationList.add(new Object[]{ef, f}); + getFields(list, cls); + + if(!StringUtil.isEmpty(list)){ + for (Field f : list){ + ExcelField ef = f.getAnnotation(ExcelField.class); + if (ef != null && (ef.type()==0 || ef.type()==type)){ + if (groups!=null && groups.length>0){ + boolean inGroup = false; + for (int g : groups){ + if (inGroup){ break; } + for (int efg : ef.groups()){ + if (g == efg){ + inGroup = true; + annotationList.add(new Object[]{ef, f}); + break; + } + } } + }else{ + annotationList.add(new Object[]{ef, f}); } - }else{ - annotationList.add(new Object[]{ef, f}); } } } @@ -171,27 +193,32 @@ public class ExportExcel { * @param groups 导入分组 */ public ExportExcel(Properties msgProp,String title, Class cls, int type, int... groups){ + List list=new ArrayList(); // Get annotation field - Field[] fs = cls.getDeclaredFields(); - for (Field f : fs){ - ExcelField ef = f.getAnnotation(ExcelField.class); - if (ef != null && (ef.type()==0 || ef.type()==type)){ - if (groups!=null && groups.length>0){ - boolean inGroup = false; - for (int g : groups){ - if (inGroup){ - break; - } - for (int efg : ef.groups()){ - if (g == efg){ - inGroup = true; - annotationList.add(new Object[]{ef, f}); + //递归获取cls实体对象及父级对象的属性 + getFields(list, cls); + + if(!StringUtil.isEmpty(list)){ + for (Field f : list){ + ExcelField ef = f.getAnnotation(ExcelField.class); + if (ef != null && (ef.type()==0 || ef.type()==type)){ + if (groups!=null && groups.length>0){ + boolean inGroup = false; + for (int g : groups){ + if (inGroup){ break; } + for (int efg : ef.groups()){ + if (g == efg){ + inGroup = true; + annotationList.add(new Object[]{ef, f}); + break; + } + } } + }else{ + annotationList.add(new Object[]{ef, f}); } - }else{ - annotationList.add(new Object[]{ef, f}); } } } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index bfa4c6f74..0b4ed2377 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -6,6 +6,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Properties; import javax.servlet.http.HttpServletResponse; @@ -14,6 +15,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.ui.Model; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; @@ -37,6 +39,7 @@ import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.NumBoundaryCfg; import com.nis.domain.configuration.RequestInfo; +import com.nis.util.Configurations; //import com.nis.main.ConvertTool; import com.nis.util.Constants; import com.nis.util.DateUtils; @@ -56,6 +59,7 @@ import com.nis.web.service.basics.SysDictInfoService; import com.nis.web.service.configuration.AppCfgService; import com.nis.web.service.configuration.AvCfgService; import com.nis.web.service.configuration.AvContentCfgService; +import com.nis.web.service.configuration.BgpCfgService; import com.nis.web.service.configuration.ComplexStringCfgService; import com.nis.web.service.configuration.DnsIpCfgService; import com.nis.web.service.configuration.FileTransferCfgService; @@ -143,6 +147,8 @@ public class BaseController { protected AvContentCfgService avContentCfgService; @Autowired protected WebsiteCfgService websiteCfgService; + @Autowired + protected BgpCfgService bgpCfgService; /** * 管理基础路径 */ @@ -401,4 +407,26 @@ public class BaseController { } return areaIspList; } + /** + * 获取国际化配置文件 + * @return + */ + public Properties getMsgProp(){ + Properties msgProp = new Properties(); + try { + String language = LocaleContextHolder.getLocale().getLanguage(); + if(language.equals("zh_cn")||language.equals("zh")){ + msgProp.load(Configurations.class.getResourceAsStream("/messages/message_zh_CN.properties")); + }else if(language.equals("ru")){ + msgProp.load(Configurations.class.getResourceAsStream("/messages/message_ru.properties")); + }else{ + msgProp.load(Configurations.class.getResourceAsStream("/messages/message_en.properties")); + } + + } catch (Exception e) { + msgProp = null; + logger.error("未知i18n消息配置文件,请确定文件是否存在!",e); + } + return msgProp; + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java index e2e570362..463c65886 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java @@ -3,14 +3,17 @@ package com.nis.web.controller.configuration.ntc; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Properties; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; @@ -19,6 +22,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; +import com.nis.domain.SysUser; import com.nis.domain.basics.SysDictInfo; import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.AreaIpCfg; @@ -29,8 +33,11 @@ import com.nis.exceptions.MaatConvertException; import com.nis.domain.configuration.AvVoipIpCfg; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; +import com.nis.util.Configurations; import com.nis.util.Constants; +import com.nis.util.DateUtils; import com.nis.util.StringUtil; +import com.nis.util.excel.ExportExcel; import com.nis.web.controller.BaseController; import com.nis.web.security.UserUtils; @@ -457,4 +464,54 @@ public class AvContentController extends BaseController { data.put("areaIps", areaIps); return data; } + //视频文本VOIP配置列表导出 + @RequestMapping(value = {"/voipExport"}) + public String voipExport(Model model, + HttpServletRequest request, + HttpServletResponse response, + @ModelAttribute("cfg")CfgIndexInfo entity, + String ids, + RedirectAttributes redirectAttributes){ + + Properties msgProp = getMsgProp(); + + try { + String fileName = "数据-"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; + + //导出选中记录 + if(!StringUtil.isEmpty(ids)){ + + }else{ + //导出查询条件下的所有记录 + + if(entity.getVoipIp()== null){ + entity.setVoipIp(new AvVoipIpCfg()); + } + if(entity.getVoipAccount()== null){ + entity.setVoipAccount(new AvVoipAccountCfg()); + } + //条件导出数据大于最大导出数,只导出最大导出条数 + Page pageInfo=new Page(request, response,"r"); + //int pageNo=pageInfo.getPageNo(); + //int pageSize=pageInfo.getPageSize(); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + + Page page = avContentCfgService.findPage(pageInfo, entity); + new ExportExcel(msgProp,null, CfgIndexInfo.class,1).setDataList(page.getList()).write(response, fileName).dispose(); + } + + return null; + } catch (Exception e) { + e.printStackTrace(); + addMessage(redirectAttributes, "导出失败!失败信息:"+e.getMessage()); + } + + return "redirect:" + adminPath +"/ntc/av/picUrlList?functionId="+entity.getFunctionId(); + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java new file mode 100644 index 000000000..2cbac0789 --- /dev/null +++ b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java @@ -0,0 +1,128 @@ +package com.nis.web.controller.configuration.ntc; + + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.nis.domain.Page; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.HttpUrlCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.exception.MaatConvertException; +import com.nis.util.Constants; +import com.nis.util.StringUtils; +import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; + +/** + * BGP配置 + * @author dell + * + */ +@Controller +@RequestMapping("${adminPath}/ntc/other/") +public class BgpCfgController extends BaseController{ + + @RequestMapping(value = {"bgpList"}) + @RequiresPermissions(value={"other:bgp:config"}) + public String httpList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) { + Page searchPage=new Page(request,response,"a"); + Page page = bgpCfgService.getBgpList(searchPage, cfg); + model.addAttribute("page", page); + initPageCondition(model,cfg); + return "/cfg/other/bgpList"; + } + + + + + @RequestMapping(value = {"bgpForm"}) + @RequiresPermissions(value={"other:bgp:config"}) + public String bgpForm(Model model,String ids,CfgIndexInfo entity) { + if(StringUtils.isNotBlank(ids)){ + entity = bgpCfgService.getBgpCfg(Long.parseLong(ids)); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); + } + model.addAttribute("_cfg", entity); + return "/cfg/other/bgpForm"; + } + + @RequestMapping(value = {"saveBgpCfg"}) + @RequiresPermissions(value={"other:bgp:config"}) + public String saveBgpCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { + bgpCfgService.saveBgpCfg(entity); + return "redirect:" + adminPath +"/ntc/other/bgpList?functionId="+entity.getFunctionId(); + } + + @RequestMapping(value = {"ajaxBgpSubList"}) + public String ajaxBgpSubList(Model model,Long cfgId,Integer index) { + CfgIndexInfo cfg = bgpCfgService.getBgpCfg(cfgId); + List tabList = new ArrayList(); + if(cfg.getIpPortList()!=null){ + String cfgType = null; + for(IpPortCfg ip:cfg.getIpPortList()){ + if(!ip.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"1",ip.getCfgType()}); + cfgType = ip.getCfgType(); + } + } + } + /*TODO + * if(cfg.getDomainList()!=null){ + String cfgType = null; + for(ComplexkeywordCfg keyword:cfg.getDomainList()){ + if(!keyword.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"3",keyword.getCfgType()}); + cfgType = keyword.getCfgType(); + } + } + }*/ + model.addAttribute("_cfg", cfg); + model.addAttribute("index", index); + model.addAttribute("tabList", tabList); + return "/cfg/website/dnsSubList"; + } + + @RequestMapping(value = {"updateBgpCfgValid"}) + @RequiresPermissions(value={"other:bgp:config"}) + public String updateBgpCfgValid(Integer isValid,String ids,Integer functionId) { + bgpCfgService.updateBgpCfgValid(isValid,ids,functionId); + return "redirect:" + adminPath +"/ntc/other/bgpList?functionId="+functionId; + } + + @RequestMapping(value = {"auditBgpCfg"}) + @RequiresPermissions(value={"other:bgp:audit"}) + public String auditBgpCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = bgpCfgService.getBgpCfg(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + entity.setFunctionId(functionId); + try { + bgpCfgService.auditBgpCfg(entity,isAudit); + } catch (MaatConvertException e) { + e.printStackTrace(); + logger.info("bgp配置下发失败:"+e.getMessage()); + addMessage(redirectAttributes, e.getMessage()); + } + } + return "redirect:" + adminPath +"/ntc/other/bgpList?functionId="+functionId; + } +} diff --git a/src/main/java/com/nis/web/dao/configuration/BgpCfgDao.java b/src/main/java/com/nis/web/dao/configuration/BgpCfgDao.java new file mode 100644 index 000000000..960a2e4cb --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/BgpCfgDao.java @@ -0,0 +1,49 @@ +package com.nis.web.dao.configuration; + +import java.util.List; + +import com.nis.domain.configuration.AvFileSampleCfg; +import com.nis.domain.configuration.AvSignSampleCfg; +import com.nis.domain.configuration.BaseCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.ComplexkeywordCfg; +import com.nis.domain.configuration.DnsDomainCfg; +import com.nis.domain.configuration.DnsIpCfg; +import com.nis.domain.configuration.HttpBodyCfg; +import com.nis.domain.configuration.HttpReqHeadCfg; +import com.nis.domain.configuration.HttpResHeadCfg; +import com.nis.domain.configuration.HttpUrlCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.configuration.SslKeywordCfg; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; + + +/** + * WEB相关配置数据处理类 + * @author dell + * + */ +@MyBatisDao +public interface BgpCfgDao extends CrudDao{ + + public CfgIndexInfo getCfgIndexInfo(Long id); + public List getBgpList(CfgIndexInfo entity); + public List getIpPortList(CfgIndexInfo entity); + public List getHttpUrlList(CfgIndexInfo entity); + public void saveCfgIndex(CfgIndexInfo entity); + public void saveIpPortCfg(IpPortCfg entity); + //public void saveHttpUrlCfg(HttpUrlCfg entity); + public void deleteHttpIpCfg(CfgIndexInfo entity); + //public void deleteHttpUrlCfg(CfgIndexInfo entity); + public void updateCfgIndex(CfgIndexInfo entity); + + public void updateCfgValid(BaseCfg entity); + public void auditCfg(BaseCfg entity); + + public void saveDnsDomainCfg(ComplexkeywordCfg entity); + public void deleteIpCfg(CfgIndexInfo entity); + + +} diff --git a/src/main/java/com/nis/web/dao/configuration/BgpCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/BgpCfgDao.xml new file mode 100644 index 000000000..1897a6ecc --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/BgpCfgDao.xml @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a.CFG_ID,a.CFG_DESC,a.ACTION,a.IS_VALID,a.IS_AUDIT, + a.CREATOR_ID,a.CREATE_TIME,a.EDITOR_ID,a.EDIT_TIME,a.AUDITOR_ID,a.AUDIT_TIME, + a.SERVICE_ID,a.REQUEST_ID,a.COMPILE_ID,a.IS_AREA_EFFECTIVE,a.CLASSIFY, + a.ATTRIBUTE,a.LABLE,a.AREA_EFFECTIVE_IDS,a.function_id + + + a.cfg_id,a.cfg_desc,a.ip_type,a.src_ip_address,a.ip_pattern,a.port_pattern,a.src_port + ,a.protocol,a.protocol_id,a.direction,a.cfg_type,a.action,a.dest_port,a.dest_ip_address + ,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id + ,a.edit_time,a.auditor_id,a.audit_time,a.service_id,a.request_id, + a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable + ,a.area_effective_ids,a.function_id,a.cfg_region_code + + + a.cfg_id,a.cfg_desc,a.cfg_keywords,a.cfg_type, + a.action,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id,a.edit_time, a.auditor_id, + a.audit_time,a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable, + a.expr_type,a.match_method,a.is_hexbin,a.area_effective_ids,a.function_id,a.cfg_region_code + + + a.cfg_id,a.cfg_desc,a.cfg_keywords,a.cfg_type,a.district, + a.action,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id,a.edit_time, a.auditor_id, + a.audit_time,a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable, + a.expr_type,a.match_method,a.is_hexbin,a.area_effective_ids,a.function_id,a.cfg_region_code + + + + + + + + + + + SELECT LAST_INSERT_ID() + + insert into cfg_index_info( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER} + ) + + + + + SELECT LAST_INSERT_ID() + + insert into ip_port_cfg ( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id, + ip_type, + src_ip_address, + ip_pattern, + port_pattern, + src_port, + protocol, + protocol_id, + direction, + dest_port, + dest_ip_address, + cfg_type, + cfg_region_code + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{ipType,jdbcType=INTEGER}, + #{srcIpAddress,jdbcType=VARCHAR}, + #{ipPattern,jdbcType=INTEGER}, + #{portPattern,jdbcType=INTEGER}, + #{srcPort,jdbcType=VARCHAR}, + #{protocol,jdbcType=INTEGER}, + #{protocolId,jdbcType=INTEGER}, + #{direction,jdbcType=INTEGER}, + #{destPort,jdbcType=VARCHAR}, + #{destIpAddress,jdbcType=VARCHAR}, + #{cfgType,jdbcType=VARCHAR}, + #{cfgRegionCode,jdbcType=INTEGER} + ) + + + + + + SELECT LAST_INSERT_ID() + + insert into http_url_cfg ( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id, + cfg_keywords, + cfg_type, + cfg_region_code, + expr_type, + match_method, + is_hexbin + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{cfgKeywords,jdbcType=VARCHAR}, + #{cfgType,jdbcType=VARCHAR}, + #{cfgRegionCode,jdbcType=INTEGER}, + #{exprType,jdbcType=INTEGER}, + #{matchMethod,jdbcType=INTEGER}, + #{isHexbin,jdbcType=INTEGER} + ) + + + update cfg_index_info + + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + action = #{action,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + is_audit = #{isAudit,jdbcType=INTEGER}, + + + creator_id = #{creatorId,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + service_id = #{serviceId,jdbcType=INTEGER}, + + + request_id = #{requestId,jdbcType=INTEGER}, + + + is_area_effective = #{isAreaEffective,jdbcType=INTEGER}, + + + classify = #{classify,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + lable = #{lable,jdbcType=VARCHAR}, + + + area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR}, + + + function_id = #{functionId,jdbcType=INTEGER}, + + + + where cfg_id = #{cfgId,jdbcType=BIGINT} + + + + delete from ip_port_cfg where compile_id=#{compileId} and protocol_id=19 and function_id=#{functionId} + + + delete from http_url_cfg where compile_id=#{compileId} and function_id=#{functionId} + + + + update ${tableName} set is_valid = #{isValid,jdbcType=INTEGER}, + editor_id = #{editorId,jdbcType=INTEGER} , + edit_time = #{editTime,jdbcType=TIMESTAMP} + + + AND cfg_id = #{cfgId,jdbcType=BIGINT} + + + AND compile_id = #{compileId,jdbcType=INTEGER} + + and function_id=#{functionId,jdbcType=INTEGER} + + + + update ${tableName} set is_audit = #{isAudit,jdbcType=INTEGER}, + auditor_id = #{auditorId,jdbcType=INTEGER}, + audit_time = #{auditTime,jdbcType=TIMESTAMP} + + ,is_valid = #{isValid,jdbcType=INTEGER} + + + + AND cfg_id = #{cfgId,jdbcType=BIGINT} + + + AND compile_id = #{compileId,jdbcType=INTEGER} + + and function_id=#{functionId,jdbcType=INTEGER} + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/BgpCfgService.java b/src/main/java/com/nis/web/service/configuration/BgpCfgService.java new file mode 100644 index 000000000..ee8e42538 --- /dev/null +++ b/src/main/java/com/nis/web/service/configuration/BgpCfgService.java @@ -0,0 +1,315 @@ +package com.nis.web.service.configuration; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.Page; +import com.nis.domain.configuration.AreaIpCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.ComplexkeywordCfg; +import com.nis.domain.configuration.DnsDomainCfg; +import com.nis.domain.configuration.HttpBodyCfg; +import com.nis.domain.configuration.HttpReqHeadCfg; +import com.nis.domain.configuration.HttpResHeadCfg; +import com.nis.domain.configuration.HttpUrlCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.configuration.SslKeywordCfg; +import com.nis.domain.maat.MaatCfg; +import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; +import com.nis.domain.maat.ToMaatBean; +import com.nis.domain.maat.ToMaatResult; +import com.nis.domain.maat.MaatCfg.DigestCfg; +import com.nis.domain.maat.MaatCfg.GroupCfg; +import com.nis.domain.maat.MaatCfg.IpCfg; +import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.util.StringUtil; +import com.nis.web.dao.configuration.AreaIpCfgDao; +import com.nis.web.dao.configuration.BgpCfgDao; +import com.nis.web.security.UserUtils; +import com.nis.web.service.CrudService; + +/** + * BGP相关配置事务类 + * @author dell + * + */ +@Service +public class BgpCfgService extends CrudService { + @Autowired + protected BgpCfgDao bgpCfgDao; + @Autowired + protected AreaIpCfgDao areaIpCfgDao; + + public CfgIndexInfo getBgpCfg(Long cfgId){ + CfgIndexInfo entity = bgpCfgDao.getCfgIndexInfo(cfgId); + List ipPortList = bgpCfgDao.getIpPortList(entity); + //List httpUrlList = bgpCfgDao.getHttpUrlList(entity); + entity.setIpPortList(ipPortList); + //entity.setHttpReqBodyList(httpUrlList); + return entity; + } + public Page getBgpList(Page page, CfgIndexInfo entity){ + // 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL) + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a")); + entity.setPage(page); + List list = bgpCfgDao.getBgpList(entity); + page.setList(list); + return page; + } + + /** + * 保存配置 + * @param entity + */ + + public void saveBgpCfg(CfgIndexInfo entity){ + //设置区域运营商信息 + setAreaEffectiveIds(entity); + if(entity.getCfgId()==null){ + Integer compileId = 0; + try { + List idList = ConfigServiceUtil.getId(1, 1); + if(idList!=null && idList.size()>0){ + compileId = idList.get(0); + } + entity.setCompileId(compileId); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + bgpCfgDao.saveCfgIndex(entity); + if(entity.getIpPortList()!=null){ + for(IpPortCfg cfg:entity.getIpPortList()){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + bgpCfgDao.saveIpPortCfg(cfg); + } + } + /**TODO + * if(entity.getDomainList()!=null){ + for(ComplexkeywordCfg cfg:entity.getDomainList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + if(StringUtils.isNoneBlank(cfg.getDistrictShowName()) && cfg.getDistrict().equals("others")){ + cfg.setDistrict(cfg.getDistrictShowName()); + } + bgpCfgDao.saveDnsDomainCfg(cfg); + } + } + }*/ + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + + }else{ + bgpCfgDao.updateCfgIndex(entity); + //无效子配置后,再新增子配置 + bgpCfgDao.deleteIpCfg(entity); + //TODO + //bgpCfgDao.deleteDnsDomainCfg(entity); + AreaIpCfg area = new AreaIpCfg(); + area.setCompileId(entity.getCompileId()); + area.setFunctionId(entity.getFunctionId()); + areaIpCfgDao.deleteAreaIpCfg(area); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + if(entity.getIpPortList()!=null){ + for(IpPortCfg cfg:entity.getIpPortList()){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + bgpCfgDao.saveIpPortCfg(cfg); + } + } + /**TODO + * if(entity.getDomainList()!=null){ + for(ComplexkeywordCfg cfg:entity.getDomainList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + if(StringUtils.isNoneBlank(cfg.getDistrictShowName()) && cfg.getDistrict().equals("others")){ + cfg.setDistrict(cfg.getDistrictShowName()); + } + bgpCfgDao.saveDnsDomainCfg(cfg); + } + } + }*/ + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgDesc","cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + } + } + /** + * 配置删除 + * @param isValid + * @param ids + * @param functionId + */ + public void updateBgpCfgValid(Integer isValid,String ids,Integer functionId){ + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity.setCfgId(Long.parseLong(id)); + entity.setIsValid(isValid); + entity.setEditorId(UserUtils.getUser().getId()); + entity.setEditTime(new Date()); + entity.setTableName(CfgIndexInfo.getTablename()); + entity.setFunctionId(functionId); + bgpCfgDao.updateCfgValid(entity); + //查询子配置 + entity = this.getBgpCfg(Long.parseLong(id)); + if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ + IpPortCfg cfg = new IpPortCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(IpPortCfg.getTablename()); + bgpCfgDao.updateCfgValid(cfg); + } + /*TODO + * if(entity.getDomainList()!=null && entity.getDomainList().size()>0) + { + SslKeywordCfg cfg = new SslKeywordCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(DnsDomainCfg.getTablename()); + bgpCfgDao.updateCfgValid(cfg); + }*/ + //保存区域IP信息 + if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){ + AreaIpCfg cfg = new AreaIpCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(AreaIpCfg.getTablename()); + bgpCfgDao.updateCfgValid(cfg); + } + + } + + } + /** + * 配置审核 + * @param entity + * @param isAudit + * @throws MaatConvertException + */ + public void auditBgpCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{ + //修改数据库审核状态信息 + entity.setTableName(CfgIndexInfo.getTablename()); + bgpCfgDao.auditCfg(entity); + + ToMaatBean maatBean = new ToMaatBean(); + MaatCfg maatCfg = new MaatCfg(); + List configCompileList = new ArrayList(); + List groupRelationList = new ArrayList(); + List ipRegionList = new ArrayList(); + List strRegionList = new ArrayList(); + List numRegionList = new ArrayList(); + List digestRegionList = new ArrayList(); + List areaIpRegionList = new ArrayList(); + + //查询子配置并修改审核状态 + entity = this.getBgpCfg(entity.getCfgId()); + if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ + IpPortCfg cfg = new IpPortCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(IpPortCfg.getTablename()); + bgpCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(ipRegionList,entity.getIpPortList(),1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + ipRegionList=map.get("dstList"); + if(map.get("numRegionList")!=null){ + numRegionList.addAll(map.get("numRegionList")); + } + } + } + /*TODO + * if(entity.getDomainList()!=null && entity.getDomainList().size()>0){ + DnsDomainCfg cfg = new DnsDomainCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(DnsDomainCfg.getTablename()); + bgpCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(strRegionList,entity.getDomainList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + }*/ + //保存区域IP信息 + List areaIpCfgList=areaIpCfgDao.getByCompileId(entity.getCompileId()); + if(!StringUtil.isEmpty(areaIpCfgList)){ + AreaIpCfg cfg = new AreaIpCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(AreaIpCfg.getTablename()); + bgpCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(areaIpRegionList,areaIpCfgList,1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + areaIpRegionList=map.get("dstList"); + } + } + + //构造提交综合服务参数格式,一条配置提交一次综合服务 + if(isAudit==1){ + maatCfg.initDefaultValue(); + BeanUtils.copyProperties(entity, maatCfg); + maatCfg.setAction(entity.getAction()); + maatCfg.setAuditTime(entity.getAuditTime()); + maatCfg.setIpRegionList(ipRegionList); + maatCfg.setStrRegionList(strRegionList); + maatCfg.setNumRegionList(numRegionList); + maatCfg.setDigestRegionList(digestRegionList); + maatCfg.setGroupRelationList(groupRelationList); + maatCfg.setGroupNum(groupRelationList.size()); + maatCfg.setAreaIpRegionList(areaIpRegionList); + maatCfg.setIsValid(entity.getIsValid()); + maatCfg.setUserRegion(entity.getCompileId()+""); + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.INSERT_ACTION); + //调用服务接口下发配置数据 + String json=gsonToJson(maatBean); + logger.info("BGP配置下发配置参数:"+json); + //调用服务接口下发配置 + //ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + //logger.info("BGP配置下发响应信息:"+result.getMsg()); + + }else if(isAudit==3){ + maatCfg.setCompileId(entity.getCompileId()); + maatCfg.setServiceId(entity.getServiceId()); + maatCfg.setIsValid(0);//无效 + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.UPDATE_ACTION); + //调用服务接口取消配置 + String json=gsonToJson(maatBean); + logger.info("BGP配置下发配置参数:"+json); + //调用服务接口下发配置 + //ToMaatResult result = ConfigServiceUtil.put(json,1); + //logger.info("BGP配置取消配置响应信息:"+result.getMsg()); + } + } +} diff --git a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java index e8efce511..70ae7437e 100644 --- a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java @@ -820,7 +820,6 @@ public class WebsiteCfgService extends CrudService { cfg.setTableName(IpPortCfg.getTablename()); websiteCfgDao.auditCfg(cfg); if(isAudit==1){ - entity.setAreaEffectiveIds("0"); Map map = cfgConvert(ipRegionList,entity.getIpPortList(),1,entity,groupRelationList); groupRelationList=map.get("groupList"); ipRegionList=map.get("dstList"); diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index 9bcfe7722..83500b822 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -255,6 +255,8 @@ jdbc.hive.AName=xa_dfbhit_hive jdbc.hive.BName=xa_z2_mesalog_hive maxPageSize=100000 +#导出最大条数 +maxExportSize=100000 #\u5141\u8bb8\u914d\u7f6e\u6700\u5927\u5c42\u7ea7 maxLevelNo=4 #\u4e0a\u4e0b\u7ea7\u663e\u793a\u95f4\u9694\u6807\u8bc6\u7b26 @@ -277,6 +279,7 @@ ssl_sni_region=ssl_sni ssl_san_region=ssl_san ssl_ca_region=ssl_ca ssl_ip_region=ssl_ip +bgp_ip_region=bgp_ip #存在与表达式的关键字特殊分隔符 keyword_expr=***and*** #时区 diff --git a/src/main/webapp/WEB-INF/sitemesh3.xml b/src/main/webapp/WEB-INF/sitemesh3.xml index 328298944..29b136461 100644 --- a/src/main/webapp/WEB-INF/sitemesh3.xml +++ b/src/main/webapp/WEB-INF/sitemesh3.xml @@ -24,8 +24,7 @@ - - + /articles/* diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 00b7c64e3..83f0e31b2 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -3,6 +3,7 @@ <%@ attribute name="id" type="java.lang.String" required="true"%> <%@ attribute name="url" type="java.lang.String" required="true"%> <%@ attribute name="label" type="java.lang.String" required="false"%> +<%@ attribute name="maxRow" type="java.lang.Long" required="false"%> @@ -20,8 +21,10 @@ - - + + + + <%-- 使用方法: 1.将本tag写在查询的form之前;2.传入table的id和controller的url --%> @@ -190,4 +193,26 @@ var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox"); }); return flag; } + //删除 + function exportData(url,maxRow){ + var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox"); + //导出选中数据 + if($(checkboxes).filter(":checked").length>0){ + doAll(checkboxes,url); + //导出检索条件下所有数据 + }else{ + if($("#showTotalCount").html().trim() > maxRow){ + top.$.jBox.confirm(""+maxRow+"!","",function(v,h,f){ + if(v=="ok"){ + $("#searchForm").attr("action",url); + $("#searchForm").submit(); + } + },{buttonsFocus:1}); + top.$('.jbox-body .jbox-icon').css('top','55px'); + }else{ + $("#searchForm").attr("action",url); + $("#searchForm").submit(); + } + } + } \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/other/bgpForm.jsp b/src/main/webapp/WEB-INF/views/cfg/other/bgpForm.jsp new file mode 100644 index 000000000..d48a1e82d --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/other/bgpForm.jsp @@ -0,0 +1,269 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+
+ +
+ + + + + +
+ + +
+
+
+ +
+ +
+
+
+
+
+ +
+ + + +
+
+
+
+
+ + + + + + +

+ + +

+ + <%-- --%> + + + + +
+ <%@include file="/WEB-INF/views/cfg/ipCfgForm.jsp"%> +
+ +
+
+
+ + + + +
+ +
+ + +

+ + +

+ + <%-- --%> + + + + + + +
+ <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> +
+ + +
+
+
+ + + + +
+ + + + +
+
+
+
+ <%@include file="/WEB-INF/include/form/areaInfo.jsp"%> +
+ <%@include file="/WEB-INF/include/form/basicInfo.jsp"%> +
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp b/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp index 741ebb25a..0a571e4c3 100644 --- a/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp @@ -46,7 +46,7 @@ $.ajax({ type:'post', async:false, - url:'${ctx}/ntc/website/ajaxHttpSubList', + url:'${ctx}/ntc/other/ajaxBgpSubList', data:{"cfgId":cfgId,"index":index}, dataType:"html", success:function(data){ @@ -85,16 +85,16 @@

- +

@@ -103,7 +103,7 @@
- + @@ -150,20 +150,20 @@
- - - + + + - +