(1)asn no放入eCache中

(2)导入验证采用多线程验证,优化验证速度
(3)asn ip导入方式调整(未采用多线程,因为redis承受不了)
(4)asn ip列表展示速度优化
(5)导入方式重写:采用csv模式,限制采用xlsx格式,加载80万数据不会内存溢出.
This commit is contained in:
wangxin
2018-11-11 19:36:53 +08:00
parent 40bcfea683
commit 80dde7d6a0
53 changed files with 4831 additions and 2996 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -25,9 +25,11 @@ import com.nis.domain.Page;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.DnsResStrategy;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.AsnCacheUtils;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.web.controller.BaseController;
@@ -110,11 +112,10 @@ public class AsnIpController extends BaseController{
,String ids,Integer functionId
,RedirectAttributes redirectAttributes){
try{
asnIpCfgService.delete(functionId,isValid,ids);
asnIpCfgService.delete(isValid,ids);
addMessage(redirectAttributes,"delete_success");
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
logger.error("Delete failed",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
}else {
@@ -124,6 +125,25 @@ public class AsnIpController extends BaseController{
return "redirect:" + adminPath +"/basics/asn/list?functionId="+functionId;
}
/**
* ajax设置Name
* @param model
* @param ids
* @return
*/
@RequestMapping(value="ajaxGroupName",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> ajaxGroupName(Model model,String ids){
AsnCacheUtils.init();
Map<String, String> groupMap=new HashMap<>();
for(String id:ids.split(",")) {
ConfigGroupInfo info=AsnCacheUtils.get(Long.parseLong(id));
if(info!=null) {
groupMap.put(id, info.getGroupName());
}
}
return groupMap;
}
@RequestMapping(value="ajaxServiceIdState",method=RequestMethod.POST)
@ResponseBody
public boolean ajaxServiceIdState(Model model,@RequestParam(required=true,value="serviceGroupIds")String serviceGroupIds){

View File

@@ -292,6 +292,7 @@ public class CommonController extends BaseController {
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode) {
this.importCfgTemplate(request, response, redirectAttributes, functionId, cfgRegionCode);
}
@Deprecated
public void _importFileTemplate(HttpServletRequest request,HttpServletResponse response,
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode,Class clazz) {
this.importCfgTemplate(request, response, redirectAttributes, functionId, cfgRegionCode,clazz);

View File

@@ -21,6 +21,7 @@ import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping("${adminPath}/cfg/asnPolicy")
@Deprecated
public class AsnPolicyCfgController extends BaseController {
@RequestMapping(value = {"/list"})
public String list(Model model,HttpServletRequest request
@@ -76,29 +77,29 @@ public class AsnPolicyCfgController extends BaseController {
asnPolicyCfgService.delete(functionId, isValid, ids);
return "redirect:" + adminPath +"/cfg/asnPolicy/list?functionId="+functionId;
}
@RequestMapping(value = {"/audit"})
@RequiresPermissions(value={"asn:policy:confirm"})
public String audit(Integer isAudit,Integer isValid,String ids
,Integer functionId, RedirectAttributes redirectAttributes) {
if(!StringUtil.isEmpty(ids)){
String[] idArray = ids.split(",");
Date auditTime=new Date();
for(String id :idArray){
try {
asnPolicyCfgService.audit(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.error("dns fake ip配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
} catch (Exception e) {
e.printStackTrace();
logger.error("dns fake ip配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
return "redirect:" + adminPath +"/cfg/asnPolicy/list?functionId="+functionId;
}
// @RequestMapping(value = {"/audit"})
// @RequiresPermissions(value={"asn:policy:confirm"})
// public String audit(Integer isAudit,Integer isValid,String ids
// ,Integer functionId, RedirectAttributes redirectAttributes) {
// if(!StringUtil.isEmpty(ids)){
// String[] idArray = ids.split(",");
// Date auditTime=new Date();
// for(String id :idArray){
// try {
// asnPolicyCfgService.audit(isAudit,isValid,functionId,id,auditTime);
// } catch (MaatConvertException e) {
// e.printStackTrace();
// logger.error("dns fake ip配置下发失败"+e.getMessage());
// addMessage(redirectAttributes,"error","request_service_failed");
// } catch (Exception e) {
// e.printStackTrace();
// logger.error("dns fake ip配置下发失败"+e.getMessage());
// addMessage(redirectAttributes,"error","audit_failed");
// }
//
// }
//
// }
// return "redirect:" + adminPath +"/cfg/asnPolicy/list?functionId="+functionId;
// }
}

View File

@@ -358,7 +358,7 @@ public class IpController extends BaseController{
this._import(request,response,redirectAttributes, files,serviceDictId,regionDictIds,requestId);
return "redirect:" + adminPath+ importPath;
}
//ip配置导出
//ip配置导出
@RequestMapping(value = "exportIpAddr")
public void exportIpAddr(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")CfgIndexInfo entity,String ids,RedirectAttributes redirectAttributes){

View File

@@ -418,6 +418,7 @@ public class WebsiteController extends BaseController{
}
return "redirect:" + adminPath +"/ntc/website/dnsList?functionId="+functionId;
}
@Deprecated
//下载导入模板
@RequestMapping(value = "import/template")
public void importFileTemplate(HttpServletRequest request,HttpServletResponse response,