增加导出功能

This commit is contained in:
leijun
2018-10-24 18:36:31 +08:00
parent 2f2812a7e8
commit ae98d37d01
42 changed files with 1301 additions and 305 deletions

View File

@@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.taglibs.standard.functions.Functions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
@@ -36,6 +37,9 @@ import com.nis.domain.configuration.AppPolicyCfg;
import com.nis.domain.configuration.AppSslCertCfg;
import com.nis.domain.configuration.AppTcpCfg;
import com.nis.domain.configuration.AppTopicDomainCfg;
import com.nis.domain.configuration.AvFileSampleCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.DdosIpCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.WebsiteDomainTopic;
@@ -1481,12 +1485,13 @@ public class AppCfgController extends BaseController {
noExportMap.put("NTC_IP", ipPortInfoNoExport);
noExportMap.put("NTC_SUBSCRIBE_ID", subscribeInfoNoExport);
List<IpPortCfg> ipList=new ArrayList<IpPortCfg>();
List<NtcSubscribeIdCfg> subscribeInfoList=new ArrayList<NtcSubscribeIdCfg>();
List<BaseStringCfg> subscribeInfoList=new ArrayList<BaseStringCfg>();
for (AppPolicyCfg cfg : page.getList()) {
AppPolicyCfg cfgIndexInfo=appCfgService.exportIpInfo(cfg);
ipList.addAll(cfgIndexInfo.getIpPortList());
subscribeInfoList.addAll(cfgIndexInfo.getNtcSubscribeIdCfgList());
}
subscribeInfoList=BaseStringCfg.baseHexList(subscribeInfoList);
dataMap.put(entity.getMenuNameCode(), page.getList());
dataMap.put("NTC_IP", ipList);
dataMap.put("NTC_SUBSCRIBE_ID", subscribeInfoList);
@@ -1500,6 +1505,252 @@ public class AppCfgController extends BaseController {
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
//top
@RequestMapping(value = "exportTop")
public void exporttop(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")AppTopicDomainCfg entity,String ids,RedirectAttributes redirectAttributes){
try {
//export data info
List<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<AppTopicDomainCfg> pageInfo=new Page<AppTopicDomainCfg>(request, response,"r");
if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){
pageInfo.setPageNo(1);
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
}else{
pageInfo.setPageNo(1);
pageInfo.setPageSize(-1);
}
Page<AppTopicDomainCfg> page = appCfgService.findAppTopicDomainList(pageInfo, entity);
for (int i = 0; i < page.getList().size(); i++) {
AppTopicDomainCfg appTop=page.getList().get(i);
appTop.setIsHex(appTop.getIsHexbin());
appTop.setIsCaseInsenstive(appTop.getIsHexbin());
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppTopicDomainCfg.class);
String cfgIndexInfoNoExport=",letter,whether_area_block,classification,attribute,label,do_log,action,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
dataMap.put(entity.getMenuNameCode(), page.getList());
/*}*/
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("top export failed",e);
addMessage(redirectAttributes, "export_failed");
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
//appIp配置导出
@RequestMapping(value = "exportAppIp")
public void exportAppip(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")AppIpCfg entity,String ids,RedirectAttributes redirectAttributes){
try {
//export data info
List<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<AppIpCfg> pageInfo=new Page<AppIpCfg>(request, response,"r");
if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){
pageInfo.setPageNo(1);
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
}else{
pageInfo.setPageNo(1);
pageInfo.setPageSize(-1);
}
Page<AppIpCfg> page = appCfgService.findAppIpList(pageInfo, entity);
for(AppIpCfg appIp:page.getList()){
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(appIp.getSpecServiceId());
appIp.setAppName(app.getSpecServiceName());
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppIpCfg.class);
String cfgIndexInfoNoExport=",letter,whether_area_block,classification,attribute,label,do_log,action,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
dataMap.put(entity.getMenuNameCode(), page.getList());
/*}*/
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("appIp export failed",e);
addMessage(redirectAttributes, "export_failed");
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
//appHttp配置导出
@RequestMapping(value = "exportAppHttp")
public void exportAppHttp(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")AppHttpCfg entity,String ids,RedirectAttributes redirectAttributes){
try {
//export data info
List<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<AppHttpCfg> pageInfo=new Page<AppHttpCfg>(request, response,"r");
if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){
pageInfo.setPageNo(1);
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
}else{
pageInfo.setPageNo(1);
pageInfo.setPageSize(-1);
}
Page<AppHttpCfg> page = appCfgService.findAppHttpList(pageInfo, entity);
for(AppHttpCfg http:page.getList()){
http.setIsHex(http.getIsHexbin());
http.setIsCaseInsenstive(http.getIsHexbin());
http.setCfgKeywords(Functions.replace(http.getCfgKeywords(), "***and***"," "));
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(http.getSpecServiceId());
http.setAppName(app.getSpecServiceName());
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppHttpCfg.class);
String cfgIndexInfoNoExport=",letter,whether_area_block,classification,attribute,label,do_log,action,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
dataMap.put(entity.getMenuNameCode(), page.getList());
/*}*/
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("http export failed",e);
addMessage(redirectAttributes, "export_failed");
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
//appdomain配置导出
@RequestMapping(value = "exportDomain")
public void exportDomain(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")AppDomainCfg entity,String ids,RedirectAttributes redirectAttributes){
try {
//export data info
List<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<AppDomainCfg> pageInfo=new Page<AppDomainCfg>(request, response,"r");
if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){
pageInfo.setPageNo(1);
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
}else{
pageInfo.setPageNo(1);
pageInfo.setPageSize(-1);
}
Page<AppDomainCfg> page = appCfgService.findAppDomainList(pageInfo, entity);
for(AppDomainCfg domain:page.getList()){
domain.setIsHex(domain.getIsHexbin());
domain.setIsCaseInsenstive(domain.getIsHexbin());
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(domain.getSpecServiceId());
domain.setAppName(app.getSpecServiceName());
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppDomainCfg.class);
String cfgIndexInfoNoExport=",letter,whether_area_block,classification,attribute,label,do_log,action,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
dataMap.put(entity.getMenuNameCode(), page.getList());
/*}*/
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("http export failed",e);
addMessage(redirectAttributes, "export_failed");
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
//appssl配置导出
@RequestMapping(value = "exportAppSsl")
public void exportAppSsl(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")AppSslCertCfg entity,String ids,RedirectAttributes redirectAttributes){
try {
//export data info
List<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<AppSslCertCfg> pageInfo=new Page<AppSslCertCfg>(request, response,"r");
if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){
pageInfo.setPageNo(1);
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
}else{
pageInfo.setPageNo(1);
pageInfo.setPageSize(-1);
}
Page<AppSslCertCfg> page = appCfgService.findAppSslList(pageInfo, entity);
for(AppSslCertCfg ssl:page.getList()){
ssl.setIsHex(ssl.getIsHexbin());
ssl.setIsCaseInsenstive(ssl.getIsHexbin());
ssl.setCfgKeywords(Functions.replace(ssl.getCfgKeywords(), "***and***"," "));
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(ssl.getSpecServiceId());
ssl.setAppName(app.getSpecServiceName());
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppSslCertCfg.class);
String cfgIndexInfoNoExport=",letter,whether_area_block,classification,attribute,label,do_log,action,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
dataMap.put(entity.getMenuNameCode(), page.getList());
/*}*/
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("App ssl export failed",e);
addMessage(redirectAttributes, "export_failed");
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
}