dns关键字分组配置

This commit is contained in:
zhangdongxu
2019-02-18 18:29:12 +08:00
parent ae4cca4dfe
commit e4b44e6b8c
10 changed files with 2094 additions and 0 deletions

View File

@@ -0,0 +1,195 @@
package com.nis.web.service.basics;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.beust.jcommander.internal.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.DnsKeywordCfg;
import com.nis.domain.maat.GroupReuseAddBean;
import com.nis.domain.maat.GroupReuseCfg;
import com.nis.domain.maat.MaatCfg;
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.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.StringUtil;
import com.nis.web.dao.CrudDao;
import com.nis.web.dao.basics.AsnGroupInfoDao;
import com.nis.web.dao.basics.AsnIpCfgDao;
import com.nis.web.dao.basics.PolicyGroupInfoDao;
import com.nis.web.dao.configuration.DnsKeywordCfgDao;
import com.nis.web.dao.configuration.StringCfgDao;
import com.nis.web.dao.specific.ConfigGroupInfoDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.CrudService;
import com.nis.web.service.SpringContextHolder;
@Service
public class DnsKeywordCfgService extends CrudService<CrudDao<DnsKeywordCfg>, DnsKeywordCfg> {
@Autowired
private AsnIpCfgDao asnIpCfgDao;
@Autowired
protected DnsKeywordCfgDao dnsKeywordCfgDao;
// @Autowired
// private SpecificServiceCfgDao specificServiceCfgDao;
@Autowired
private ConfigGroupInfoDao configGroupInfoDao;
@Autowired
private AsnGroupInfoDao asnGroupInfoDao;
@Autowired
private PolicyGroupInfoDao policyGroupInfoDao;
/**
* @param page
* @param entity
* @return
*/
public Page<DnsKeywordCfg> findPage(Page<DnsKeywordCfg> page, DnsKeywordCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r"));
entity.setPage(page);
List<DnsKeywordCfg> list=dnsKeywordCfgDao.findPage(entity);
page.setList(list);
return page;
}
public List<AsnIpCfg> findByPage(String ids) {
List<AsnIpCfg> list=asnIpCfgDao.findByPage(ids);
return list;
}
public DnsKeywordCfg get(Long id ) {
return dnsKeywordCfgDao.get(id);
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void update(DnsKeywordCfg entity){
Date editTime=new Date();
entity.setEditTime(editTime);
entity.setEditorId(entity.getCurrentUser().getId());
List<DnsKeywordCfg> auditList=new ArrayList<DnsKeywordCfg>();
/**
* isvalid=0 and asnNo=false 直接修改
* isvalid=0 and asnNo=true 需要下发
* isvalid=1 需要下发asnNo下所有的域配置
*/
/*if(groupInfo.getIsUsed().equals(1) && entity.getIsValid().equals(Constants.VALID_NO)){
entity.setAuditTime(editTime);
entity.setAuditorId(entity.getCurrentUser().getId());
entity.setIsValid(Constants.VALID_YES);
entity.setIsAudit(Constants.AUDIT_YES);
auditAsnIpList.add(entity);
}
if(groupInfo.getIsUsed().equals(1) && entity.getIsValid().equals(Constants.VALID_YES)){
entity.setAuditTime(editTime);
entity.setAuditorId(entity.getCurrentUser().getId());
entity.setIsValid(Constants.VALID_YES);
entity.setIsAudit(Constants.AUDIT_YES);
auditAsnGroupList.add(groupInfo);
}*/
if(entity.getIsValid() ==1){
entity.setAuditTime(editTime);
entity.setAuditorId(entity.getCurrentUser().getId());
entity.setEditTime(editTime);
entity.setEditorId(entity.getCurrentUser().getId());
entity.setIsValid(Constants.VALID_YES);
entity.setIsAudit(Constants.AUDIT_YES);
}else{
entity.setEditTime(editTime);
entity.setEditorId(entity.getCurrentUser().getId());
entity.setIsValid(Constants.VALID_NO);
entity.setIsAudit(Constants.VALID_NO);
}
dnsKeywordCfgDao.update(entity);
//ASN下发状态时可以更改更改之后直接下发
if(entity.getIsValid() ==1){
auditList.add(entity);
// dnsKeywordRegionSendToMaat(auditList,Constants.VALID_YES,Constants.OPACTION_PUT);
}
//common group 新增下发 ASN IP配置
/*if(!StringUtil.isEmpty(auditAsnIpList)){
asnIPRegionSendToMaat(auditAsnIpList,Constants.VALID_YES,Constants.OPACTION_POST);
}*/
//common group 修改已下发过的配置,全量下发 ASN NO下的所有有效配置
/*if(entity.getIsAudit().equals(Constants.VALID_YES)){
auditAllAsnRegionCfg(entity,auditAsnGroupList,null);
}*/
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveDnsKeywordCfg(CfgIndexInfo entity) {
// entity.setCompileId(compileId);
entity.setCreateTime(new Date());
entity.setCreatorId(entity.getCurrentUser().getId());
if (!StringUtil.isEmpty(entity.getDomainList())) {
for(ComplexkeywordCfg cfg:entity.getDomainList()){
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
if(StringUtils.isNoneBlank(cfg.getDistrictShowName()) && cfg.getDistrict().equals("others")){
cfg.setDistrict(cfg.getDistrictShowName());
}
dnsKeywordCfgDao.saveDnsKeywordsCfg(cfg);
}
}
}
//TODO 注意被策略引用并下发过的ASN NO配置新增后直接下发【此功能暂时不做自动asnip拥有审核功能】
/*if(!StringUtil.isEmpty(auditAsnIpList)){
asnIPRegionSendToMaat(auditAsnIpList,Constants.VALID_YES,Constants.OPACTION_POST);
}*/
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void delete(String ids) {
List<DnsKeywordCfg> issuedList=new ArrayList<>();
List<DnsKeywordCfg> dnsKwdCfgList= dnsKeywordCfgDao.getByIds(ids);
for(DnsKeywordCfg entity:dnsKwdCfgList) {
if(entity.getIsValid()==Constants.VALID_YES) {//代表下发过了
entity.setIsValid(Constants.VALID_DEL);
issuedList.add(entity);
// groupId=asnIpCfg.getAsnIpGroup();
//List result=asnIpCfgDao.findOtherIps(groupId, asnIpCfg.getCfgId().intValue());
//if(result==null||result.size()==0) {
// throw new RuntimeException("Cant not delete ip from asn group, there is only one ip left in the group!");
//}
}
}
dnsKeywordCfgDao.delete(ids);
//已经下发过的,调用分组复用配置删除接口
// splitAndSend(issuedList,Constants.VALID_NO);
if(issuedList.size() > 0){
// dnsKeywordRegionSendToMaat(issuedList,Constants.VALID_NO,Constants.OPACTION_PUT);
}
}
public List<DnsKeywordCfg> getByIds(String ids) {
if(ids==null) {
throw new RuntimeException("ids is null!");
}
return dnsKeywordCfgDao.getByIds(ids);
}
}