FTP P2P Streaming Media, VoIp导入分离

This commit is contained in:
wangxin
2019-04-01 17:39:32 +08:00
parent 298eeef5e4
commit bd29b40573
18 changed files with 940 additions and 39 deletions

View File

@@ -4,7 +4,7 @@ import com.nis.util.excel.ExcelField;
public class BlackListComplexStringTemplate extends ComplexStringAllTemplate {
private Integer doBlackList;
@ExcelField(title="doBlacklist",align=2,sort=2)
@ExcelField(title="doBlacklist",align=2,sort=3)
public Integer getDoBlackList() {
return doBlackList;
}

View File

@@ -4,7 +4,7 @@ import com.nis.util.excel.ExcelField;
public class BlackListIPTemplate extends IpAllTemplate {
private Integer doBlackList;
@ExcelField(title="doBlacklist",align=2,sort=2)
@ExcelField(title="doBlacklist",align=2,sort=3)
public Integer getDoBlackList() {
return doBlackList;
}

View File

@@ -0,0 +1,15 @@
package com.nis.domain.configuration.template;
import com.nis.util.excel.ExcelField;
public class BlackListP2pHashStringTemplate extends P2pHashStringTemplate {
private Integer doBlackList;
@ExcelField(title="doBlacklist",align=2,sort=4)
public Integer getDoBlackList() {
return doBlackList;
}
public void setDoBlackList(Integer doBlackList) {
this.doBlackList = doBlackList;
}
}

View File

@@ -0,0 +1,15 @@
package com.nis.domain.configuration.template;
import com.nis.util.excel.ExcelField;
public class BlackListP2pIpTemplate extends P2pIpTemplate {
private Integer doBlackList;
@ExcelField(title="doBlacklist",align=2,sort=4)
public Integer getDoBlackList() {
return doBlackList;
}
public void setDoBlackList(Integer doBlackList) {
this.doBlackList = doBlackList;
}
}

View File

@@ -4,7 +4,7 @@ import com.nis.util.excel.ExcelField;
public class BlackListStringTemplate extends StringAllTemplate {
private Integer doBlackList;
@ExcelField(title="doBlacklist",align=2,sort=2)
@ExcelField(title="doBlacklist",align=2,sort=3)
public Integer getDoBlackList() {
return doBlackList;
}

View File

@@ -16,7 +16,7 @@ import com.nis.util.excel.ExcelField;
public class P2pHashStringTemplate extends StringAllTemplate {
private String userRegion1;
@ExcelField(title="p2p_hash_type",dictType="P2P_HASH_TYPE",align=2,sort=2)
@ExcelField(title="p2p_hash_type",dictType="P2P_HASH_TYPE",align=2,sort=3)
public String getUserRegion1() {
return userRegion1;
}

View File

@@ -10,7 +10,7 @@ public class P2pIpTemplate extends IpAllTemplate {
private String userRegion2;
@ExcelField(title="p2p_ip_config_type",dictType="P2P_IP_TYPE",align=2,sort=2)
@ExcelField(title="p2p_ip_config_type",dictType="P2P_IP_TYPE",align=2,sort=3)
public String getUserRegion2() {
return userRegion2;
}

View File

@@ -1240,7 +1240,8 @@ public class CheckIpFormatThread implements Callable<String>{
* @param errInfo
*/
public void validDoBlackList(IpPortCfg baseIpCfg, StringBuffer errInfo) {
if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8))&&serviceDict.getAction().equals(16)) {
if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8)
||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(510))&&serviceDict.getAction().equals(16)) {
List<SysDataDictionaryItem> dict=DictUtils.getDictList("DO_BLACKLIST");
if(baseIpCfg.getDoBlackList()==null) {
baseIpCfg.setDoBlackList(Constants.MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT);

View File

@@ -546,7 +546,8 @@ public class CheckStringFormatThread implements Callable<String>{
*/
public void validDoBlackList(BaseStringCfg baseStringCfg, StringBuffer errInfo) {
if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(6)||
regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8))
regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8)
||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(510))
&&serviceDict.getAction().equals(16)) {
List<SysDataDictionaryItem> dict=DictUtils.getDictList("DO_BLACKLIST");
if(baseStringCfg.getDoBlackList()==null) {

View File

@@ -8,20 +8,28 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.BlockingQueue;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jets3t.service.ServiceException;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.basics.SysDictInfo;
@@ -29,18 +37,29 @@ import com.nis.domain.configuration.AreaBean;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvContUrlCfg;
import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.exceptions.MaatConvertException;
import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.template.BlackListComplexStringTemplate;
import com.nis.domain.configuration.template.BlackListIPTemplate;
import com.nis.domain.configuration.template.BlackListStringTemplate;
import com.nis.domain.configuration.template.ComplexStringAllTemplate;
import com.nis.domain.configuration.template.IpAllTemplate;
import com.nis.domain.configuration.template.StringAllTemplate;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.util.excel.ExportExcel;
import com.nis.util.excel.ImportBigExcel;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
/**
* 处理音视频文本业务
@@ -1177,4 +1196,318 @@ public class AvContentController extends BaseController {
// return "redirect:" + adminPath
// +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
@RequestMapping(value = {"contUrlImport","voipImport"}, method=RequestMethod.POST)
public String importCfg(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes,
@RequestParam("files") MultipartFile[] files
,Integer serviceDictId
,Integer requestId
,String attribute
,String classify
,String regionDictIds
,String importPath) {
logger.warn("import start...");
long start=System.currentTimeMillis();
ImportBigExcel ei=null;
try {
FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId);
StringBuffer errTip=new StringBuffer();
BlockingQueue<BaseIpCfg> ipPortCfgs =null;
BlockingQueue<BaseStringCfg<?>> stringCfgs =null;
BlockingQueue<ComplexkeywordCfg> complexkeywordCfgs =null;
List<CfgIndexInfo> cfgIndexInfos = new ArrayList<CfgIndexInfo>();
Properties properties=this.getMsgProp();
for (int i = 0; i < files.length; i++) {
MultipartFile file = files[i];
ei = new ImportBigExcel(file, 0, 1);
FunctionRegionDict regionDict = DictUtils
.getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i]));
//------------------------------------check format start----------------------------
if (regionDict.getRegionType().equals(1)) {// IP
if(serviceDict.getAction().intValue()==16) {
//加载模板
ei.loadInitParams(BlackListIPTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListIPTemplate> list = ei.getDataList(BlackListIPTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list);
}else {
//加载模板
ei.loadInitParams(IpAllTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list);
}
}else if (regionDict.getRegionType().equals(2)) {
if(serviceDict.getAction().intValue()==16) {
ei.loadInitParams(BlackListStringTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListStringTemplate> list = ei.getDataList(BlackListStringTemplate.class );
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}else {
ei.loadInitParams(StringAllTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class );
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}
}else if (regionDict.getRegionType().equals(3)) {
if((regionDict.getFunctionId().intValue()==8)&&serviceDict.getAction().intValue()==16) {
ei.loadInitParams(BlackListComplexStringTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListComplexStringTemplate> list = ei.getDataList(BlackListComplexStringTemplate.class);
complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list);
}else {
ei.loadInitParams(ComplexStringAllTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<ComplexStringAllTemplate> list = ei.getDataList(ComplexStringAllTemplate.class);
complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list);
}
}
//删除文件
if(ei.getUploadFile()!=null&&ei.getUploadFile().exists()) {
ei.getUploadFile().delete();
}
//------------------------------------check format end----------------------------
Date date = new Date();
String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend");
if (regionDict.getRegionType().equals(1)) {// IP
List<BaseIpCfg> _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!ipPortCfgs.isEmpty()) {
ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> numRegionGroupIds=Lists.newArrayList();
List<Integer> numRegionRegionIds=Lists.newArrayList();
if(!regionDict.getFunctionId().equals(405)) {//app ip compileId 从config_group_info中取
try {
compileIds = ConfigServiceUtil.getId(1,_ipPortCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
//需要获取数值域的id
if(serviceDict!=null&&serviceDict.getProtocolId()!=null&&serviceDict.getProtocolId()>0) {
numRegionGroupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size());
numRegionRegionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
}
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
}else {
try {
regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
} catch (Exception e) {
e.printStackTrace();
logger.info("获取域ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
}
int ind=0;
for (BaseIpCfg cfg : _ipPortCfgs) {
cfg.setAction(serviceDict==null?null:serviceDict.getAction());
/*cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);*/
cfg.setCfgRegionCode(regionDict.getConfigRegionCode());
cfg.setCfgType(regionDict.getConfigRegionValue());
cfg.setCreateTime(date);
cfg.setCreatorId(UserUtils.getUser().getId());
//cfg.setDoLog(2);
cfg.setFunctionId(regionDict.getFunctionId());
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_ipPortCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_ipPortCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
if(serviceDict!=null&&serviceDict.getProtocolId()!=null) {
if(numRegionGroupIds!=null&&numRegionGroupIds.size()==_ipPortCfgs.size()) {
cfg.setNumberRegionGroupId(numRegionGroupIds.get(ind));
}
if(numRegionRegionIds!=null&&numRegionRegionIds.size()==_ipPortCfgs.size()) {
cfg.setNumberRegionRegionId(numRegionRegionIds.get(ind));
}
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
cfg.setIsAreaEffective(0);
cfg.setLable("0");
cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId);
cfg.setAttribute(attribute);
cfg.setClassify(classify);
cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId());
cfg.setTableName("ip_port_cfg");
if(compileIds.size()==_ipPortCfgs.size()) {
cfg.setCompileId(compileIds.get(ind));
}
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"});
if(cfg.getDnsStrategyId()!=null) {
cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString()));
}
cfgIndexInfos.add(cfgIndexInfo);
ind++;
}
avContentCfgService.saveAndSend(regionDict, cfgIndexInfos, _ipPortCfgs, isSend.equals("1"));
cfgIndexInfos.clear();
_ipPortCfgs.clear();
}
}else if (regionDict.getRegionType().equals(2)) {//账号
List<BaseStringCfg<?>> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!stringCfgs.isEmpty()) {
stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
try {
compileIds = ConfigServiceUtil.getId(1,_stringCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_stringCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size());
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
int ind=0;
for (BaseStringCfg cfg : _stringCfgs) {
cfg.setAction(serviceDict.getAction());
cfg.setCfgRegionCode(regionDict.getConfigRegionCode());
cfg.setCfgType(regionDict.getConfigRegionValue());
cfg.setCreateTime(date);
cfg.setCreatorId(UserUtils.getUser().getId());
//cfg.setDoLog(2);
cfg.setFunctionId(regionDict.getFunctionId());
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_stringCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_stringCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
cfg.setIsAreaEffective(0);
cfg.setLable("0");
cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId);
cfg.setAttribute(attribute);
cfg.setClassify(classify);
cfg.setServiceId(serviceDict.getServiceId());
if(compileIds!=null&&compileIds.size()==_stringCfgs.size()) {
cfg.setCompileId(compileIds.get(ind));
}
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"});
if(cfg.getDnsStrategyId()!=null) {
cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString()));
}
cfgIndexInfos.add(cfgIndexInfo);
ind++;
}
avContentCfgService.saveAndSend(regionDict, cfgIndexInfos, _stringCfgs, isSend.equals("1"));
cfgIndexInfos.clear();
_stringCfgs.clear();
}
} else if (regionDict.getRegionType().equals(3)) {//dns
List<ComplexkeywordCfg> _complexkeywordCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!complexkeywordCfgs.isEmpty()) {
complexkeywordCfgs.drainTo(_complexkeywordCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
try {
compileIds = ConfigServiceUtil.getId(1,_complexkeywordCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_complexkeywordCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_complexkeywordCfgs.size());
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
int ind=0;
for (ComplexkeywordCfg cfg : _complexkeywordCfgs) {
cfg.setAction(serviceDict.getAction());
/*cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);*/
cfg.setCfgRegionCode(regionDict.getConfigRegionCode());
cfg.setCfgType(regionDict.getConfigRegionValue());
cfg.setCreateTime(date);
cfg.setCreatorId(UserUtils.getUser().getId());
//cfg.setDoLog(2);
cfg.setFunctionId(regionDict.getFunctionId());
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_complexkeywordCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_complexkeywordCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
//cfg.setIsAudit(0);
//cfg.setIsValid(0);
cfg.setIsAreaEffective(0);
cfg.setLable("0");
cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId);
cfg.setAttribute(attribute);
cfg.setClassify(classify);
cfg.setServiceId(serviceDict.getServiceId());
if(compileIds!=null&&compileIds.size()==_complexkeywordCfgs.size()) {
cfg.setCompileId(compileIds.get(ind));
}
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"});
if(cfg.getDnsStrategyId()!=null) {
cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString()));
}
cfgIndexInfos.add(cfgIndexInfo);
ind++;
}
avContentCfgService.saveAndSend(regionDict, cfgIndexInfos, _complexkeywordCfgs, isSend.equals("1"));
cfgIndexInfos.clear();
_complexkeywordCfgs.clear();
}
}
}
if(errTip.toString().length()>0) {
addMessage(redirectAttributes,"error", errTip.toString());
}
} catch (Exception e) {
if(ei!=null) {
if(ei.getUploadFile().exists()) {
ei.getUploadFile().delete();
}
}
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else if(e instanceof ServiceException) {
addMessage(redirectAttributes,"error", e.getMessage());
}else if(e instanceof IndexOutOfBoundsException){
addMessage(redirectAttributes,"error", "template_error");
}else {
addMessage(redirectAttributes,"error", "import_failed");
}
e.printStackTrace();
}
long end=System.currentTimeMillis();
logger.warn("import finish,cost:"+(end-start));
return "redirect:" + adminPath+ importPath;
}
}

