From e6426052cdd29c62d584667372b1028b468c768f Mon Sep 17 00:00:00 2001 From: zhangwei Date: Wed, 2 Jan 2019 17:17:15 +0600 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=B5=81=E9=87=8F=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8A=98=E7=BA=BF=E5=9B=BE=E7=9A=84=E6=97=B6=E5=8C=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=EF=BC=9B=202.=E4=BF=AE=E6=94=B9=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=8E=A5=E5=8F=A3=E7=9A=84=E5=8F=82=E6=95=B0=EF=BC=8C?= =?UTF-8?q?=E5=B0=86=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E5=9C=A8=E6=8E=A5=E5=8F=A3=E7=9A=84=E6=96=B9=E6=B3=95=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=B8=AD=EF=BC=8C=E8=80=8C=E4=B8=8D=E6=98=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3URL=E5=8F=82=E6=95=B0=E4=B8=AD=EF=BC=9B=203.=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=85=8D=E7=BD=AE=E5=90=AF=E5=81=9C=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/maat/ToUpdateMaatBeanStatus.java | 122 ++++++ .../java/com/nis/util/ConfigServiceUtil.java | 36 ++ src/main/java/com/nis/util/Constants.java | 3 + .../java/com/nis/util/SchedulerTaskUtil.java | 390 ++++++++++++------ .../TrafficStatisticsReportController.java | 4 +- .../ConfigSynchronizationDao.java | 2 + .../ConfigSynchronizationDao.xml | 20 + src/main/resources/nis.properties | 184 +++++---- .../views/dashboard/trafficBandwidthList.jsp | 3 +- 9 files changed, 553 insertions(+), 211 deletions(-) create mode 100644 src/main/java/com/nis/domain/maat/ToUpdateMaatBeanStatus.java diff --git a/src/main/java/com/nis/domain/maat/ToUpdateMaatBeanStatus.java b/src/main/java/com/nis/domain/maat/ToUpdateMaatBeanStatus.java new file mode 100644 index 000000000..869d7e249 --- /dev/null +++ b/src/main/java/com/nis/domain/maat/ToUpdateMaatBeanStatus.java @@ -0,0 +1,122 @@ +/** + *@Title: ToMaatBean.java + *@Package com.nis.domain.configuration + *@Description TODO + *@author dell + *@date 2018年2月28日 下午2:03:08 + *@version 版本号 + */ +package com.nis.domain.maat; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +/** + * 修改maat类配置状态 + * @ClassName: ToUpdateStatusMaatBean.java + * @Description: TODO + * @author (dell) + * @date 2019年1月2日 下午3:08:08 + * @version V1.0 + */ +public class ToUpdateMaatBeanStatus implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = -3468862666445104490L; + /** + * @Fields serialVersionUID:TODO(转换为maat格式的java bean) + * + * @since 1.0.0 + */ + @Expose + private String version; + @Expose + @SerializedName("operator") + private String creatorName; + @Expose + @SerializedName("opTime") + private Date auditTime; + @Expose + private Integer opAction; + @Expose + private List configCompileStartStopList; + + public static class UpdateMaatCfgStatus{ + @Expose + private Integer compileId; + @Expose + private Integer isValid; + @Expose + @SerializedName("opTime") + private Date auditTime; + public Integer getCompileId() { + return compileId; + } + public void setCompileId(Integer compileId) { + this.compileId = compileId; + } + public Integer getIsValid() { + return isValid; + } + public void setIsValid(Integer isValid) { + this.isValid = isValid; + } + public Date getAuditTime() { + return auditTime; + } + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; + } + + } + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public Date getAuditTime() { + return auditTime; + } + + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; + } + + public List getConfigCompileStartStopList() { + return configCompileStartStopList; + } + + public void setConfigCompileStartStopList(List configCompileStartStopList) { + this.configCompileStartStopList = configCompileStartStopList; + } + + public Integer getOpAction() { + return opAction; + } + + public void setOpAction(Integer opAction) { + this.opAction = opAction; + } + + public static void main(String[] args) { + + } +} diff --git a/src/main/java/com/nis/util/ConfigServiceUtil.java b/src/main/java/com/nis/util/ConfigServiceUtil.java index c29b8b35f..8779f74ff 100644 --- a/src/main/java/com/nis/util/ConfigServiceUtil.java +++ b/src/main/java/com/nis/util/ConfigServiceUtil.java @@ -814,6 +814,42 @@ public class ConfigServiceUtil { return bean; } + /** + * maat配置停启用 + * @param params + * @return + */ + public static String configStatusUpdate(String params) throws MaatConvertException{ + String result = null; + ToMaatResult bean = null; + Response response=null; + try { + String url = Constants.SERVICE_URL+Constants.CONFIG_START_STOP_UPDATE; + //创建连接 + WebTarget wt = ClientUtil.getWebTarger(url); + logger.info("put url:"+url); + //获取响应结果 + Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); + try { + response= header.put(Entity.entity(params, MediaType.APPLICATION_JSON)); + if(response != null) { + result=response.readEntity(String.class); + } + } catch (Exception e) { + throw new MaatConvertException(""); + } + if(response !=null && response.getStatus() == 200){ + JSONObject resObject = JSONObject.fromObject(result); + bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); + }else{ + throw new MaatConvertException(":"+result); + } + } catch (Exception e) { + throw e; + } + + return result; + } public static void main(String[] args) { try { // getId(1,1); diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index a473f80ba..c8a5836d5 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -799,4 +799,7 @@ public final class Constants { public static final String NTC_EVENT_MONITOR_OR_BLOCK_Report =Configurations.getStringProperty("ntcEventsMonitorOrBlock",""); public static final String NTC_EVENT_KEYPROTECTION_Report =Configurations.getStringProperty("ntcEventKeyProtection",""); + + //配置启停服务接口方法 + public static final String CONFIG_START_STOP_UPDATE=Configurations.getStringProperty("configStartStop", "configStartStop"); } diff --git a/src/main/java/com/nis/util/SchedulerTaskUtil.java b/src/main/java/com/nis/util/SchedulerTaskUtil.java index e79e9432c..52baa0ca0 100644 --- a/src/main/java/com/nis/util/SchedulerTaskUtil.java +++ b/src/main/java/com/nis/util/SchedulerTaskUtil.java @@ -1,20 +1,36 @@ package com.nis.util; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.common.collect.Lists; +import com.nis.domain.configuration.AppPolicyCfg; import com.nis.domain.configuration.AvFileSampleCfg; import com.nis.domain.configuration.AvSignSampleCfg; import com.nis.domain.configuration.BaseCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.DnsIpCfg; import com.nis.domain.configuration.DnsResStrategy; +import com.nis.domain.configuration.FileDigestCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.PxyObjKeyring; import com.nis.domain.configuration.PxyObjTrustedCaCert; import com.nis.domain.configuration.PxyObjTrustedCaCrl; +import com.nis.domain.maat.MaatCfg; +import com.nis.domain.maat.ToMaatBean; +import com.nis.domain.maat.ToMaatResult; +import com.nis.domain.maat.ToUpdateMaatBeanStatus; +import com.nis.domain.maat.MaatCfg.DigestCfg; +import com.nis.domain.maat.MaatCfg.GroupCfg; +import com.nis.domain.maat.MaatCfg.IpCfg; +import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; +import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.domain.maat.ToUpdateMaatBeanStatus.UpdateMaatCfgStatus; import com.nis.web.dao.configuration.ConfigSynchronizationDao; import com.nis.web.service.BaseService; import com.nis.web.service.SpringContextHolder; @@ -29,6 +45,7 @@ public class SchedulerTaskUtil { //调度任务的配置信息,复用配置同步DAO private static ConfigSynchronizationDao configSynchronizationDao = SpringContextHolder.getBean(ConfigSynchronizationDao.class); + private Logger logger = LoggerFactory.getLogger(getClass()); /** * 根据业务与编译ID查询配置,修改失效或生效状态,并下发至综合服务 @@ -49,141 +66,280 @@ public class SchedulerTaskUtil { String className = service.get("className").toString(); BaseCfg entity = new BaseCfg(); entity.setServiceId(serviceId); - entity.setCompileId(compileId); entity.setTableName(tableName); List list = Lists.newArrayList(); + List callBackCfgList = Lists.newArrayList(); + boolean isUpdateContent = false; + /** + * 根据编译ID查询配置,如果配置当前审核状态为未审核(is_audit=0),并且newIsValid=1需要查询详细的域配置信息,下发配置详细内容, + * 如果已审核(is_audit=1),则只查询配置主表,更新配置状态即可, + * 如果审核取消(is_audit=3)则删除定时任务,表示配置已最终删除,此状态处理原则上在配置修改拦截器中处理 + */ if("1".equals(serviceType)){//maat类配置 - //查询配置 - if("cfg_index_info".equals(tableName)){ - list = configSynchronizationDao.getCfgIndexList(entity); - - }else if("file_digest_cfg".equals(tableName)){ - list = configSynchronizationDao.getFileDigestListByService(entity); - - }else if("app_policy_cfg".equals(tableName)){ - list = configSynchronizationDao.getAppPolicyList(entity); - - }else if("app_feature_index".equals(tableName)){ - list = configSynchronizationDao.getAppFeatureIndexList(entity); - - } - if(newIsValid.equals(1)){//生效 - //调用综合服务配置生效启用接口 - - }else if(newIsValid.equals(0)){//失效 - //调用综合服务配置失效停用接口 - - } - }else if("2".equals(serviceType)){//回调类配置 - List newList = Lists.newArrayList(); - List ids = Lists.newArrayList(); - //查询配置 - if(entity.getServiceId().equals(3)){//ip drop回调类配置用了主表和子表关系 - list = configSynchronizationDao.getCfgIndexList(entity); - if(!StringUtil.isEmpty(list)){ - List compileIds = Lists.newArrayList(); + Date updateTime = new Date(); + //下发并修改配置状态的参数类 + ToUpdateMaatBeanStatus maatStatusBean = new ToUpdateMaatBeanStatus(); + UpdateMaatCfgStatus updateCfg = new UpdateMaatCfgStatus(); + List configCompileStartStopList = new ArrayList(); + maatStatusBean.setVersion(Constants.MAAT_VERSION); + maatStatusBean.setOpAction(Constants.INSERT_ACTION); + maatStatusBean.setAuditTime(updateTime); + maatStatusBean.setCreatorName("TaskScheduler");//任务调度定时修改状态 + + //下发带有配置内容的参数对象 + 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(); + +// for(Integer compileId:compileIds){ + entity.setCompileId(compileId); + //查询配置 + if("cfg_index_info".equals(tableName)){ + list = configSynchronizationDao.getCfgIndexList(entity); + List> cfgList = (List>) service.get("cfgList"); for(int i=0;i m:cfgList){ + String regionTableName = m.get("tableName").toString(); + config.setTableName(regionTableName); + configSynchronizationDao.updateCfgStatus(cfg);//修改界面数据库配置状态 + } + } + } } - List subList = configSynchronizationDao.getIpDropList("ip_port_cfg", compileIds); - for(int i=0;i> cfgList = (List>) service.get("cfgList"); for(int i=0;i m:cfgList){ + String regionTableName = m.get("tableName").toString(); + config.setTableName(regionTableName); + configSynchronizationDao.updateCfgStatus(cfg);//修改界面数据库配置状态 + } + } + } } - - }else if(className.equals("AvSignSampleCfg")){//音视频场景配置 - list = configSynchronizationDao.getAvSignCfgList(entity); + + }else if("app_policy_cfg".equals(tableName)){ + list = configSynchronizationDao.getAppPolicyList(entity); + List> cfgList = (List>) service.get("cfgList"); for(int i=0;i(); - list=configSynchronizationDao.getPxyObjTrustedCrlCfgListByCertId(ids); - for(int i=0;i m:cfgList){ + String regionTableName = m.get("tableName").toString(); + config.setTableName(regionTableName); + configSynchronizationDao.updateCfgStatus(cfg);//修改界面数据库配置状态 + } + } + } } - }else if(className.equals("PxyObjTrustedCaCrl")){ - ids=new ArrayList<>(); - //只允许单独下发certId为空或0的crl配置 - list = configSynchronizationDao.getPxyObjTrustedCrlCfgList(entity); - for(int i=0;i compileIdArray = Lists.newArrayList(); + for(int i=0;i getComplexStrListByService(BaseCfg entity); public List getAppIpPortList(@Param("tableName")String tableName,@Param("compileIds")List compileIds); public List getAppIpFeatureList(BaseCfg entity); + + public void updateCfgStatus(BaseCfg entity); } diff --git a/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml b/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml index 05ff5b85d..9b76df62b 100644 --- a/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml @@ -1582,6 +1582,26 @@ AND a.CFG_ID!=#{cfgId,jdbcType=BIGINT} + + + + + update ${tableName} set is_valid = #{isValid,jdbcType=INTEGER}, + edit_time = #{editTime,jdbcType=TIMESTAMP} + + ,is_audit = #{isAudit,jdbcType=INTEGER} + ,audit_time=#{auditTime,jdbcType=TIMESTAMP} + + + + AND cfg_id = #{cfgId,jdbcType=BIGINT} + + + AND compile_id = #{compileId,jdbcType=INTEGER} + + and function_id=#{functionId,jdbcType=INTEGER} + +