单域配置调整

(1)简化逻辑部分代码写到了BaseController里
(2)字符串,增强字符串配置的区域GK提交
(3)单域配置的审核部分目前不会下发area_ip_cfg给maat,后续会调整
This commit is contained in:
wangxin
2018-04-09 16:38:45 +08:00
parent de3d730cd4
commit 3e1b3e391d
18 changed files with 480 additions and 453 deletions

View File

@@ -1,11 +1,14 @@
package com.nis.web.controller;
import java.beans.PropertyEditorSupport;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringEscapeUtils;
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;
@@ -14,6 +17,19 @@ import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.ServiceConfigInfo;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.basics.SysDictInfo;
import com.nis.domain.configuration.AreaBean;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.NumBoundaryCfg;
import com.nis.domain.configuration.RequestInfo;
import com.nis.main.ConvertTool;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.JsonMapper;
import com.nis.web.service.ArchiveServcie;
@@ -29,9 +45,9 @@ import com.nis.web.service.basics.ServiceDictInfoService;
import com.nis.web.service.basics.SysDictInfoService;
import com.nis.web.service.configuration.AppCfgService;
import com.nis.web.service.configuration.ComplexStringCfgService;
import com.nis.web.service.configuration.DnsIpCfgService;
import com.nis.web.service.configuration.FtpCfgService;
import com.nis.web.service.configuration.IpCfgService;
import com.nis.web.service.configuration.DnsIpCfgService;
import com.nis.web.service.configuration.MailCfgService;
import com.nis.web.service.configuration.MediaCfgService;
import com.nis.web.service.configuration.NumCfgService;
@@ -227,4 +243,232 @@ public class BaseController {
}
});
}
protected void initPageCondition(Model model){
List<RequestInfo> requestInfos=requestInfoService.getAllRequestInfo();
model.addAttribute("requestInfos", requestInfos);
List<ServiceDictInfo> fls=serviceDictInfoService.findAllFlDict();
model.addAttribute("fls", fls);
List<ServiceDictInfo> xzs=serviceDictInfoService.findAllXzDict();
model.addAttribute("xzs", xzs);
List<ServiceDictInfo> lables=serviceDictInfoService.findAllLableDict();
model.addAttribute("lables", lables);
}
protected void initFormCondition(Model model){
List<RequestInfo> requestInfos=requestInfoService.getValidRequestInfo();
model.addAttribute("requestInfos", requestInfos);
List<ServiceDictInfo> fls=serviceDictInfoService.findFlDict();
model.addAttribute("fls", fls);
List<ServiceDictInfo> xzs=serviceDictInfoService.findXzDict();
model.addAttribute("xzs", xzs);
List<ServiceDictInfo> lables=serviceDictInfoService.findLableDict();
model.addAttribute("lables", lables);
List<Integer> itTypeList=new ArrayList<Integer>();
itTypeList.add(Constants.ITEM_TYPE_AREA);
List<SysDictInfo> areas = sysDictInfoService.findAllSysDictInfo(new SysDictInfo(),itTypeList,null);
model.addAttribute("areas", areas);
itTypeList.clear();
itTypeList.add(Constants.ITEM_TYPE_ISP);
List<SysDictInfo> isps = sysDictInfoService.findAllSysDictInfo(new SysDictInfo(),itTypeList,null);
model.addAttribute("isps", isps);
//初始化一个默认的地域ip给界面
AreaIpCfg areaIpCfg=new AreaIpCfg();
areaIpCfg.initDefaultValue();
model.addAttribute("_areaCfg", areaIpCfg);
}
protected void initUpdateFormCondition(Model model,BaseCfg cfg){
//查询配置对应的地域ip
List<AreaIpCfg> areaCfgs=ipCfgService.getAreaCfgByCompileId(cfg.getCompileId());
model.addAttribute("areaCfgs", areaCfgs);
StringBuffer areaCfgIds=new StringBuffer();
for(AreaIpCfg areaCfg:areaCfgs){
areaCfgIds.append(areaCfg.getCfgId()+",");
}
//update时判断是否有删除地域ip
model.addAttribute("areaCfgIds", areaCfgIds.toString());
//初始化一个默认的地域ip给界面
AreaIpCfg areaIpCfg=new AreaIpCfg();
areaIpCfg.initDefaultValue();
model.addAttribute("_areaCfg", areaIpCfg);
//从区域生效ID中获取区域与运营商
String areaEffectiveIds=cfg.getAreaEffectiveIds();
List<AreaBean> areaIspList=new ArrayList<AreaBean>();
if(StringUtils.isNotBlank(areaEffectiveIds)){
String[] areaIsps=areaEffectiveIds.split(",");
for(String areaIsp:areaIsps){
AreaBean area=new AreaBean();
if(areaIsp.contains(":")){
area.setArea(areaIsp.split(":")[0]);
area.setIsp(areaIsp.split(":")[1]);
}else{
area.setArea(areaIsp);
}
areaIspList.add(area);
}
}
model.addAttribute("_areaIsps", areaIspList);
List<RequestInfo> requestInfos=requestInfoService.getAllRequestInfo();
model.addAttribute("requestInfos", requestInfos);
List<ServiceDictInfo> fls=serviceDictInfoService.findAllFlDict();
model.addAttribute("fls", fls);
List<ServiceDictInfo> xzs=serviceDictInfoService.findAllXzDict();
model.addAttribute("xzs", xzs);
List<ServiceDictInfo> lables=serviceDictInfoService.findAllLableDict();
model.addAttribute("lables", lables);
List<Integer> itTypeList=new ArrayList<Integer>();
itTypeList.add(Constants.ITEM_TYPE_AREA);
List<SysDictInfo> areas = sysDictInfoService.findAllSysDictInfo(new SysDictInfo(),itTypeList,null);
model.addAttribute("areas", areas);
itTypeList.clear();
itTypeList.add(Constants.ITEM_TYPE_ISP);
List<SysDictInfo> isps = sysDictInfoService.findAllSysDictInfo(new SysDictInfo(),itTypeList,null);
model.addAttribute("isps", isps);
}
protected void setSaveOrUpdateProps(Model model,BaseCfg cfg,String areaCfgIds) throws Exception{
String tableName=cfg.getTableName();
List<AreaIpCfg> areaCfg=cfg.getAreaCfg();
List<AreaBean> areaIsps=cfg.getAreaIsp();
if(Constants.IS_AREA_EFFECTIVE_NO==cfg.getIsAreaEffective()){
cfg.setAreaEffectiveIds("");
cfg.setAreaType(null);
}else if(Constants.IS_AREA_EFFECTIVE_YES==cfg.getIsAreaEffective()){
if(Constants.AREA_EFFECTIVE_TYPE_AREA_ISP==cfg.getAreaType()&&areaIsps!=null&&areaIsps.size()>0){
StringBuffer areaEffectiveIds=new StringBuffer();
for(int i=0;i<areaIsps.size();i++){
if(StringUtils.isNotBlank(areaIsps.get(i).getIsp())){
areaEffectiveIds.append(areaIsps.get(i).getArea()+":"+areaIsps.get(i).getIsp());
}else{
areaEffectiveIds.append(areaIsps.get(i).getArea());
}
if(i!=areaIsps.size()-1){
areaEffectiveIds.append(",");
}
}
if(StringUtils.isBlank(areaEffectiveIds.toString())){
logger.error("区域管控,且按照地域运营商管控,但是地域运营商为空!");
addMessage(model,"save_failed");
return ;
}
cfg.setAreaEffectiveIds(areaEffectiveIds.toString());
}else if(Constants.AREA_EFFECTIVE_TYPE_AREA_IP==cfg.getAreaType()&&areaCfg!=null&&areaCfg.size()>0){
cfg.setAreaEffectiveIds("");
}else{
logger.error("区域管控,但是地域+ISP以及地域IP全部为空");
addMessage(model,"save_failed");
return ;
}
}
int serviceId=cfg.getServiceId();
if(StringUtils.isBlank(tableName)){
ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId);
if(serviceConfigInfo!=null){
tableName=serviceConfigInfo.getTableName();
cfg.setTableName(tableName);
}
}
if(cfg.getCompileId()==null){
int compileId=new ConvertTool().getCompileId().intValue();
cfg.setCompileId(compileId);
}
Date date=new Date();
cfg.setIsValid(Constants.VALID_NO);
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
if(cfg.getCfgId()==null){
cfg.setCreatorId(cfg.getCurrentUser().getId());
cfg.setCreateTime(date);
if(Constants.IS_AREA_EFFECTIVE_YES==cfg.getIsAreaEffective()&&areaCfg!=null){
for(AreaIpCfg area:areaCfg){
area.setTableName(AreaIpCfg.getTablename());
area.setServiceId(serviceId);
area.setCompileId(cfg.getCompileId());
area.setAction(cfg.getAction());
area.setIsValid(Constants.VALID_NO);
area.setIsAudit(Constants.AUDIT_NOT_YET);
area.setRequestId(cfg.getRequestId());
area.setClassify(cfg.getClassify());
area.setAttribute(cfg.getAttribute());
area.setLable(cfg.getLable());
area.setCreatorId(cfg.getCurrentUser().getId());
area.setCreateTime(date);
}
}
if(cfg instanceof BaseIpCfg){
ipCfgService.addIpCfg((BaseIpCfg)cfg,areaCfg);
}else if(cfg instanceof BaseStringCfg){
stringCfgService.addStringCfg((BaseStringCfg)cfg,areaCfg);
}else if(cfg instanceof NumBoundaryCfg){
numCfgService.addNumCfg((NumBoundaryCfg)cfg,areaCfg);
}else if(cfg instanceof ComplexkeywordCfg){
complexStringCfgService.addStringCfg((ComplexkeywordCfg)cfg,areaCfg);
}
}else{
cfg.setEditorId(cfg.getCurrentUser().getId());
cfg.setEditTime(new Date());
List<AreaIpCfg> updateAreaCfg=new ArrayList<>();
List<AreaIpCfg> deleteAreaCfg=new ArrayList<>();
List<AreaIpCfg> addAreaCfg=new ArrayList<>();
String[] cfgIds=null;
if(!StringUtils.isBlank(areaCfgIds)){
cfgIds=areaCfgIds.split(",");
}
if(Constants.IS_AREA_EFFECTIVE_YES==cfg.getIsAreaEffective()&&areaCfg!=null){
for(AreaIpCfg area:areaCfg){
area.setTableName(AreaIpCfg.getTablename());
area.setServiceId(serviceId);
area.setCompileId(cfg.getCompileId());
area.setAction(cfg.getAction());
area.setIsValid(Constants.VALID_NO);
area.setIsAudit(Constants.AUDIT_NOT_YET);
area.setRequestId(cfg.getRequestId());
area.setClassify(cfg.getClassify());
area.setAttribute(cfg.getAttribute());
area.setLable(cfg.getLable());
if(area.getCfgId()==null){
area.setCreatorId(cfg.getCurrentUser().getId());
area.setCreateTime(date);
addAreaCfg.add(area);
}else if(cfgIds!=null){
area.setEditorId(cfg.getCurrentUser().getId());
area.setEditTime(date);
boolean contains=false;
for(String cfgId:cfgIds){
if(!StringUtils.isBlank(cfgId)&&area.getCfgId().longValue()==Long.parseLong(cfgId)){
contains=true;
break;
}
}
if(contains){
updateAreaCfg.add(area);
}else{
deleteAreaCfg.add(area);
}
}
}
}else{
if(cfgIds!=null){
for(String cfgId:cfgIds){
if(!StringUtils.isBlank(cfgId)){
AreaIpCfg area=new AreaIpCfg();
area.setTableName(AreaIpCfg.getTablename());
area.setIsValid(Constants.VALID_DEL);
area.setCfgId(Long.parseLong(cfgId));
area.setEditorId(cfg.getCurrentUser().getId());
area.setEditTime(date);
deleteAreaCfg.add(area);
}
}
}
}
if(cfg instanceof BaseIpCfg){
ipCfgService.updateIpCfg((BaseIpCfg)cfg,addAreaCfg,updateAreaCfg,deleteAreaCfg);
}else if(cfg instanceof BaseStringCfg){
stringCfgService.updateStringCfg((BaseStringCfg)cfg,addAreaCfg,updateAreaCfg,deleteAreaCfg);
}else if(cfg instanceof NumBoundaryCfg){
numCfgService.updateNumCfg((NumBoundaryCfg)cfg,addAreaCfg,updateAreaCfg,deleteAreaCfg);
}else if(cfg instanceof ComplexkeywordCfg){
complexStringCfgService.updateStringCfg((ComplexkeywordCfg)cfg,addAreaCfg,updateAreaCfg,deleteAreaCfg);
}
}
addMessage(model,"save_success");
}
}