View File

@@ -9,8 +9,10 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -19,32 +21,54 @@ import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.taglibs.standard.functions.Functions;
import org.jets3t.service.ServiceException;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.FileDigestCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.P2pHashCfg;
import com.nis.domain.configuration.P2pKeywordCfg;
import com.nis.domain.configuration.template.BlackListComplexStringTemplate;
import com.nis.domain.configuration.template.BlackListIPTemplate;
import com.nis.domain.configuration.template.BlackListP2pHashStringTemplate;
import com.nis.domain.configuration.template.BlackListStringTemplate;
import com.nis.domain.configuration.template.BlackListP2pIpTemplate;
import com.nis.domain.configuration.template.ComplexStringAllTemplate;
import com.nis.domain.configuration.template.DnsComplexStringTemplate;
import com.nis.domain.configuration.template.DnsIpTemplate;
import com.nis.domain.configuration.template.DnsStringTemplate;
import com.nis.domain.configuration.template.IpAllTemplate;
import com.nis.domain.configuration.template.P2pHashStringTemplate;
import com.nis.domain.configuration.template.P2pIpTemplate;
import com.nis.domain.configuration.template.StringAllTemplate;
import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.CallExternalProceduresException;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.FileUtils;
import com.nis.util.JsonMapper;
import com.nis.util.StringUtil;
import com.nis.util.excel.ImportBigExcel;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@@ -984,4 +1008,340 @@ public class FileTransferCfgController extends BaseController {
// return "redirect:" + adminPath
// +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
@RequestMapping(value = {"ftpImport","p2pImport"}, method=RequestMethod.POST)
public String importDns(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes,
@RequestParam("files") MultipartFile[] files
,Integer serviceDictId
,Integer requestId
,String attribute
,String classify
,String regionDictIds
,String importPath) {
logger.warn("import start...");
long start=System.currentTimeMillis();
ImportBigExcel ei=null;
try {
FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId);
StringBuffer errTip=new StringBuffer();
BlockingQueue<BaseIpCfg> ipPortCfgs =null;
BlockingQueue<BaseStringCfg<?>> stringCfgs =null;
BlockingQueue<ComplexkeywordCfg> complexkeywordCfgs =null;
List<CfgIndexInfo> cfgIndexInfos = new ArrayList<CfgIndexInfo>();
Properties properties=this.getMsgProp();
for (int i = 0; i < files.length; i++) {
MultipartFile file = files[i];
ei = new ImportBigExcel(file, 0, 1);
FunctionRegionDict regionDict = DictUtils
.getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i]));
//------------------------------------check format start----------------------------
if (regionDict.getRegionType().equals(1)) {// IP
if(serviceDict.getAction().intValue()==16) {
if("p2p_ip".equals(regionDict.getConfigServiceType())) {
//加载模板
ei.loadInitParams(BlackListP2pIpTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListP2pIpTemplate> list = ei.getDataList(BlackListP2pIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list);
}else {
//加载模板
ei.loadInitParams(BlackListIPTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListIPTemplate> list = ei.getDataList(BlackListIPTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list);
}
}else if("p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p IP
ei.loadInitParams(P2pIpTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<P2pIpTemplate> list = ei.getDataList(P2pIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list);
}else {
//加载模板
ei.loadInitParams(IpAllTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list);
}
}else if (regionDict.getRegionType().equals(2)) {
if(serviceDict.getAction().intValue()==16) {
if("p2p_hash".equals(regionDict.getConfigServiceType())) {
ei.loadInitParams(BlackListP2pHashStringTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListP2pHashStringTemplate> list = ei.getDataList(BlackListP2pHashStringTemplate.class );
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}else {
ei.loadInitParams(BlackListStringTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListStringTemplate> list = ei.getDataList(BlackListStringTemplate.class );
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}
}else if("p2p_hash".equals(regionDict.getConfigServiceType())) { // P2p hash
ei.loadInitParams(P2pHashStringTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<P2pHashStringTemplate> list = ei.getDataList(P2pHashStringTemplate.class );
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}else {
ei.loadInitParams(StringAllTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class );
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}
}else if (regionDict.getRegionType().equals(3)) {
if((regionDict.getFunctionId().intValue()==8)&&serviceDict.getAction().intValue()==16) {
ei.loadInitParams(BlackListComplexStringTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<BlackListComplexStringTemplate> list = ei.getDataList(BlackListComplexStringTemplate.class);
complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list);
}else {
ei.loadInitParams(ComplexStringAllTemplate.class, properties, regionDict, serviceDict);
BlockingQueue<ComplexStringAllTemplate> list = ei.getDataList(ComplexStringAllTemplate.class);
complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list);
}
}
//删除文件
if(ei.getUploadFile()!=null&&ei.getUploadFile().exists()) {
ei.getUploadFile().delete();
}
//------------------------------------check format end----------------------------
Date date = new Date();
String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend");
if (regionDict.getRegionType().equals(1)) {// IP
List<BaseIpCfg> _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!ipPortCfgs.isEmpty()) {
ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> numRegionGroupIds=Lists.newArrayList();
List<Integer> numRegionRegionIds=Lists.newArrayList();
if(!regionDict.getFunctionId().equals(405)) {//app ip compileId 从config_group_info中取
try {
compileIds = ConfigServiceUtil.getId(1,_ipPortCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
//需要获取数值域的id
if(serviceDict!=null&&serviceDict.getProtocolId()!=null&&serviceDict.getProtocolId()>0) {
numRegionGroupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size());
numRegionRegionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
}
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
}else {
try {
regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
} catch (Exception e) {
e.printStackTrace();
logger.info("获取域ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
}
int ind=0;
for (BaseIpCfg cfg : _ipPortCfgs) {
cfg.setAction(serviceDict==null?null:serviceDict.getAction());
/*cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);*/
cfg.setCfgRegionCode(regionDict.getConfigRegionCode());
cfg.setCfgType(regionDict.getConfigRegionValue());
cfg.setCreateTime(date);
cfg.setCreatorId(UserUtils.getUser().getId());
//cfg.setDoLog(2);
cfg.setFunctionId(regionDict.getFunctionId());
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_ipPortCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_ipPortCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
if(serviceDict!=null&&serviceDict.getProtocolId()!=null) {
if(numRegionGroupIds!=null&&numRegionGroupIds.size()==_ipPortCfgs.size()) {
cfg.setNumberRegionGroupId(numRegionGroupIds.get(ind));
}
if(numRegionRegionIds!=null&&numRegionRegionIds.size()==_ipPortCfgs.size()) {
cfg.setNumberRegionRegionId(numRegionRegionIds.get(ind));
}
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
cfg.setIsAreaEffective(0);
cfg.setLable("0");
cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId);
cfg.setAttribute(attribute);
cfg.setClassify(classify);
cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId());
cfg.setTableName("ip_port_cfg");
if(compileIds.size()==_ipPortCfgs.size()) {
cfg.setCompileId(compileIds.get(ind));
}
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"});
if(cfg.getDnsStrategyId()!=null) {
cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString()));
}
cfgIndexInfos.add(cfgIndexInfo);
ind++;
}
fileTransferCfgService.saveAndSend(regionDict, cfgIndexInfos, _ipPortCfgs, isSend.equals("1"));
cfgIndexInfos.clear();
_ipPortCfgs.clear();
}
}else if (regionDict.getRegionType().equals(2)) {//账号
List<BaseStringCfg<?>> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!stringCfgs.isEmpty()) {
stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
try {
compileIds = ConfigServiceUtil.getId(1,_stringCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_stringCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size());
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
int ind=0;
for (BaseStringCfg cfg : _stringCfgs) {
cfg.setAction(serviceDict.getAction());
cfg.setCfgRegionCode(regionDict.getConfigRegionCode());
cfg.setCfgType(regionDict.getConfigRegionValue());
cfg.setCreateTime(date);
cfg.setCreatorId(UserUtils.getUser().getId());
//cfg.setDoLog(2);
cfg.setFunctionId(regionDict.getFunctionId());
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_stringCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_stringCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
cfg.setIsAreaEffective(0);
cfg.setLable("0");
cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId);
cfg.setAttribute(attribute);
cfg.setClassify(classify);
cfg.setServiceId(serviceDict.getServiceId());
if(compileIds!=null&&compileIds.size()==_stringCfgs.size()) {
cfg.setCompileId(compileIds.get(ind));
}
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"});
if(cfg.getDnsStrategyId()!=null) {
cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString()));
}
cfgIndexInfos.add(cfgIndexInfo);
ind++;
}
fileTransferCfgService.saveAndSend(regionDict, cfgIndexInfos, _stringCfgs, isSend.equals("1"));
cfgIndexInfos.clear();
_stringCfgs.clear();
}
} else if (regionDict.getRegionType().equals(3)) {//dns
List<ComplexkeywordCfg> _complexkeywordCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!complexkeywordCfgs.isEmpty()) {
complexkeywordCfgs.drainTo(_complexkeywordCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
try {
compileIds = ConfigServiceUtil.getId(1,_complexkeywordCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_complexkeywordCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_complexkeywordCfgs.size());
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
int ind=0;
for (ComplexkeywordCfg cfg : _complexkeywordCfgs) {
cfg.setAction(serviceDict.getAction());
/*cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);*/
cfg.setCfgRegionCode(regionDict.getConfigRegionCode());
cfg.setCfgType(regionDict.getConfigRegionValue());
cfg.setCreateTime(date);
cfg.setCreatorId(UserUtils.getUser().getId());
//cfg.setDoLog(2);
cfg.setFunctionId(regionDict.getFunctionId());
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_complexkeywordCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_complexkeywordCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
//cfg.setIsAudit(0);
//cfg.setIsValid(0);
cfg.setIsAreaEffective(0);
cfg.setLable("0");
cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId);
cfg.setAttribute(attribute);
cfg.setClassify(classify);
cfg.setServiceId(serviceDict.getServiceId());
if(compileIds!=null&&compileIds.size()==_complexkeywordCfgs.size()) {
cfg.setCompileId(compileIds.get(ind));
}
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"});
if(cfg.getDnsStrategyId()!=null) {
cfgIndexInfo.setDnsStrategyId(Long.parseLong(cfg.getDnsStrategyId().toString()));
}
cfgIndexInfos.add(cfgIndexInfo);
ind++;
}
fileTransferCfgService.saveAndSend(regionDict, cfgIndexInfos, _complexkeywordCfgs, isSend.equals("1"));
cfgIndexInfos.clear();
_complexkeywordCfgs.clear();
}
}
}
if(errTip.toString().length()>0) {
addMessage(redirectAttributes,"error", errTip.toString());
}
} catch (Exception e) {
if(ei!=null) {
if(ei.getUploadFile().exists()) {
ei.getUploadFile().delete();
}
}
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else if(e instanceof ServiceException) {
addMessage(redirectAttributes,"error", e.getMessage());
}else if(e instanceof IndexOutOfBoundsException){
addMessage(redirectAttributes,"error", "template_error");
}else {
addMessage(redirectAttributes,"error", "import_failed");
}
e.printStackTrace();
}
long end=System.currentTimeMillis();
logger.warn("import finish,cost:"+(end-start));
return "redirect:" + adminPath+ importPath;
}
}

