增加导出功能

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;
@@ -24,6 +25,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.configuration.AppBuiltInFeatureFile;
@@ -39,6 +41,8 @@ import com.nis.domain.configuration.AppSslCertCfg;
import com.nis.domain.configuration.AppStringFeatureCfg;
import com.nis.domain.configuration.AppTcpCfg;
import com.nis.domain.configuration.AppTopicDomainCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.WebsiteDomainTopic;
@@ -236,7 +240,8 @@ public class AppFeatureCfgController extends BaseController {
for(AppComplexFeatureCfg cfg:complexList){
if(!cfg.getCfgType().equals(cfgType)){
tabList.add(new String[]{"3",cfg.getCfgType()});
cfgType = cfg.getCfgType();
cfgType = cfg.getCfgType();0.
}
}
}*/
@@ -244,4 +249,113 @@ public class AppFeatureCfgController extends BaseController {
model.addAttribute("tabList", tabList);
return "/cfg/app/appSubFeatureList";
}
//appfeature配置导出
@RequestMapping(value = "exportFeature")
public void exportAppSsl(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")AppFeatureIndex 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<AppFeatureIndex> pageInfo=new Page<AppFeatureIndex>(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<AppFeatureIndex> page = appMultiFeatureCfgService.findAppFeatureIndexList(pageInfo, entity);
for(AppFeatureIndex feature:page.getList()){
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(feature.getSpecServiceId());
feature.setAppName(app.getSpecServiceName());
}
String cfgIndexInfoNoExport=",letter,whether_area_block,classification,attribute,label,do_log,action,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
String appComplexNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator"
+ ",config_time,editor,edit_time,auditor,audit_time"
+",letter,whether_area_block,classification,attribute,label"
+",userregion1,userregion2,userregion3,userregion4,userregion5,";
String ipPortInfoNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator"
+ ",config_time,editor,edit_time,auditor,audit_time"
+",letter,whether_area_block,classification,attribute,label"
+",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,group_name,";
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppFeatureIndex.class);
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
List<IpPortCfg> ipList=new ArrayList<IpPortCfg>();
List<AppComplexFeatureCfg> keywordList=new ArrayList<AppComplexFeatureCfg>();
for (AppFeatureIndex cfg : page.getList()) {
Map<String, List> maps=appMultiFeatureCfgService.exportFeature(cfg);
keywordList.addAll(maps.get("APP_KEYWORDS"));
ipList.addAll(maps.get("APP_IP_RANGE"));
}
keywordList=replaceKeyList(keywordList);
dataMap.put(entity.getMenuNameCode(), page.getList());
if(entity.getFunctionId()!=564 && entity.getFunctionId()!=567 ){
titleList.add("APP_IP_RANGE");
classMap.put("APP_IP_RANGE", IpPortCfg.class);
noExportMap.put("APP_IP_RANGE",ipPortInfoNoExport);
dataMap.put("APP_IP_RANGE", ipList);
if(entity.getFunctionId()==563){
titleList.add("APP_PAYLOAD");
classMap.put("APP_PAYLOAD", AppComplexFeatureCfg.class);
noExportMap.put("APP_PAYLOAD",appComplexNoExport);
dataMap.put("APP_PAYLOAD", keywordList);
}else if(entity.getFunctionId()==565){
titleList.add("APP_HTTP");
classMap.put("APP_HTTP", AppComplexFeatureCfg.class);
noExportMap.put("APP_HTTP",appComplexNoExport);
dataMap.put("APP_HTTP", keywordList);
}else if(entity.getFunctionId()==566){
titleList.add("APP_SSL");
classMap.put("APP_SSL", AppComplexFeatureCfg.class);
noExportMap.put("APP_SSL",appComplexNoExport);
dataMap.put("APP_SSL", keywordList);
}else if(entity.getFunctionId()==564){
titleList.add("APP_DNS");
classMap.put("APP_DNS", AppComplexFeatureCfg.class);
noExportMap.put("APP_DNS",appComplexNoExport);
dataMap.put("APP_DNS", keywordList);
}else if(entity.getFunctionId()==567){
appComplexNoExport=appComplexNoExport+"district,";
titleList.add("APP_DK_GL");
classMap.put("APP_DK_GL", AppComplexFeatureCfg.class);
noExportMap.put("APP_DK_GL",appComplexNoExport);
dataMap.put("APP_DK_GL", keywordList);
}
}
/*}*/
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("Appfeature export failed",e);
addMessage(redirectAttributes, "export_failed");
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
public static List<AppComplexFeatureCfg> replaceKeyList(List<AppComplexFeatureCfg> list){
for (int i = 0; i < list.size(); i++) {
AppComplexFeatureCfg base=(AppComplexFeatureCfg)list.get(i);
base.setIsHex(base.getIsHexbin());
base.setIsCaseInsenstive(base.getIsHexbin());
base.setCfgKeywords(Functions.replace(base.getCfgKeywords(), "***and***"," "));
}
return list;
}
}