修正ObjectList模块导入功能

This commit is contained in:
zhangwenqing
2019-06-24 17:10:35 +08:00
parent e23b638907
commit e9a06cabaf
11 changed files with 115 additions and 125 deletions

View File

@@ -207,18 +207,8 @@ public class DomainCommGroupController extends BaseController{
}
Integer count = commonGroupManageService.getCountByGroupName(countSet, Constants.DOMAIN_OBJ_GROUP_TYPE); // 调用服务接口获取GroupId的数量
List<Integer> groupIds= ConfigServiceUtil.getId(2,count);
if(count > 0) {
try {
groupIds = ConfigServiceUtil.getId(2,count);
} catch (Exception e) {
logger.error("获取组ID出错");
throw new MaatConvertException("Get group id failed");
}
}
domainCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs, groupIds);
Map<String, Integer> groupIdMap = commonGroupManageService.getCountByGroupName(countSet, Constants.DOMAIN_OBJ_GROUP_TYPE); // 调用服务接口获取GroupId
domainCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs, groupIdMap);
_stringCfgs.clear();
}

View File

@@ -281,18 +281,9 @@ public class IpCommGroupController extends BaseController {
index++;
}
Integer count = commonGroupManageService.getCountByGroupName(countSet, Constants.IP_OBJ_GROUP_TYPE); // 需调用服务接口获取GroupId的数量
List<Integer> groupIds = Lists.newArrayList(count);
if(count > 0) {
try {
groupIds = ConfigServiceUtil.getId(2,count);
} catch (Exception e) {
logger.error("获取组ID出错");
throw new MaatConvertException("Get group id failed");
}
}
ipCommGroupCfgService.saveAndSend(regionDict, serviceDict, _ipPortCfgs, groupIds);
Map<String, Integer> groupIdMap = commonGroupManageService.getCountByGroupName(countSet, Constants.IP_OBJ_GROUP_TYPE); // 调用服务接口获取GroupId
ipCommGroupCfgService.saveAndSend(regionDict, serviceDict, _ipPortCfgs, groupIdMap);
_ipPortCfgs.clear();
}

View File

@@ -207,18 +207,8 @@ public class ScriberIdCommGroupController extends BaseController{
}
Integer count = commonGroupManageService.getCountByGroupName(countSet, Constants.SUBID_OBJ_GROUP_TYPE); // 调用服务接口获取GroupId的数量
List<Integer> groupIds= ConfigServiceUtil.getId(2,count);
if(count > 0) {
try {
groupIds = ConfigServiceUtil.getId(2,count);
} catch (Exception e) {
logger.error("获取组ID出错");
throw new MaatConvertException("Get group id failed");
}
}
scriberIdCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs, groupIds);
Map<String, Integer> groupIdMap = commonGroupManageService.getCountByGroupName(countSet, Constants.SUBID_OBJ_GROUP_TYPE); // 调用服务接口获取GroupId
scriberIdCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs, groupIdMap);
_stringCfgs.clear();
}

View File

@@ -207,18 +207,8 @@ public class UrlCommGroupController extends BaseController{
}
Integer count = commonGroupManageService.getCountByGroupName(countSet, Constants.URL_OBJ_GROUP_TYPE); // 调用服务接口获取GroupId的数量
List<Integer> groupIds= ConfigServiceUtil.getId(2,count);
if(count > 0) {
try {
groupIds = ConfigServiceUtil.getId(2,count);
} catch (Exception e) {
logger.error("获取组ID出错");
throw new MaatConvertException("Get group id failed");
}
}
urlCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs, groupIds);
Map<String, Integer> groupIdMap = commonGroupManageService.getCountByGroupName(countSet, Constants.URL_OBJ_GROUP_TYPE); // 调用服务接口获取GroupId
urlCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs, groupIdMap);
_stringCfgs.clear();
}

View File