View File

@@ -55,7 +55,9 @@ import com.nis.domain.configuration.template.AppPayloadTemplate;
import com.nis.domain.configuration.template.AsnIpTemplate;
import com.nis.domain.configuration.template.BlackListComplexStringTemplate;
import com.nis.domain.configuration.template.BlackListIPTemplate;
import com.nis.domain.configuration.template.BlackListP2pHashStringTemplate;
import com.nis.domain.configuration.template.BlackListStringTemplate;
import com.nis.domain.configuration.template.BlackListP2pIpTemplate;
import com.nis.domain.configuration.template.ComplexStringAllNotDoLogTemplate;
import com.nis.domain.configuration.template.ComplexStringAllTemplate;
import com.nis.domain.configuration.template.DdosIpTemplate;
@@ -386,10 +388,17 @@ public class IpController extends BaseController{
excel.setDataList(pro,classList,null).
write(request,response, fileName).dispose();
}else if(regionDict.getFunctionId().equals(510) && "p2p_ip".equals(regionDict.getConfigServiceType())){ //P2p IP
if(serviceDict!=null&&serviceDict.getAction().equals(16)) {
List<BlackListP2pIpTemplate> classList=new ArrayList<BlackListP2pIpTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, BlackListP2pIpTemplate.class, 2);
excel.setDataList(pro,classList,null).
write(request,response, fileName).dispose();
}else {
List<P2pIpTemplate> classList=new ArrayList<P2pIpTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, P2pIpTemplate.class, 2);
excel.setDataList(pro,classList,null).
write(request,response, fileName).dispose();
}
}else if(regionDict.getFunctionId().equals(600)){ //asnip
List<AsnIpTemplate> classList=new ArrayList<AsnIpTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, AsnIpTemplate.class, 2);
@@ -453,7 +462,8 @@ public class IpController extends BaseController{
ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpAllNotDoLogTemplate.class, 2);
excel.setDataList(pro,classList,null).
write(request,response, fileName).dispose();
}else if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8)||regionDict.getFunctionId().equals(35))&&serviceDict.getAction().equals(16)) {//SSL , HTTP ADVANCED URL mail
}else if((regionDict.getFunctionId().equals(34)||regionDict.getFunctionId().equals(8)||regionDict.getFunctionId().equals(35)
||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(22)||regionDict.getFunctionId().equals(24))&&serviceDict.getAction().equals(16)) {//SSL , HTTP ADVANCED URL mail,FTP,Steaming Media 的BLOCK
List<BlackListIPTemplate> classList=new ArrayList<BlackListIPTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, BlackListIPTemplate.class, 2);
excel.setDataList(pro,classList,null).
@@ -472,7 +482,12 @@ public class IpController extends BaseController{
}
//str类模板
if(regionDict.getRegionType().equals(2)){
if(regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())){ //P2p hash
if(regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())&&serviceDict!=null&&serviceDict.getAction().equals(16)){ //P2p hash block
List<BlackListP2pHashStringTemplate> classList=new ArrayList<BlackListP2pHashStringTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, BlackListP2pHashStringTemplate.class, 2);
excel.setDataList(pro,classList,null).
write(request,response, fileName).dispose();
}else if(regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())){ //P2p hash
List<P2pHashStringTemplate> classList=new ArrayList<P2pHashStringTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, P2pHashStringTemplate.class, 2);
excel.setDataList(pro,classList,null).
@@ -529,7 +544,10 @@ public class IpController extends BaseController{
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, BlackListStringTemplate.class, 2);
excel.setDataList(pro,classList,null).
write(request,response, fileName).dispose();
}else if((regionDict.getFunctionId().equals(6)||regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8))&&serviceDict.getAction().equals(16)) {//URL, Advanced Website Keyword BLOCK
}else if((regionDict.getFunctionId().equals(6)||regionDict.getFunctionId().equals(635)||regionDict.getFunctionId().equals(8)
||regionDict.getFunctionId().equals(51)||regionDict.getFunctionId().equals(510)||regionDict.getFunctionId().equals(22)
||regionDict.getFunctionId().equals(24)
)&&serviceDict.getAction().equals(16)) {//URL, Advanced Website Keyword FTP Steaming Media BLOCK
List<BlackListStringTemplate> classList=new ArrayList<BlackListStringTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, BlackListStringTemplate.class, 2);
excel.setDataList(pro,classList,null).

