package com.nis.util; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.common.collect.Lists; 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.IpPortCfg; import com.nis.domain.configuration.PxyObjKeyring; import com.nis.domain.configuration.PxyObjTrustedCaCert; import com.nis.domain.configuration.PxyObjTrustedCaCrl; import com.nis.web.dao.configuration.ConfigSynchronizationDao; import com.nis.web.service.BaseService; import com.nis.web.service.SpringContextHolder; /** * 配置任务调度通用类 * 定时任务调用,处理界面配置状态修改,以及下发综合服务处理 * @author ThinkPad * */ public class SchedulerTaskUtil { //调度任务的配置信息,复用配置同步DAO private static ConfigSynchronizationDao configSynchronizationDao = SpringContextHolder.getBean(ConfigSynchronizationDao.class); /** * 根据业务与编译ID查询配置,修改失效或生效状态,并下发至综合服务 * @param serviceId 不可空 * @param compileId 不可空 * @param oldIsValid 配置当前状态 0无效,1有效,可空 * @param newIsValid 配置最新修改状态 0无效,1有效,不可空 * @return boolean */ public boolean updateConfigByServiceAndCompile(Integer serviceId,Integer compileId,Integer oldIsValid,Integer newIsValid){ //根据业务查询配置文件,获取该业务的配置域表信息 ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil(); List> serviceList = serviceTemplate.getServiceListByServiceId(serviceId); //根据编译ID查询配置表中的配置信息 for(Map service:serviceList){ String tableName = service.get("tableName").toString(); String serviceType = service.get("serviceType").toString(); String className = service.get("className").toString(); BaseCfg entity = new BaseCfg(); entity.setServiceId(serviceId); entity.setCompileId(compileId); entity.setTableName(tableName); List list = Lists.newArrayList(); 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(); for(int i=0;i(); list=configSynchronizationDao.getPxyObjTrustedCrlCfgListByCertId(ids); for(int i=0;i(); //只允许单独下发certId为空或0的crl配置 list = configSynchronizationDao.getPxyObjTrustedCrlCfgList(entity); for(int i=0;i