diff --git a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java index 28208e4ac..994cef81f 100644 --- a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java +++ b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java @@ -10,10 +10,6 @@ package com.nis.domain.configuration; import java.util.List; -import com.nis.domain.SysRole; -import com.nis.util.excel.ExcelField; -import com.nis.util.excel.fieldtype.RoleListType; - /** * @ClassName: CfgIndexInfo.java diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java index 95d747420..50ab696a6 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java @@ -180,7 +180,7 @@ public class WebsiteController extends BaseController{ @RequestMapping(value = {"saveHttpCfg"}) @RequiresPermissions(value={"website:http:config"}) - public String saveHttpCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { + public String saveHttpCfg(RedirectAttributes model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { websiteCfgService.saveHttpCfg(entity); return "redirect:" + adminPath +"/ntc/website/httpList?functionId="+entity.getFunctionId(); } @@ -242,7 +242,7 @@ public class WebsiteController extends BaseController{ } @RequestMapping(value = {"saveSslCfg"}) @RequiresPermissions(value={"website:ssl:config"}) - public String saveSslCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { + public String saveSslCfg(RedirectAttributes model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { websiteCfgService.saveSslCfg(entity); return "redirect:" + adminPath +"/ntc/website/sslList?functionId="+entity.getFunctionId(); } @@ -330,7 +330,7 @@ public class WebsiteController extends BaseController{ } @RequestMapping(value = {"saveDnsCfg"}) @RequiresPermissions(value={"website:dns:config"}) - public String saveDnsCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { + public String saveDnsCfg(RedirectAttributes model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { websiteCfgService.saveDnsCfg(entity); return "redirect:" + adminPath +"/ntc/website/dnsList?functionId="+entity.getFunctionId(); } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java index b1e23828b..7637e0646 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java @@ -1,5 +1,6 @@ package com.nis.web.controller.configuration.ntc; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -8,7 +9,6 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; @@ -19,13 +19,14 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; -import com.nis.domain.configuration.BaseIpCfg; -import com.nis.domain.configuration.HttpUrlCfg; +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.template.WhiteListIpTemplate; import com.nis.exceptions.MaatConvertException; -import com.nis.util.Constants; import com.nis.web.controller.configuration.CommonController; +import com.nis.web.security.UserUtils; /** * 白名单 @@ -38,121 +39,145 @@ public class WhiteListController extends CommonController{ @RequestMapping(value = {"ip/list"}) //@RequiresPermissions(value={"whitelist:ip:config","whitelist:ip:confirm","whitelist:ip:aduit"},logical=Logical.OR) - public String ipList(Model model,@ModelAttribute("cfg")IpPortCfg cfg,HttpServletRequest request,HttpServletResponse response) { - cfg.setTableName(IpPortCfg.getTablename()); - Page searchPage=new Page(request,response,"r"); - Page page = ipCfgService.findPage(searchPage, cfg); + public String ipList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) { + Page searchPage=new Page(request,response,"a"); + Page page = ipCfgService.getWhiteIpList(searchPage, cfg); model.addAttribute("page", page); initPageCondition(model,cfg); return "/cfg/whitelist/ipList"; } + @RequestMapping(value = {"ajaxIpSubList"}) + public String ajaxIpSubList(Model model,Long cfgId,Integer index) { + CfgIndexInfo cfg = ipCfgService.getIpPortCfg(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(); + } + } + } + if(cfg.getNtcSubscribeIdCfgList()!=null){ + String cfgType = null; + for(NtcSubscribeIdCfg keyword:cfg.getNtcSubscribeIdCfgList()){ + if(!keyword.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"2",keyword.getCfgType()}); + cfgType = keyword.getCfgType(); + } + } + } + model.addAttribute("_cfg", cfg); + model.addAttribute("index", index); + model.addAttribute("tabList", tabList); + return "/cfg/whitelist/ipSubList"; + } + @RequestMapping(value = {"ip/form"}) + @RequiresPermissions(value={"whitelist:ip:config"}) + public String ipForm(Model model,String ids,CfgIndexInfo entity) { + if(StringUtils.isNotBlank(ids)){ + + entity = this.ipCfgService.getIpPortCfg(Long.parseLong(ids)); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); + } + model.addAttribute("_cfg", entity); + return "/cfg/whitelist/ipForm"; + } + @RequestMapping(value = {"ip/save"}) + public String saveIpCfg(RedirectAttributes model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { + ipCfgService.saveIpCfg(entity); + return "redirect:" + adminPath +"/ntc/whitelist/ip/list?functionId="+entity.getFunctionId(); + } + @RequestMapping(value = {"ip/audit"}) + @RequiresPermissions("whitelist:ip:confirm") + public String auditIp(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = ipCfgService.getIpPortCfg(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + entity.setFunctionId(functionId); + try { + ipCfgService.auditIpCfg(entity,isAudit); + } catch (MaatConvertException e) { + e.printStackTrace(); + logger.info("ip配置下发失败:"+e.getMessage()); + addMessage(redirectAttributes, e.getMessage()); + } + } + return "redirect:" + adminPath +"/ntc/whitelist/ip/list?functionId="+entity.getFunctionId(); + } + @RequestMapping(value = {"updateIpValid"}) + @RequiresPermissions(value={"whitelist:ip:config"}) + public String updateIpCfgValid(Integer isValid,String ids,Integer functionId) { + ipCfgService.updateIpCfgValid(isValid,ids,functionId); + return "redirect:" + adminPath +"/ntc/whitelist/ip/list?functionId="+functionId; + } @RequestMapping(value = {"domain/list"}) //@RequiresPermissions(value={"whitelist:domain:config","whitelist:domain:confirm","whitelist:domain:aduit"},logical=Logical.OR) - public String domainList(Model model,@ModelAttribute("cfg")HttpUrlCfg cfg,HttpServletRequest request,HttpServletResponse response) { - cfg.setTableName(HttpUrlCfg.getTablename()); - Page searchPage=new Page(request,response,"r"); - Page page = domainService.findPage(searchPage, cfg); + public String domainList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) { + Page searchPage=new Page(request,response,"a"); + Page page = domainService.getDomainList(searchPage, cfg); model.addAttribute("page", page); initPageCondition(model,cfg); return "/cfg/whitelist/domainList"; } - @RequestMapping(value = {"ip/form"}) - @RequiresPermissions(value={"whitelist:ip:config"}) - public String ipForm(Model model,String ids,BaseIpCfg entity) { - if(StringUtils.isNotBlank(ids)){ - entity = ipCfgService.getIpCfgById(IpPortCfg.getTablename(),Long.parseLong(ids)); - } - initFormCondition(model,entity); - if(entity.getCfgId()!=null){ - model.addAttribute("_cfg", entity); - }else{ - IpPortCfg cfg=new IpPortCfg(); - cfg.initDefaultValueImpl(); - cfg.setFunctionId(entity.getFunctionId()); - cfg.setProtocolId(entity.getProtocolId()); - model.addAttribute("_cfg", cfg); - } - - return "/cfg/whitelist/ipForm"; - } + @RequestMapping(value = {"domain/form"}) @RequiresPermissions(value={"whitelist:domain:config"}) - public String domainForm(Model model,String ids,HttpUrlCfg entity) { + public String domainForm(Model model,String ids,CfgIndexInfo entity) { if(StringUtils.isNotBlank(ids)){ - entity = domainService.getStringCfgById(Long.parseLong(ids)); - } - initFormCondition(model,entity); - if(entity.getCfgId()!=null){ - model.addAttribute("_cfg", entity); + entity = domainService.getDomainCfg(Long.parseLong(ids)); + initUpdateFormCondition(model,entity); }else{ - HttpUrlCfg cfg=new HttpUrlCfg(); - cfg.initDefaultValue(); - cfg.setFunctionId(entity.getFunctionId()); - model.addAttribute("_cfg", cfg); + initFormCondition(model,entity); } - + model.addAttribute("_cfg", entity); return "/cfg/whitelist/domainForm"; } - @RequestMapping(value = {"ip/saveOrUpdate"}) - public String saveOrUpdateIp(RedirectAttributes model, IpPortCfg cfg) { - cfg.setTableName(IpPortCfg.getTablename()); - logger.info("saveOrUpdateIp loaded"); - try{ - 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); - ipCfgService.addIpCfg(cfg); - }else{//修改 - cfg.setEditorId(cfg.getCurrentUser().getId()); - cfg.setEditTime(new Date()); - ipCfgService.updateIpCfg(cfg); - } - addMessage(model,"save_success"); - }catch(Exception e){ - logger.error("保存失败",e); - addMessage(model,"save_failed"); - } - return "redirect:" + adminPath +"/ntc/whitelist/ip/list?functionId="+cfg.getFunctionId(); + @RequestMapping(value = {"domain/save"}) + public String saveOrUpdateDomain(RedirectAttributes model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { + domainService.saveDomainCfg(entity); + return "redirect:" + adminPath +"/ntc/whitelist/domain/list?functionId="+entity.getFunctionId(); } - @RequestMapping(value = {"domain/saveOrUpdate"}) - public String saveOrUpdateDomain(RedirectAttributes model, HttpUrlCfg cfg) { - cfg.setTableName(HttpUrlCfg.getTablename()); - logger.info("saveOrUpdateIp loaded"); - try{ - 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); - domainService.addStringCfg(cfg); - }else{//修改 - cfg.setEditorId(cfg.getCurrentUser().getId()); - cfg.setEditTime(new Date()); - domainService.updateStringCfg(cfg); - } - addMessage(model,"save_success"); - }catch(Exception e){ - logger.error("保存失败",e); - addMessage(model,"save_failed"); + @RequestMapping(value = {"domain/ajaxSubList"}) + public String ajaxDomainSubList(Model model,Long cfgId,Integer index) { + CfgIndexInfo cfg = domainService.getDomainCfg(cfgId); + List tabList = new ArrayList(); + if(cfg.getHttpUrlList()!=null){ + String cfgType = null; + for(BaseStringCfg keyword:cfg.getHttpUrlList()){ + if(!keyword.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"2",keyword.getCfgType()}); + cfgType = keyword.getCfgType(); + } + } } - return "redirect:" + adminPath +"/ntc/whitelist/domain/list?functionId="+cfg.getFunctionId(); + if(cfg.getNtcSubscribeIdCfgList()!=null){ + String cfgType = null; + for(NtcSubscribeIdCfg keyword:cfg.getNtcSubscribeIdCfgList()){ + if(!keyword.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"2",keyword.getCfgType()}); + cfgType = keyword.getCfgType(); + } + } + } + model.addAttribute("_cfg", cfg); + model.addAttribute("index", index); + model.addAttribute("tabList", tabList); + return "/cfg/whitelist/domianSubList"; } - - @RequestMapping(value = {"ip/delete"}) - @RequiresPermissions("whitelist:ip:config") - public String deleteIp(String ids,Integer functionId,RedirectAttributes model) { - try{ - ipCfgService.deleteIp(ids,null,functionId.intValue()); - addMessage(model,"delete_success"); - }catch(Exception e){ - logger.error("删除失败", e); - addMessage(model,"delete_failed"); - } - return "redirect:" + adminPath +"/ntc/whitelist/ip/list?functionId="+functionId; + @RequestMapping(value = {"domain/updateValid"}) + @RequiresPermissions(value={"whitelist:domain:config"}) + public String updateDomainValid(Integer isValid,String ids,Integer functionId) { + domainService.updateDomainCfgValid(isValid,ids,functionId); + return "redirect:" + adminPath +"/ntc/whitelist/domain/list?functionId="+functionId; } @RequestMapping(value = {"domain/delete"}) @RequiresPermissions("whitelist:domain:config") @@ -166,58 +191,28 @@ public class WhiteListController extends CommonController{ } return "redirect:" + adminPath +"/ntc/whitelist/domain/list?functionId="+functionId; } - @RequestMapping(value = {"ip/audit"}) - @RequiresPermissions("whitelist:ip:confirm") - public String auditIp(String ids,IpPortCfg cfg,RedirectAttributes redirectAttributes) { - try{ - for(String id:ids.split(",")){ - Long.parseLong(id); - } - List beans=ipCfgService.getListByCfgId(IpPortCfg.getTablename(),cfg.getFunctionId().intValue(),ids); - Date date=new Date(); - for(BaseIpCfg bean:beans){ - bean.setTableName(IpPortCfg.getTablename()); - bean.setAuditorId(bean.getCurrentUser().getId()); - bean.setAuditTime(date); - bean.setIsAudit(cfg.getIsAudit()); - bean.setIsValid(cfg.getIsValid()); - ipCfgService.auditWhiteIp(bean); - } - addMessage(redirectAttributes,"audit_success"); - }catch(MaatConvertException e){ - logger.error("审核失败", e); - addMessage(redirectAttributes, e.getMessage()); - }catch(Exception e){ - logger.error("审核失败", e); - addMessage(redirectAttributes, "audit_failed"); - } - return "redirect:" + adminPath +"/ntc/whitelist/ip/list?functionId="+cfg.getFunctionId(); - } + @RequestMapping(value = {"domain/audit"}) @RequiresPermissions("whitelist:domain:confirm") - public String auditDomain(String ids,HttpUrlCfg cfg,RedirectAttributes redirectAttributes) { - try{ - List beans=domainService.getListByCfgId(ids); - Date date=new Date(); - for(HttpUrlCfg bean:beans){ - HttpUrlCfg domain=new HttpUrlCfg(); - BeanUtils.copyProperties(bean, domain); - domain.setTableName(HttpUrlCfg.getTablename()); - domain.setAuditorId(bean.getCurrentUser().getId()); - domain.setAuditTime(date); - domain.setIsAudit(cfg.getIsAudit()); - domain.setIsValid(cfg.getIsValid()); - domainService.auditWhiteDomain(domain); + public String auditDomain(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = domainService.getDomainCfg(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + entity.setFunctionId(functionId); + try { + domainService.auditDomainCfg(entity,isAudit); + } catch (MaatConvertException e) { + e.printStackTrace(); + logger.info("domain配置下发失败:"+e.getMessage()); + addMessage(redirectAttributes, e.getMessage()); } - addMessage(redirectAttributes,"audit_success"); - }catch(MaatConvertException e){ - logger.error("审核失败", e); - addMessage(redirectAttributes, e.getMessage()); - }catch(Exception e){ - logger.error("审核失败", e); - addMessage(redirectAttributes, "audit_failed"); } - return "redirect:" + adminPath +"/ntc/whitelist/domain/list?functionId="+cfg.getFunctionId(); + return "redirect:" + adminPath +"/ntc/whitelist/domain/list?functionId="+functionId; } //ip配置导入 @RequestMapping(value = "ip/import", method=RequestMethod.POST) diff --git a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java index 9f3e6ff00..4d199f3f3 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java +++ b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java @@ -4,7 +4,10 @@ import java.util.List; import org.apache.ibatis.annotations.Param; +import com.nis.domain.configuration.BaseCfg; import com.nis.domain.configuration.BaseIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.IpPortCfg; import com.nis.web.dao.CrudDao; import com.nis.web.dao.MyBatisDao; @@ -31,4 +34,16 @@ public interface IpCfgDao extends CrudDao{ public int getIsAudit(BaseIpCfg entity); public int deleteByCompileId(BaseIpCfg entity); public int deleteByCompileIds(@Param("user")long user,@Param("tableName")String tableName,@Param("compileIds")String compileIds); + /******************************new ***********************************/ + + public CfgIndexInfo getCfgIndexInfo(Long id); + public List getIpPortList(CfgIndexInfo entity); + public void saveCfgIndex(CfgIndexInfo entity); + public void saveIpPortCfg(IpPortCfg entity); + public void updateCfgIndex(CfgIndexInfo entity); + public void deleteIpCfg(CfgIndexInfo entity); + public void updateCfgValid(BaseCfg entity); + public void auditCfg(BaseCfg entity); + public List getWhiteIpList(CfgIndexInfo entity); + } diff --git a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml index b5b9e3a01..b7a3b6316 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml @@ -43,13 +43,77 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - CFG_ID, CFG_DESC,CFG_REGION_CODE,CFG_TYPE, IP_TYPE, IP_PATTERN, SRC_IP_ADDRESS,DEST_IP_ADDRESS, PORT_PATTERN,SRC_PORT,DEST_PORT, DIRECTION,PROTOCOL,PROTOCOL_ID,ACTION,IS_VALID,IS_AUDIT, @@ -127,6 +191,22 @@ #{userRegion4,jdbcType=VARCHAR}, #{userRegion5,jdbcType=VARCHAR} + + + 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.dns_strategy_id,a.user_region1, + a.user_region2,a.user_region3,a.user_region4,a.user_region5,a.do_log + + + 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 + + + + + + + + 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, + dns_strategy_id, + user_region1, + user_region2, + user_region3, + user_region4, + user_region5, + do_log + )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}, + #{dnsStrategyId,jdbcType=INTEGER}, + #{userRegion1,jdbcType=VARCHAR}, + #{userRegion2,jdbcType=VARCHAR}, + #{userRegion3,jdbcType=VARCHAR}, + #{userRegion4,jdbcType=VARCHAR}, + #{userRegion5,jdbcType=VARCHAR}, + #{doLog,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, + user_region1, + user_region2, + user_region3, + user_region4, + user_region5 + )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}, + #{userRegion1,jdbcType=VARCHAR}, + #{userRegion2,jdbcType=VARCHAR}, + #{userRegion3,jdbcType=VARCHAR}, + #{userRegion4,jdbcType=VARCHAR}, + #{userRegion5,jdbcType=VARCHAR} + ) + + + update cfg_index_info + + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + action = #{action,jdbcType=INTEGER}, + + + do_log = #{doLog,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}, + + user_region1 = #{userRegion1,jdbcType=VARCHAR}, + user_region2 = #{userRegion2,jdbcType=VARCHAR}, + user_region3 = #{userRegion3,jdbcType=VARCHAR}, + user_region4 = #{userRegion4,jdbcType=VARCHAR}, + user_region5 = #{userRegion5,jdbcType=VARCHAR}, + dns_strategy_id = #{dnsStrategyId,jdbcType=INTEGER}, + + + where cfg_id = #{cfgId,jdbcType=BIGINT} + + + delete from ip_port_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/DomainService.java b/src/main/java/com/nis/web/service/configuration/DomainService.java index 6811a1024..3bf1542c0 100644 --- a/src/main/java/com/nis/web/service/configuration/DomainService.java +++ b/src/main/java/com/nis/web/service/configuration/DomainService.java @@ -11,9 +11,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.nis.domain.Page; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.BaseIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.HttpUrlCfg; +import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.maat.MaatCfg; import com.nis.domain.maat.MaatCfg.DigestCfg; import com.nis.domain.maat.MaatCfg.GroupCfg; @@ -29,6 +32,8 @@ import com.nis.util.StringUtil; import com.nis.web.dao.configuration.AreaIpCfgDao; import com.nis.web.dao.configuration.DomainDao; import com.nis.web.dao.configuration.StringCfgDao; +import com.nis.web.dao.configuration.WebsiteCfgDao; +import com.nis.web.security.UserUtils; import com.nis.web.service.CrudService; /** @@ -43,6 +48,8 @@ public class DomainService extends CrudService { @Autowired protected StringCfgDao stringCfgDao; @Autowired + protected WebsiteCfgDao websiteCfgDao; + @Autowired protected AreaIpCfgDao areaIpCfgDao; @Transactional(readOnly=false,rollbackFor=RuntimeException.class) @@ -408,4 +415,245 @@ public class DomainService extends CrudService { // TODO Auto-generated method stub return domainDao.getListByCfgId(ids); } + public CfgIndexInfo getDomainCfg(Long cfgId) { + CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId); + List httpUrlList = websiteCfgDao.getHttpUrlList(entity); + List subscribeIdList = stringCfgDao.findSubscribeIdCfgListByCfgIndexInfo(entity); + entity.setHttpUrlList(httpUrlList); + entity.setNtcSubscribeIdCfgList(subscribeIdList); + return entity; + } + public void saveDomainCfg(CfgIndexInfo entity){ + //设置区域运营商信息 + setAreaEffectiveIds(entity); + + entity.setIsValid(0); + entity.setIsAudit(0); + + if(entity.getCfgId()==null){ + Integer compileId = 0; + try { + List idList = ConfigServiceUtil.getId(1, 1); + if(idList!=null && idList.size()>0){ + compileId = idList.get(0); + } + } catch (MaatConvertException e) { + logger.info("获取编译ID出错"); + throw new MaatConvertException(""); + } + entity.setCompileId(compileId); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + websiteCfgDao.saveCfgIndex(entity); + + if(entity.getHttpUrlList()!=null){ + for(HttpUrlCfg cfg:entity.getHttpUrlList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + websiteCfgDao.saveHttpUrlCfg(cfg); + } + } + } + if(entity.getNtcSubscribeIdCfgList()!=null){ + for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + stringCfgDao.saveSubscribeIdCfg(cfg); + } + } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + + }else{ + websiteCfgDao.updateCfgIndex(entity); + //无效子配置后,再新增子配置 + websiteCfgDao.deleteHttpUrlCfg(entity); + stringCfgDao.deleteSubscribeIdCfgByCfgIndexInfo(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.getHttpUrlList()!=null){ + for(HttpUrlCfg cfg:entity.getHttpUrlList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + websiteCfgDao.saveHttpUrlCfg(cfg); + } + } + } + if(entity.getNtcSubscribeIdCfgList()!=null){ + for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + stringCfgDao.saveSubscribeIdCfg(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); + } + } + } + } + public void updateDomainCfgValid(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); + websiteCfgDao.updateCfgValid(entity); + //查询子配置 + entity = this.getDomainCfg(Long.parseLong(id)); + + if(entity.getHttpUrlList()!=null && entity.getHttpUrlList().size()>0) + { + HttpUrlCfg cfg = new HttpUrlCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(HttpUrlCfg.getTablename()); + websiteCfgDao.updateCfgValid(cfg); + } + if(entity.getNtcSubscribeIdCfgList()!=null && entity.getNtcSubscribeIdCfgList().size()>0) + { + NtcSubscribeIdCfg cfg = new NtcSubscribeIdCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(NtcSubscribeIdCfg.getTablename()); + websiteCfgDao.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()); + websiteCfgDao.updateCfgValid(cfg); + } + + } + + } + public void auditDomainCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{ + // TODO Auto-generated method stub + //修改数据库审核状态信息 + entity.setTableName(CfgIndexInfo.getTablename()); + websiteCfgDao.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.getDomainCfg(entity.getCfgId()); + + if(entity.getHttpUrlList()!=null && entity.getHttpUrlList().size()>0){ + HttpUrlCfg cfg = new HttpUrlCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(HttpUrlCfg.getTablename()); + websiteCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(strRegionList,entity.getHttpUrlList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + } + if(entity.getNtcSubscribeIdCfgList()!=null && entity.getNtcSubscribeIdCfgList().size()>0){ + NtcSubscribeIdCfg cfg = new NtcSubscribeIdCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(NtcSubscribeIdCfg.getTablename()); + websiteCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(strRegionList,entity.getNtcSubscribeIdCfgList(),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()); + websiteCfgDao.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()); + + 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("domain配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + logger.info("domain配置下发响应信息:"+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("domain配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.put(json,1); + logger.info("domain配置取消配置响应信息:"+result.getMsg()); + } + } + public Page getDomainList(Page page, CfgIndexInfo entity){ + // 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL) + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a")); + entity.setPage(page); + List list = websiteCfgDao.getWebsiteList(entity); + page.setList(list); + return page; + } } diff --git a/src/main/java/com/nis/web/service/configuration/IpCfgService.java b/src/main/java/com/nis/web/service/configuration/IpCfgService.java index c6f75eb7b..76e510c51 100644 --- a/src/main/java/com/nis/web/service/configuration/IpCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/IpCfgService.java @@ -14,10 +14,13 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.nis.domain.FunctionRegionDict; +import com.nis.domain.Page; import com.nis.domain.callback.InlineIp; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.BaseIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.maat.MaatCfg; import com.nis.domain.maat.MaatCfg.DigestCfg; import com.nis.domain.maat.MaatCfg.GroupCfg; @@ -34,6 +37,8 @@ import com.nis.util.DictUtils; import com.nis.util.StringUtil; import com.nis.web.dao.configuration.AreaIpCfgDao; import com.nis.web.dao.configuration.IpCfgDao; +import com.nis.web.dao.configuration.StringCfgDao; +import com.nis.web.security.UserUtils; import com.nis.web.service.CrudService; /** @@ -46,6 +51,8 @@ public class IpCfgService extends CrudService { @Autowired protected IpCfgDao ipCfgDao; @Autowired + protected StringCfgDao stringCfgDao; + @Autowired protected AreaIpCfgDao areaIpCfgDao; /** * @@ -90,6 +97,124 @@ public class IpCfgService extends CrudService { } } + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveIpCfg(CfgIndexInfo entity){ + //设置区域运营商信息 + setAreaEffectiveIds(entity); + + entity.setIsValid(0); + entity.setIsAudit(0); + + if(entity.getCfgId()==null){ + Integer compileId = 0; + try { + List idList = ConfigServiceUtil.getId(1, 1); + if(idList!=null && idList.size()>0){ + compileId = idList.get(0); + } + } catch (MaatConvertException e) { + logger.info("获取编译ID出错"); + throw new MaatConvertException(""); + } + entity.setCompileId(compileId); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + ipCfgDao.saveCfgIndex(entity); + if(entity.getIpPortList()!=null){ + for(IpPortCfg cfg:entity.getIpPortList()){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + ipCfgDao.saveIpPortCfg(cfg); + } + } + if(entity.getNtcSubscribeIdCfgList()!=null){ + for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + stringCfgDao.saveSubscribeIdCfg(cfg); + } + } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + + }else{ + ipCfgDao.updateCfgIndex(entity); + //无效子配置后,再新增子配置 + ipCfgDao.deleteIpCfg(entity); + stringCfgDao.deleteSubscribeIdCfgByCfgIndexInfo(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"}); + ipCfgDao.saveIpPortCfg(cfg); + } + } + if(entity.getNtcSubscribeIdCfgList()!=null){ + for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + stringCfgDao.saveSubscribeIdCfg(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); + } + } + } + } + public void updateIpCfgValid(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); + ipCfgDao.updateCfgValid(entity); + //查询子配置 + entity = this.getIpPortCfg(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()); + ipCfgDao.updateCfgValid(cfg); + } + if(entity.getNtcSubscribeIdCfgList()!=null && entity.getNtcSubscribeIdCfgList().size()>0) + { + NtcSubscribeIdCfg cfg = new NtcSubscribeIdCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(NtcSubscribeIdCfg.getTablename()); + ipCfgDao.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()); + ipCfgDao.updateCfgValid(cfg); + } + + } + + } /** * * updateIpCfg(更新IP类配置) @@ -369,7 +494,107 @@ public class IpCfgService extends CrudService { } } } - + public void auditIpCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{ + //修改数据库审核状态信息 + entity.setTableName(CfgIndexInfo.getTablename()); + ipCfgDao.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.getIpPortCfg(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()); + ipCfgDao.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")); + } + } + } + if(entity.getNtcSubscribeIdCfgList()!=null && entity.getNtcSubscribeIdCfgList().size()>0){ + NtcSubscribeIdCfg cfg = new NtcSubscribeIdCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(NtcSubscribeIdCfg.getTablename()); + ipCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(strRegionList,entity.getNtcSubscribeIdCfgList(),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()); + ipCfgDao.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()); + + 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("ip配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + logger.info("ip配置下发响应信息:"+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("ip配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.put(json,1); + logger.info("ip配置取消配置响应信息:"+result.getMsg()); + } + } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void deleteIp(String ids,String compileIds,int functionId){ if(StringUtils.isNotBlank(compileIds)){ @@ -431,6 +656,14 @@ public class IpCfgService extends CrudService { public BaseIpCfg getIpCfgById(BaseIpCfg baseIpCfg){ return ipCfgDao.getById(baseIpCfg.getTableName(), baseIpCfg.getCfgId()); } + public CfgIndexInfo getIpPortCfg(Long cfgId){ + CfgIndexInfo entity = ipCfgDao.getCfgIndexInfo(cfgId); + List ipPortList = ipCfgDao.getIpPortList(entity); + List subscribeIdList = stringCfgDao.findSubscribeIdCfgListByCfgIndexInfo(entity); + entity.setIpPortList(ipPortList); + entity.setNtcSubscribeIdCfgList(subscribeIdList); + return entity; + } public BaseIpCfg getIpCfgById(String tableName,long id){ return ipCfgDao.getById(tableName, id); } @@ -507,4 +740,11 @@ public class IpCfgService extends CrudService { } return msgProp; } + public Page getWhiteIpList(Page page, CfgIndexInfo entity) { + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a")); + entity.setPage(page); + List list = ipCfgDao.getWhiteIpList(entity); + page.setList(list); + return page; + } } diff --git a/src/main/resources/sql/update_function_region_dict_data.sql b/src/main/resources/sql/update_function_region_dict_data.sql index 87237ab84..c66e6d8d7 100644 --- a/src/main/resources/sql/update_function_region_dict_data.sql +++ b/src/main/resources/sql/update_function_region_dict_data.sql @@ -1,3 +1,14 @@ +#ip地址白名单 +INSERT INTO function_region_dict (config_service_type,config_multi_keywords,config_expr_type,config_hex,config_match_method +,function_id,config_region_code,config_region_value,config_desc,is_valid,is_maat,region_type,config_region_sort) +VALUES('subscribe_id',0,'0,1','0,1,2','0,1,2,3',3,2,'WHITE_LIST_SUBSCRIBE_ID','全局IP白名单SUBSCRIBE配置',1,1,2,2); +UPDATE function_service_dict SET region_code='1,2' WHERE function_id=3 AND ACTION=128 +UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0',config_protocol='0' WHERE dict_id=7; +#域名白名单 +INSERT INTO function_region_dict (config_service_type,config_multi_keywords,config_expr_type,config_hex,config_match_method +,function_id,config_region_code,config_region_value,config_desc,is_valid,is_maat,region_type,config_region_sort) +VALUES('subscribe_id',0,'0,1','0,1,2','0,1,2,3',4,2,'WHITE_LIST_SUBSCRIBE_ID','全局域名白名单SUBSCRIBE配置',1,1,2,2); +UPDATE function_service_dict SET region_code='1,2' WHERE function_id=4 AND ACTION=128 #ip地址 UPDATE function_service_dict SET region_code=1 WHERE function_id=5 AND ACTION IN(16,1); UPDATE function_service_dict SET region_code=2 WHERE function_id=5 AND ACTION IN(32,96); @@ -21,9 +32,6 @@ UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6,4 #APP IP UPDATE function_service_dict SET region_code=1 WHERE function_id=405 AND ACTION IN(1); UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0',config_protocol='0,6,17' WHERE dict_id=62; -#IP白名单 -UPDATE function_service_dict SET region_code=1 WHERE function_id=3 AND ACTION IN(128); -UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0',config_protocol='0,6,17' WHERE dict_id=7; #http ip UPDATE function_service_dict SET region_code='1,2,3,4,5,6' WHERE function_id=8 AND ACTION IN(16,1); UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6,46,64,10',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0,1',config_protocol='0,6,17' WHERE dict_id=14; diff --git a/src/main/webapp/WEB-INF/sitemesh3.xml b/src/main/webapp/WEB-INF/sitemesh3.xml index 8c4b7a6ea..d323a8666 100644 --- a/src/main/webapp/WEB-INF/sitemesh3.xml +++ b/src/main/webapp/WEB-INF/sitemesh3.xml @@ -32,6 +32,8 @@ + + /articles/* diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appTcpCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appTcpCfgForm.jsp index a43477c49..29e01e0f1 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appTcpCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appTcpCfgForm.jsp @@ -7,6 +7,8 @@ $(function(){ $(".action").on("change", function() { $("#serviceId").val($(this).attr("serviceId")); + var action=$("input[name='action']:checked").val(); + switchAction(action); }); $("#serviceId").val($(".action:checked").attr("serviceId")); $("#cfgFrom").validate({ @@ -158,15 +160,15 @@ $(function(){ - +