配置同步的topic domain自定义域需要获取域名id,此信息未在配置表中保存,需从website_domain_topic表中获取

This commit is contained in:
DuanDongmei
2018-12-09 13:50:05 +08:00
parent 9ac32fe3ff
commit d9cef1cc67

View File

@@ -40,6 +40,7 @@ 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.configuration.WebsiteDomainTopic;
import com.nis.domain.maat.GroupReuseAddBean;
import com.nis.domain.maat.GroupReuseCfg;
import com.nis.domain.maat.MaatCfg;
@@ -60,6 +61,7 @@ import com.nis.util.DictUtils;
import com.nis.util.FileUtils;
import com.nis.util.ServiceConfigTemplateUtil;
import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.AppCfgDao;
import com.nis.web.dao.configuration.CommonPolicyDao;
import com.nis.web.dao.configuration.ConfigSynchronizationDao;
import com.nis.web.dao.specific.ConfigGroupInfoDao;
@@ -82,6 +84,8 @@ public class ConfigSynchronizationService extends BaseService{
protected SpecificServiceCfgDao specificServiceCfgDao;
@Autowired
protected ConfigGroupInfoDao configGroupInfoDao;
@Autowired
protected AppCfgDao appCfgDao;
private boolean lastServiceTag = false;//标识是否是最后一个同步业务
private boolean isFinished = false;
/**
@@ -1276,41 +1280,52 @@ public class ConfigSynchronizationService extends BaseService{
areaIpRegionList = new ArrayList();
List list1 = new ArrayList();
String userRegion = "";
//处理自定义域
if(userRegionList!=null){
for(Map<String,Object> n:userRegionList){
Object userRegionPosition = n.get("userRegionPosition");
if(userRegionPosition!=null){
//通过反射机制获取自定义域字段值
String regionColumn = n.get("regionColumn").toString();
Class aClass = null;
if(userRegionPosition.toString().equals(("0"))){
aClass = BaseCfg.class;
}else{
if(cfgType==1){
aClass = IpPortCfg.class;
}else if(cfgType==2){
aClass = BaseStringCfg.class;
}else if(cfgType==3){
aClass = ComplexkeywordCfg.class;
}
}
Object value = "";
Field field = aClass.getDeclaredField(regionColumn);
field.setAccessible(true);
if(cfgType==1){
value = field.get(ipCfg);
}else if(cfgType==2){
value = field.get(strCfg);
}else if(cfgType==3){
value = field.get(complexStrCfg);
}
if(!StringUtil.isEmpty(value)){
if(StringUtil.isEmpty(n.get("regionKey"))){
userRegion = value.toString();
if(entity.getTableName().equals("app_topic_domain_cfg")){
String domain = strCfg.getCfgKeywords();
WebsiteDomainTopic websiteDomainTopic = new WebsiteDomainTopic();
websiteDomainTopic.setDomain(domain);
//查询domainId
List<WebsiteDomainTopic> domainDict = appCfgDao.getDomainDict(websiteDomainTopic);
Long domainId = domainDict.get(0).getId();
userRegion += n.get("regionKey")+"="+domainId+Constants.USER_REGION_SPLIT;
}else{
Object userRegionPosition = n.get("userRegionPosition");
if(userRegionPosition!=null){
//通过反射机制获取自定义域字段值
String regionColumn = n.get("regionColumn").toString();
Class aClass = null;
if(userRegionPosition.toString().equals(("0"))){
aClass = BaseCfg.class;
}else{
userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
if(cfgType==1){
aClass = IpPortCfg.class;
}else if(cfgType==2){
aClass = BaseStringCfg.class;
}else if(cfgType==3){
aClass = ComplexkeywordCfg.class;
}
}
Object value = "";
Field field = aClass.getDeclaredField(regionColumn);
field.setAccessible(true);
if(cfgType==1){
value = field.get(ipCfg);
}else if(cfgType==2){
value = field.get(strCfg);
}else if(cfgType==3){
value = field.get(complexStrCfg);
}
if(!StringUtil.isEmpty(value)){
if(StringUtil.isEmpty(n.get("regionKey"))){
userRegion = value.toString();
}else{
userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
}
}
}
}