@@ -28,7 +28,7 @@ public interface CommonGroupManageDao extends CrudDao<CommonGroupInfo> {
// 校验是否是当前引用Group的最后一条配置
public Integer ajaxCheckIsLastOneCfg(@Param("groupId")Integer groupId, @Param("cfgIds")String CfgIds, @Param("tableName")String indextable);
Integer getCountByGroupName(@Param("groupNameSet")Set<String> set, @Param("groupType")Integer groupType);
Set<String> getCountByGroupName(@Param("groupNameSet")Set<String> set, @Param("groupType")Integer groupType);
Integer getGroupIdByGroupName(@Param("groupName")String groupName, @Param("groupType")Integer groupType);

View File

@@ -226,9 +226,9 @@
r.group_id = #{groupId} AND r.cfg_id NOT IN(${cfgIds})
</select>
<select id="getCountByGroupName" resultType="java.lang.Integer">
<select id="getCountByGroupName" resultType="java.lang.String">
SELECT
COUNT(1)
r.group_name
FROM
policy_group_info r
<trim prefix="WHERE" prefixOverrides="AND |OR ">

View File

@@ -1,37 +1,32 @@
package com.nis.web.service.basics;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.nis.web.dao.basics.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.google.common.collect.Lists;
import com.nis.domain.Page;
import com.nis.domain.basics.CommonGroupInfo;
import com.nis.domain.basics.DomainCommCfg;
import com.nis.domain.basics.IpCommCfg;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.basics.ProtectionListInfo;
import com.nis.domain.basics.ScriberIdCommCfg;
import com.nis.domain.basics.UrlCommCfg;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.CacheUtils;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.StringUtil;
import com.nis.web.dao.basics.CommonGroupManageDao;
import com.nis.web.dao.basics.DomainCommGroupDao;
import com.nis.web.dao.basics.IpCommGroupCfgDao;
import com.nis.web.dao.basics.PolicyGroupInfoDao;
import com.nis.web.dao.basics.ScriberIdCommGroupDao;
import com.nis.web.dao.basics.UrlCommGroupDao;
import com.nis.web.security.UserUtils;
@@ -302,9 +297,31 @@ public class CommonGroupManageService extends BaseService{
}
public Integer getCountByGroupName(Set<String> set, Integer groupType) {
Integer count = commonGroupManageDao.getCountByGroupName(set, groupType);
return set.size()-count;
public Map<String, Integer> getCountByGroupName(Set<String> allGroupNameSet, Integer groupType) {
Set<String> existGroupNameSet = commonGroupManageDao.getCountByGroupName(allGroupNameSet, groupType);
Integer count = allGroupNameSet.size() - existGroupNameSet.size();
List<Integer> groupIds = Lists.newArrayList(count);
if(count > 0) {
try {
groupIds = ConfigServiceUtil.getId(2,count);
} catch (Exception e) {
logger.error("获取组ID出错");
throw new MaatConvertException("Get group id failed");
}
}
allGroupNameSet.removeAll(existGroupNameSet);
Map<String, Integer> map = new HashMap<String,Integer>();
if(groupIds.size() == allGroupNameSet.size()) {
int index = 0;
for (String groupName : allGroupNameSet) {
map.put(groupName, groupIds.get(index));
index++;
}
}
return map;
}

View File

@@ -3,6 +3,7 @@ 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.Properties;
import javax.servlet.http.HttpServletRequest;
@@ -34,6 +35,7 @@ import com.nis.web.dao.basics.CommonGroupManageDao;
import com.nis.web.dao.basics.DomainCommGroupDao;
import com.nis.web.dao.basics.PolicyGroupInfoDao;
import com.nis.web.dao.configuration.CommonPolicyDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.CrudService;
import com.nis.web.service.SpringContextHolder;
@@ -253,16 +255,14 @@ public class DomainCommGroupService extends CrudService<CrudDao<DomainCommCfg>,
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseStringCfg<?>> cfgs, List<Integer> groupIds) {
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseStringCfg<?>> cfgs, Map<String, Integer> groupIdMap) {
logger.warn("Start to save Domain,size:"+cfgs.size());
long start=System.currentTimeMillis();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
SqlSession batchSqlSession = null;
// 导入域配置 -> ①分组不存在新增分组并返回groupId ②分组存在获取groupId -> 数据 入库 -> 更新分组状态 -> 判断是否配置下发
try{
int index = 0;
String ids = "";
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
for(BaseStringCfg<?> cfg:cfgs) {
DomainCommCfg domainCommCfg=new DomainCommCfg();
@@ -270,28 +270,31 @@ public class DomainCommGroupService extends CrudService<CrudDao<DomainCommCfg>,
Integer groupId = commonGroupManageDao.getGroupIdByGroupName(domainCommCfg.getGroupName(), Constants.DOMAIN_OBJ_GROUP_TYPE);
if(groupId == null) { // 分组不存在,新增 UdFlag为1
groupId = groupIds.get(index);
index++;
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(domainCommCfg.getCreatorId());
groupInfo.setCreateTime(domainCommCfg.getCreateTime());
groupInfo.setGroupName(domainCommCfg.getGroupName());
groupInfo.setGroupType(Constants.DOMAIN_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupId);
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
groupId = groupIdMap.get(domainCommCfg.getGroupName());
}else {
if(!ids.contains(groupId+"")) {
ids += ","+groupId;
}
}
domainCommCfg.setGroupId(groupId);
((DomainCommGroupDao) batchSqlSession.getMapper(DomainCommGroupDao.class)).insertCommGroupCfg(domainCommCfg);
}
batchSqlSession.commit();
if(insertGroupList.size() > 0) {
if(groupIdMap.size() > 0) {
Long creatorId = UserUtils.getUser().getId();
Date createTime = new Date();
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
for (String groupName : groupIdMap.keySet()) {
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(creatorId);
groupInfo.setCreateTime(createTime);
groupInfo.setGroupName(groupName);
groupInfo.setGroupType(Constants.DOMAIN_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupIdMap.get(groupName));
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
}
commonGroupManageDao.insertBatch(insertGroupList);
}

View File

@@ -3,6 +3,7 @@ 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.Properties;
import javax.servlet.http.HttpServletRequest;
@@ -34,6 +35,7 @@ import com.nis.web.dao.basics.CommonGroupManageDao;
import com.nis.web.dao.basics.IpCommGroupCfgDao;
import com.nis.web.dao.basics.PolicyGroupInfoDao;
import com.nis.web.dao.configuration.CommonPolicyDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
import com.nis.web.service.SpringContextHolder;
@Service
@@ -239,16 +241,14 @@ public class IpCommGroupCfgService extends BaseService {
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseIpCfg> cfgs, List<Integer> groupIds) {
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseIpCfg> cfgs, Map<String, Integer> groupIdMap) {
logger.warn("Start to save IP,size:"+cfgs.size());
long start=System.currentTimeMillis();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
SqlSession batchSqlSession = null;
// 导入域配置 -> ①分组不存在新增分组并返回serviceGroupId ②分组存在获取serviceGroupId -> 数据入库 -> 更新分组状态 -> 判断是否配置下发
try{
int index = 0;
String ids = "";
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
for(BaseIpCfg cfg:cfgs) {
IpCommCfg ipCommCfg=new IpCommCfg();
@@ -256,29 +256,32 @@ public class IpCommGroupCfgService extends BaseService {
Integer groupId = commonGroupManageDao.getGroupIdByGroupName(ipCommCfg.getGroupName(), Constants.IP_OBJ_GROUP_TYPE);
if(groupId == null) { // 分组不存在,新增 UdFlag为1
groupId = groupIds.get(index);
index++;
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(ipCommCfg.getCreatorId());
groupInfo.setCreateTime(ipCommCfg.getCreateTime());
groupInfo.setGroupName(ipCommCfg.getGroupName());
groupInfo.setGroupType(Constants.IP_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupId);
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
groupId = groupIdMap.get(ipCommCfg.getGroupName());
}else {
if(!ids.contains(groupId+"")) {
ids += ","+groupId;
}
}
ipCommCfg.setGroupId(groupId);
((IpCommGroupCfgDao) batchSqlSession.getMapper(IpCommGroupCfgDao.class)).insertForBatch(ipCommCfg);
}
batchSqlSession.commit();
if(insertGroupList.size() > 0) {
if(groupIdMap.size() > 0) {
Long creatorId = UserUtils.getUser().getId();
Date createTime = new Date();
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
for (String groupName : groupIdMap.keySet()) {
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(creatorId);
groupInfo.setCreateTime(createTime);
groupInfo.setGroupName(groupName);
groupInfo.setGroupType(Constants.IP_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupIdMap.get(groupName));
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
}
commonGroupManageDao.insertBatch(insertGroupList);
}

View File

@@ -3,6 +3,7 @@ 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.Properties;
import javax.servlet.http.HttpServletRequest;
@@ -34,6 +35,7 @@ import com.nis.web.dao.basics.CommonGroupManageDao;
import com.nis.web.dao.basics.PolicyGroupInfoDao;
import com.nis.web.dao.basics.ScriberIdCommGroupDao;
import com.nis.web.dao.configuration.CommonPolicyDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.CrudService;
import com.nis.web.service.SpringContextHolder;
@@ -254,16 +256,14 @@ public class ScriberIdCommGroupService extends CrudService<CrudDao<ScriberIdComm
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseStringCfg<?>> cfgs, List<Integer> groupIds) {
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseStringCfg<?>> cfgs, Map<String, Integer> groupIdMap) {
logger.warn("Start to save ScriberId,size:"+cfgs.size());
long start=System.currentTimeMillis();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
SqlSession batchSqlSession = null;
// 导入域配置 -> ①分组不存在新增分组并返回groupId ②分组存在获取groupId -> 数据 入库 -> 更新分组状态 -> 判断是否配置下发
try{
int index = 0;
String ids = "";
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
for(BaseStringCfg<?> cfg:cfgs) {
ScriberIdCommCfg commCfg=new ScriberIdCommCfg();
@@ -271,28 +271,31 @@ public class ScriberIdCommGroupService extends CrudService<CrudDao<ScriberIdComm
Integer groupId = commonGroupManageDao.getGroupIdByGroupName(commCfg.getGroupName(), Constants.SUBID_OBJ_GROUP_TYPE);
if(groupId == null) {
groupId = groupIds.get(index);
index++;
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(commCfg.getCreatorId());
groupInfo.setCreateTime(commCfg.getCreateTime());
groupInfo.setGroupName(commCfg.getGroupName());
groupInfo.setGroupType(Constants.SUBID_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupId);
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
groupId = groupIdMap.get(commCfg.getGroupName());
}else {
if(!ids.contains(groupId+"")) {
ids += ","+groupId;
}
}
commCfg.setGroupId(groupId);
((ScriberIdCommGroupDao) batchSqlSession.getMapper(ScriberIdCommGroupDao.class)).insertCommGroupCfg(commCfg);
}
batchSqlSession.commit();
if(insertGroupList.size() > 0) {
if(groupIdMap.size() > 0) {
Long creatorId = UserUtils.getUser().getId();
Date createTime = new Date();
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
for (String groupName : groupIdMap.keySet()) {
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(creatorId);
groupInfo.setCreateTime(createTime);
groupInfo.setGroupName(groupName);
groupInfo.setGroupType(Constants.SUBID_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupIdMap.get(groupName));
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
}
commonGroupManageDao.insertBatch(insertGroupList);
}

View File

@@ -3,6 +3,7 @@ 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.Properties;
import javax.servlet.http.HttpServletRequest;
@@ -34,6 +35,7 @@ import com.nis.web.dao.basics.CommonGroupManageDao;
import com.nis.web.dao.basics.PolicyGroupInfoDao;
import com.nis.web.dao.basics.UrlCommGroupDao;
import com.nis.web.dao.configuration.CommonPolicyDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.CrudService;
import com.nis.web.service.SpringContextHolder;
@@ -254,16 +256,14 @@ public class UrlCommGroupService extends CrudService<CrudDao<UrlCommCfg>, UrlCom
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseStringCfg<?>> cfgs, List<Integer> groupIds) {
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseStringCfg<?>> cfgs, Map<String, Integer> groupIdMap) {
logger.warn("Start to save URL,size:"+cfgs.size());
long start=System.currentTimeMillis();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
SqlSession batchSqlSession = null;
// 导入域配置 -> ①分组不存在新增分组并返回groupId ②分组存在获取groupId -> 数据 入库 -> 更新分组状态 -> 判断是否配置下发
try{
int index = 0;
String ids = "";
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
for(BaseStringCfg<?> cfg:cfgs) {
UrlCommCfg urlCommCfg=new UrlCommCfg();
@@ -271,28 +271,31 @@ public class UrlCommGroupService extends CrudService<CrudDao<UrlCommCfg>, UrlCom
Integer groupId = commonGroupManageDao.getGroupIdByGroupName(urlCommCfg.getGroupName(), Constants.URL_OBJ_GROUP_TYPE);
if(groupId == null) { // 分组不存在,新增 UdFlag为1
groupId = groupIds.get(index);
index++;
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(urlCommCfg.getCreatorId());
groupInfo.setCreateTime(urlCommCfg.getCreateTime());
groupInfo.setGroupName(urlCommCfg.getGroupName());
groupInfo.setGroupType(Constants.URL_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupId);
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
groupId = groupIdMap.get(urlCommCfg.getGroupName());
}else {
if(!ids.contains(groupId+"")) {
ids += ","+groupId;
}
}
urlCommCfg.setGroupId(groupId);
((UrlCommGroupDao) batchSqlSession.getMapper(UrlCommGroupDao.class)).insertUrlCommGroupCfg(urlCommCfg);
}
batchSqlSession.commit();
if(insertGroupList.size() > 0) {
if(groupIdMap.size() > 0) {
Long creatorId = UserUtils.getUser().getId();
Date createTime = new Date();
List<CommonGroupInfo> insertGroupList = new ArrayList<CommonGroupInfo>();
for (String groupName : groupIdMap.keySet()) {
CommonGroupInfo groupInfo = new CommonGroupInfo();
groupInfo.setCreatorId(creatorId);
groupInfo.setCreateTime(createTime);
groupInfo.setGroupName(groupName);
groupInfo.setGroupType(Constants.URL_OBJ_GROUP_TYPE);
groupInfo.setServiceGroupId(groupIdMap.get(groupName));
groupInfo.setUdFlag(1);
insertGroupList.add(groupInfo);
}
commonGroupManageDao.insertBatch(insertGroupList);
}