View File

@@ -4,7 +4,6 @@ package com.nis.web.service.configuration;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -13,36 +12,34 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.Page;
import com.nis.domain.configuration.AreaBean;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvContUrlCfg;
import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.P2pHashCfg;
import com.nis.domain.configuration.P2pKeywordCfg;
import com.nis.domain.maat.MaatCfg;
import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
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.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.dao.configuration.AreaIpCfgDao;
import com.nis.web.dao.configuration.AvContentCfgDao;
import com.nis.web.dao.configuration.IpCfgDao;
import com.nis.web.dao.configuration.StringCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
@@ -62,6 +59,8 @@ public class AvContentCfgService extends BaseService{
protected AreaIpCfgDao areaIpCfgDao;
@Autowired
protected StringCfgDao stringCfgDao;
@Autowired
protected IpCfgDao ipCfgDao;
/********************************voip业务*********************************/
@@ -1984,5 +1983,79 @@ public class AvContentCfgService extends BaseService{
logger.info("picUrl配置取消配置响应信息"+result.getMsg());
}
}
/********************************picUrl业务*********************************/
/**
* 配置导入,目前只支持单sheet
* @param regionDict
* @param cfgIndexInfos
* @param data
* @param send
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAndSend(FunctionRegionDict regionDict,List<CfgIndexInfo> cfgIndexInfos,List<? extends BaseCfg<?>> data,boolean send) {
if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) {
this.saveCfgIndexOf(cfgIndexInfos);
}
if(data!=null&&!data.isEmpty()) {
List<MaatCfg> configCompileList = new ArrayList();
if(data.get(0) instanceof BaseIpCfg) {
for (int index = 0; index < data.size(); index++) {
BaseIpCfg cfg =(BaseIpCfg)data.get(index);
ipCfgDao.insertForBatch(cfg);
if (send) {
if(regionDict.getIsMaat().intValue()==1) {
MaatCfg maatCfg=convertMaatCfg(cfg,1);
//userregion处理
configCompileList.add(maatCfg);
}
}
}
}else if(data.get(0) instanceof BaseStringCfg) {
for (int index = 0; index < data.size(); index++) {
BaseStringCfg cfg = (BaseStringCfg)data.get(index);
if(cfg.getCfgKeywords()!=null && !"".equals(cfg.getCfgKeywords())){
if("subscribe_id".equals(regionDict.getConfigServiceType())){
cfg.setTableName("ntc_subscribe_id_cfg");
}else if(regionDict.getDictId().intValue()==25){
cfg.setTableName("av_cont_url_cfg");
}else if(regionDict.getDictId().intValue()==16) {
cfg.setTableName("av_voip_account_cfg");
}
stringCfgDao.saveStringCfgBatch(cfg);
}
if (send) {
if(regionDict.getIsMaat().intValue()==1) {
MaatCfg maatCfg=convertMaatCfg(cfg,2);
//userregion处理
configCompileList.add(maatCfg);
}
}
}
}
if (send && configCompileList.size() > 0) {
ToMaatBean maatBean = new ToMaatBean();
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(new Date());
maatBean.setCreatorName(UserUtils.getUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
long start=System.currentTimeMillis();
// 调用服务接口下发配置数据
String json = BaseService.gsonToJson(maatBean);
if(configCompileList.size()>10) {
logger.info("配置下发配置条数:" + configCompileList.size());
}else {
logger.info("配置下发配置参数:" + json);
}
// 调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("配置下发响应信息:" + result.getMsg());
long end=System.currentTimeMillis();
logger.info("配置下发配置耗时:" + (end-start));
}
}
}
}

View File

@@ -1,52 +1,51 @@
package com.nis.web.service.configuration;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.FileDigestCfg;
import com.nis.domain.configuration.FtpKeywordCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.P2pHashCfg;
import com.nis.domain.configuration.P2pKeywordCfg;
import com.nis.domain.configuration.FtpKeywordCfg;
import com.nis.domain.maat.MaatCfg;
import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
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.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.FileUtils;
import com.nis.util.JsonMapper;
import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.AreaIpCfgDao;
import com.nis.web.dao.configuration.FileTransferCfgDao;
import com.nis.web.dao.configuration.IpCfgDao;
import com.nis.web.dao.configuration.MailCfgDao;
import com.nis.web.dao.configuration.StringCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
import com.nis.web.service.CrudService;
/**
@@ -64,6 +63,8 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
protected MailCfgDao mailCfgDao;
@Autowired
protected StringCfgDao stringCfgDao;
@Autowired
protected IpCfgDao ipCfgDao;
public Page<CfgIndexInfo> getFtpList(Page<CfgIndexInfo> page, CfgIndexInfo entity){
// 生成数据权限过滤条件dsf为dataScopeFilter的简写在xml中使用 ${sqlMap.dsf}调用权限SQL
@@ -1075,6 +1076,86 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
logger.info("p2p配置取消配置响应信息"+result.getMsg());
}
}
/**
* 配置导入,目前只支持单sheet
* @param regionDict
* @param cfgIndexInfos
* @param data
* @param send
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAndSend(FunctionRegionDict regionDict,List<CfgIndexInfo> cfgIndexInfos,List<? extends BaseCfg<?>> data,boolean send) {
if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) {
this.saveCfgIndexOf(cfgIndexInfos);
}
if(data!=null&&!data.isEmpty()) {
List<MaatCfg> configCompileList = new ArrayList();
if(data.get(0) instanceof BaseIpCfg) {
for (int index = 0; index < data.size(); index++) {
BaseIpCfg cfg =(BaseIpCfg)data.get(index);
ipCfgDao.insertForBatch(cfg);
if (send) {
if(regionDict.getIsMaat().intValue()==1) {
MaatCfg maatCfg=convertMaatCfg(cfg,1);
//userregion处理
if("p2p_ip".equals(regionDict.getConfigServiceType())) {
maatCfg.setUserRegion(Constants.P2P_IP_TYPE_USER_REGION_KEY+"="+cfg.getUserRegion2());
}
configCompileList.add(maatCfg);
}
}
}
}else if(data.get(0) instanceof BaseStringCfg) {
for (int index = 0; index < data.size(); index++) {
BaseStringCfg cfg = (BaseStringCfg)data.get(index);
if(cfg.getCfgKeywords()!=null && !"".equals(cfg.getCfgKeywords())){
if("subscribe_id".equals(regionDict.getConfigServiceType())){
cfg.setTableName("ntc_subscribe_id_cfg");
}else if(regionDict.getDictId().intValue() == 36||regionDict.getDictId().intValue() == 37){
cfg.setTableName("ftp_keyword_cfg");
}else if(regionDict.getDictId().equals(158)) {
cfg.setTableName("p2p_keyword_cfg");
}else if(regionDict.getDictId().equals(159)) {
cfg.setTableName("p2p_hash_cfg");
}
stringCfgDao.saveStringCfgBatch(cfg);
}
if (send) {
if(regionDict.getIsMaat().intValue()==1) {
MaatCfg maatCfg=convertMaatCfg(cfg,2);
//userregion处理
if("p2p_hash".equals(regionDict.getConfigServiceType())) {
maatCfg.setUserRegion(Constants.P2P_HASH_TYPE_USER_REGION_KEY+"="+cfg.getUserRegion1());
}
configCompileList.add(maatCfg);
}
}
}
}
if (send && configCompileList.size() > 0) {
ToMaatBean maatBean = new ToMaatBean();
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(new Date());
maatBean.setCreatorName(UserUtils.getUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
long start=System.currentTimeMillis();
// 调用服务接口下发配置数据
String json = BaseService.gsonToJson(maatBean);
if(configCompileList.size()>10) {
logger.info("ftp/p2p配置下发配置条数" + configCompileList.size());
}else {
logger.info("ftp/p2p配置下发配置参数" + json);
}
// 调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("ftp/p2p配置下发响应信息" + result.getMsg());
long end=System.currentTimeMillis();
logger.info("ftp/p2p配置下发配置耗时" + (end-start));
}
}
}
}

View File

@@ -546,6 +546,7 @@
</div>
</div>
<c:set var="importPath" value="/ntc/av/contUrlList?functionId=${cfg.functionId}"/>
<c:set var="importUrl" value="/ntc/av/contUrlImport"/>
<!-- 模板导入start -->
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
</body>

View File

@@ -536,6 +536,7 @@
</div>
</div>
<c:set var="importPath" value="/ntc/av/voipList?functionId=${cfg.functionId}"/>
<c:set var="importUrl" value="/ntc/av/voipImport"/>
<!-- 模板导入start -->
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
</body>

View File

@@ -516,6 +516,7 @@
</div>
</div>
<c:set var="importPath" value="/ntc/fileTransfer/ftpList?functionId=${cfg.functionId}"/>
<c:set var="importUrl" value="/ntc/fileTransfer/ftpImport"/>
<!-- 模板导入start -->
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
</body>

View File

@@ -530,6 +530,7 @@
</div>
</div>
<c:set var="importPath" value="/ntc/fileTransfer/p2pList?functionId=${cfg.functionId}"/>
<c:set var="importUrl" value="/ntc/fileTransfer/p2pImport"/>
<!-- 模板导入start -->
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
</body>