fix(配置文件)增加开发环境,清除中文空格问题

This commit is contained in:
doufenghu
2018-10-11 13:38:07 +08:00
34 changed files with 930 additions and 221 deletions

View File

@@ -0,0 +1,190 @@
package com.nis.domain.restful;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.wordnik.swagger.annotations.ApiModelProperty;
public class NmsDiRule implements Serializable {
private static final long serialVersionUID = 1L;
@JsonIgnore
private long id;
private long detectionInfoId;
private long serviceIndex;
private long serviceCode;
private String serviceDesc;
private long agedTime;
private String clientNum;
private String refluxPort;
private String ruleNumber;
private String usedRuleNum;
private String leftRuleNum;
private String hitTotalNum;
private String detectionedState;
private long seqId;
private long detectionSetInfoId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "dataCheckTime", notes = "")
private Date dataCheckTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "dataArriveTime", notes = "")
private Date dataArriveTime;
private long dataCheckTimeDigital;
private long dataArriveTimeDigital;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getDetectionInfoId() {
return detectionInfoId;
}
public void setDetectionInfoId(long detectionInfoId) {
this.detectionInfoId = detectionInfoId;
}
public long getServiceIndex() {
return serviceIndex;
}
public void setServiceIndex(long serviceIndex) {
this.serviceIndex = serviceIndex;
}
public long getServiceCode() {
return serviceCode;
}
public void setServiceCode(long serviceCode) {
this.serviceCode = serviceCode;
}
public String getServiceDesc() {
return serviceDesc;
}
public void setServiceDesc(String serviceDesc) {
this.serviceDesc = serviceDesc;
}
public long getAgedTime() {
return agedTime;
}
public void setAgedTime(long agedTime) {
this.agedTime = agedTime;
}
public String getClientNum() {
return clientNum;
}
public void setClientNum(String clientNum) {
this.clientNum = clientNum;
}
public String getRefluxPort() {
return refluxPort;
}
public void setRefluxPort(String refluxPort) {
this.refluxPort = refluxPort;
}
public String getRuleNumber() {
return ruleNumber;
}
public void setRuleNumber(String ruleNumber) {
this.ruleNumber = ruleNumber;
}
public String getUsedRuleNum() {
return usedRuleNum;
}
public void setUsedRuleNum(String usedRuleNum) {
this.usedRuleNum = usedRuleNum;
}
public String getLeftRuleNum() {
return leftRuleNum;
}
public void setLeftRuleNum(String leftRuleNum) {
this.leftRuleNum = leftRuleNum;
}
public String getHitTotalNum() {
return hitTotalNum;
}
public void setHitTotalNum(String hitTotalNum) {
this.hitTotalNum = hitTotalNum;
}
public String getDetectionedState() {
return detectionedState;
}
public void setDetectionedState(String detectionedState) {
this.detectionedState = detectionedState;
}
public long getSeqId() {
return seqId;
}
public void setSeqId(long seqId) {
this.seqId = seqId;
}
public long getDetectionSetInfoId() {
return detectionSetInfoId;
}
public void setDetectionSetInfoId(long detectionSetInfoId) {
this.detectionSetInfoId = detectionSetInfoId;
}
public Date getDataCheckTime() {
return dataCheckTime;
}
public void setDataCheckTime(Date dataCheckTime) {
this.dataCheckTime = dataCheckTime;
}
public Date getDataArriveTime() {
return dataArriveTime;
}
public void setDataArriveTime(Date dataArriveTime) {
this.dataArriveTime = dataArriveTime;
}
public long getDataCheckTimeDigital() {
return dataCheckTimeDigital;
}
public void setDataCheckTimeDigital(long dataCheckTimeDigital) {
this.dataCheckTimeDigital = dataCheckTimeDigital;
}
public long getDataArriveTimeDigital() {
return dataArriveTimeDigital;
}
public void setDataArriveTimeDigital(long dataArriveTimeDigital) {
this.dataArriveTimeDigital = dataArriveTimeDigital;
}
}

View File

@@ -0,0 +1,19 @@
package com.nis.domain.restful;
import java.io.Serializable;
import java.util.List;
public class NmsDiRuleList implements Serializable {
private static final long serialVersionUID = 1L;
private List<NmsDiRule> nmsDiRuleList;
public List<NmsDiRule> getNmsDiRuleList() {
return nmsDiRuleList;
}
public void setNmsDiRuleList(List<NmsDiRule> nmsDiRuleList) {
this.nmsDiRuleList = nmsDiRuleList;
}
}

View File

@@ -0,0 +1,108 @@
package com.nis.domain.restful;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.wordnik.swagger.annotations.ApiModelProperty;
public class TrafficNetflowPortInfo implements Serializable {
private static final long serialVersionUID = 1L;
@JsonIgnore
private long stat_id;
private long port;
private String nodeName;
private String nodeIp;
private String portDesc;
private long bandwidth;
private long inoctets;
private long outoctets;
private long inoctetsSpeed;
private long outoctetsSpeed;
private long inpktsSpeed;
private long outpktsSpeed;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "dataArriveTime", notes = "")
private Date recvTime;
public long getStat_id() {
return stat_id;
}
public void setStat_id(long stat_id) {
this.stat_id = stat_id;
}
public long getPort() {
return port;
}
public void setPort(long port) {
this.port = port;
}
public String getNodeName() {
return nodeName;
}
public void setNodeName(String nodeName) {
this.nodeName = nodeName;
}
public String getNodeIp() {
return nodeIp;
}
public void setNodeIp(String nodeIp) {
this.nodeIp = nodeIp;
}
public String getPortDesc() {
return portDesc;
}
public void setPortDesc(String portDesc) {
this.portDesc = portDesc;
}
public long getBandwidth() {
return bandwidth;
}
public void setBandwidth(long bandwidth) {
this.bandwidth = bandwidth;
}
public long getInoctets() {
return inoctets;
}
public void setInoctets(long inoctets) {
this.inoctets = inoctets;
}
public long getOutoctets() {
return outoctets;
}
public void setOutoctets(long outoctets) {
this.outoctets = outoctets;
}
public long getInoctetsSpeed() {
return inoctetsSpeed;
}
public void setInoctetsSpeed(long inoctetsSpeed) {
this.inoctetsSpeed = inoctetsSpeed;
}
public long getOutoctetsSpeed() {
return outoctetsSpeed;
}
public void setOutoctetsSpeed(long outoctetsSpeed) {
this.outoctetsSpeed = outoctetsSpeed;
}
public long getInpktsSpeed() {
return inpktsSpeed;
}
public void setInpktsSpeed(long inpktsSpeed) {
this.inpktsSpeed = inpktsSpeed;
}
public long getOutpktsSpeed() {
return outpktsSpeed;
}
public void setOutpktsSpeed(long outpktsSpeed) {
this.outpktsSpeed = outpktsSpeed;
}
public Date getRecvTime() {
return recvTime;
}
public void setRecvTime(Date recvTime) {
this.recvTime = recvTime;
}
}

View File

@@ -0,0 +1,19 @@
package com.nis.domain.restful;
import java.io.Serializable;
import java.util.List;
public class TrafficNetflowPortInfoList implements Serializable {
private static final long serialVersionUID = 1L;
private List<TrafficNetflowPortInfo> trafficNetflowPortInfoList;
public List<TrafficNetflowPortInfo> getTrafficNetflowPortInfoList() {
return trafficNetflowPortInfoList;
}
public void setTrafficNetflowPortInfoList(List<TrafficNetflowPortInfo> trafficNetflowPortInfoList) {
this.trafficNetflowPortInfoList = trafficNetflowPortInfoList;
}
}

View File

@@ -620,6 +620,15 @@ public enum RestBusinessCode {
* Redis关联关系库中未找到配置对应的redisdb信息
*/
RedisDBRelationNotExistsInRedis(5003005,"Redis关联关系库中未找到配置对应的redisdb信息"),
/**
* 保存文件到redis发生了异常
*/
SaveFileToRedisError(5003006,"保存文件到redis发生了异常"),
/**
* Map中缺少编译配置信息

View File

@@ -203,5 +203,8 @@ public final class Constants {
* 样例文件存放目录
*/
public static final String MM_SAMPLE_DST_PATH = Configurations.getStringProperty("mmSampleDstPath", "/home/mesasoft/{tableType}/full/{fileName}");
/**
*是否使用Minio
*/
public static final Boolean IS_USE_MINIO = Configurations.getBooleanProperty("isUseMinio", true);
}

View File

@@ -0,0 +1,50 @@
package com.nis.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import com.nis.restful.RestBusinessCode;
import com.nis.restful.ServiceRuntimeException;
import redis.clients.jedis.Transaction;
public class File2Redis {
private static String fileProtocol = Configurations.getStringProperty("fileProtocol", "minio://");
public static String file2Redis(String url, Transaction transaction) {
try {
byte[] fileByte = downLoadFromUrl(url);
String md5 = MD5Utils.getMd5ByIS(new ByteArrayInputStream(fileByte));
String key = "__FILE_" + md5;
transaction.set(key.getBytes(), fileByte);
return fileProtocol + key;
} catch (Exception e) {
throw new ServiceRuntimeException("保存文件到redis发生了异常:" + e.getMessage(),
RestBusinessCode.SaveFileToRedisError.getValue());
}
}
public static byte[] downLoadFromUrl(String urlStr) throws IOException {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置超时间为30秒
conn.setConnectTimeout(3 * 10000);
// 防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
// 得到输入流
InputStream inputStream = conn.getInputStream();
ByteArrayOutputStream baosOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > -1) {
baosOutputStream.write(buffer, 0, len);
}
baosOutputStream.flush();
return baosOutputStream.toByteArray();
}
}

View File

@@ -3,81 +3,95 @@
*/
package com.nis.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.LocaleResolver;
import com.ckfinder.connector.ServletContextFactory;
import com.google.common.collect.Lists;
import com.nis.web.service.SpringContextHolder;
import org.apache.commons.codec.digest.DigestUtils;
/**
* 字符串工具类, 继承org.apache.commons.lang3.StringUtils类
* @author ThinkGem
* @version 2013-05-22
*/
public class MD5Utils{
public class MD5Utils {
/**
* 字符串转为MD532位小写
* @param plain
* @return
*/
public static String md5LowerCase(String plain) throws Exception{
public static String md5LowerCase(String plain) throws Exception {
String re_md5 = new String();
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plain.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plain.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
i += 256;
if (i < 16)
buf.append("0");
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString();
return re_md5;
}
public static byte[] createChecksum(String filename) throws IOException, NoSuchAlgorithmException{
InputStream fis=new FileInputStream(filename);
byte[] buffer=new byte[1024];
MessageDigest complete=MessageDigest.getInstance("MD5");
re_md5 = buf.toString();
return re_md5;
}
public static byte[] createChecksum(String filename) throws IOException, NoSuchAlgorithmException {
InputStream fis = new FileInputStream(filename);
byte[] buffer = new byte[1024];
MessageDigest complete = MessageDigest.getInstance("MD5");
int numRead;
do{
numRead=fis.read(buffer);
if(numRead>0){
complete.update(buffer,0,numRead);
do {
numRead = fis.read(buffer);
if (numRead > 0) {
complete.update(buffer, 0, numRead);
}
}while(numRead!=-1);
} while (numRead != -1);
fis.close();
return complete.digest();
}
public static String getMD5Checksum(String filename) throws NoSuchAlgorithmException, IOException{
byte[] b=createChecksum(filename);
StringBuffer result=new StringBuffer();
for(int i=0;i<b.length;i++){
result.append(Integer.toString((b[i] & 0xff)+ 0x100,16).substring(1));
public static String getMD5Checksum(String filename) throws NoSuchAlgorithmException, IOException {
byte[] b = createChecksum(filename);
StringBuffer result = new StringBuffer();
for (int i = 0; i < b.length; i++) {
result.append(Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1));
}
return result.toString();
}
public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
long start1 = System.currentTimeMillis();
String md5Checksum = getMd5ByIS(new FileInputStream("f:\\1.iso"));
System.out.println(md5Checksum);
long start2 = System.currentTimeMillis();
System.out.println("第一次用时" + (start2 - start1));
String md5Checksum1 = getMD5Checksum("f:\\1.iso");
long start3 = System.currentTimeMillis();
System.out.println(md5Checksum1);
System.out.println("第二次用时" + (start3 - start2));
}
/**
* 这种方式计算大文件时更快一些
* @param fis
* @return
* @throws IOException
* @throws NoSuchAlgorithmException
*/
public static String getMd5ByIS(InputStream is) throws IOException, NoSuchAlgorithmException {
return DigestUtils.md5Hex(is);
}
}

View File

@@ -29,6 +29,7 @@ import com.nis.restful.RestServiceException;
import com.nis.restful.ServiceRuntimeException;
import com.nis.util.Constants;
import com.nis.util.FileUtils;
import com.nis.util.MinioUtil;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseRestController;
@@ -289,16 +290,20 @@ public class ConfigSourcesController extends BaseRestController {
throw new RestServiceException("checksum与文件MD5值不一致", RestBusinessCode.CheckSumIsWrong.getValue());
}
String ext = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
FastDFSFile fdsfile = new FastDFSFile(file.getBytes(), file.getOriginalFilename(), ext);
// NameValuePair[] meta_list = new NameValuePair[5];
// meta_list[0] = new NameValuePair("fileName", file.getOriginalFilename());
// meta_list[1] = new NameValuePair("fileLength",
// String.valueOf(file.getSize()));
// meta_list[2] = new NameValuePair("fileExt", ext);
// meta_list[3] = new NameValuePair("fileAuthor", "rkg");
// meta_list[4] = new NameValuePair("fileMd5", md5);
logger.info("-----------------调用接口上传文件---------------");
filePath = FileManager.upload(fdsfile, null);
if(Constants.IS_USE_MINIO){
filePath = MinioUtil.uploadFile(file.getInputStream(), file.getOriginalFilename(), ext);
}else{
FastDFSFile fdsfile = new FastDFSFile(file.getBytes(), file.getOriginalFilename(), ext);
// NameValuePair[] meta_list = new NameValuePair[5];
// meta_list[0] = new NameValuePair("fileName", file.getOriginalFilename());
// meta_list[1] = new NameValuePair("fileLength",
// String.valueOf(file.getSize()));
// meta_list[2] = new NameValuePair("fileExt", ext);
// meta_list[3] = new NameValuePair("fileAuthor", "rkg");
// meta_list[4] = new NameValuePair("fileMd5", md5);
filePath = FileManager.upload(fdsfile, null);
}
}
}catch (IOException e) {
// TODO Auto-generated catch block
@@ -337,6 +342,7 @@ public class ConfigSourcesController extends BaseRestController {
AuditLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request,
file, null);
JSONObject resultObject = new JSONObject();
String filePath="";
try {
if (file == null) {
throw new RestServiceException("请上传获取摘要的文件到file参数", RestBusinessCode.FileIsNull.getValue());
@@ -353,9 +359,20 @@ public class ConfigSourcesController extends BaseRestController {
RestBusinessCode.CheckSumIsWrong.getValue());
}
String ext = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
FastDFSFile fdsfile = new FastDFSFile(file.getBytes(), file.getOriginalFilename(), ext);
logger.info("-----------------调用接口上传文件---------------");
String filePath = FileManager.upload(fdsfile, null);
if(Constants.IS_USE_MINIO){
filePath = MinioUtil.uploadFile(file.getInputStream(), file.getOriginalFilename(), ext);
}else{
FastDFSFile fdsfile = new FastDFSFile(file.getBytes(), file.getOriginalFilename(), ext);
// NameValuePair[] meta_list = new NameValuePair[5];
// meta_list[0] = new NameValuePair("fileName", file.getOriginalFilename());
// meta_list[1] = new NameValuePair("fileLength",
// String.valueOf(file.getSize()));
// meta_list[2] = new NameValuePair("fileExt", ext);
// meta_list[3] = new NameValuePair("fileAuthor", "rkg");
// meta_list[4] = new NameValuePair("fileMd5", md5);
filePath = FileManager.upload(fdsfile, null);
}
resultObject.put("accessUrl", filePath);
}
}catch (IOException e) {

View File

@@ -11,7 +11,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.nis.domain.restful.TrafficNmsServerStatistic;
import com.nis.domain.restful.NmsDiRuleList;
import com.nis.domain.restful.TrafficNetflowPortInfoList;
import com.nis.domain.restful.TrafficNmsServerStatisticList;
import com.nis.restful.RestBusinessCode;
import com.nis.restful.RestServiceException;
@@ -19,6 +20,8 @@ import com.nis.util.Constants;
import com.nis.web.controller.BaseRestController;
import com.nis.web.service.AuditLogThread;
import com.nis.web.service.ServicesRequestLogService;
import com.nis.web.service.restful.NmsDiRuleService;
import com.nis.web.service.restful.TrafficNetflowPortInfoService;
import com.nis.web.service.restful.TrafficNmsServerStatisticService;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
@@ -32,6 +35,10 @@ public class NmsInfoController extends BaseRestController {
protected ServicesRequestLogService servicesRequestLogService;
@Autowired
TrafficNmsServerStatisticService trafficNmsServerStatisticService;
@Autowired
NmsDiRuleService nmsDiRuleService;
@Autowired
TrafficNetflowPortInfoService trafficNetflowPortInfoService;
@RequestMapping(value = "/nms/v1/saveServerStatus", method = RequestMethod.POST)
@ApiOperation(value = "存储NMS系统上报的服务器状态接口", httpMethod = "POST", response = Map.class, notes = "接收NMS系统上报的服务器状态信息")
@@ -60,4 +67,55 @@ public class NmsInfoController extends BaseRestController {
Constants.IS_DEBUG ? trafficNmsServerStatisticList : null);
}
@RequestMapping(value = "/nms/v1/saveNmsDiRule", method = RequestMethod.POST)
@ApiOperation(value = "存储NmsDiRule接口", httpMethod = "POST", response = Map.class, notes = "接收NMS系统上报的di信息")
@ApiParam(value = "存储NmsDiRule接口", name = "saveServerStatus", required = true)
public Map<String, Object> saveNmsDiRule(@RequestBody NmsDiRuleList nmsDiRuleList, HttpServletRequest request,
HttpServletResponse response) {
long start = System.currentTimeMillis();
AuditLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request,
nmsDiRuleList);
try {
if (nmsDiRuleList != null && nmsDiRuleList.getNmsDiRuleList() != null
&& nmsDiRuleList.getNmsDiRuleList().size() > 0) {
nmsDiRuleService.saveNmsDiRuleInfo(nmsDiRuleList.getNmsDiRuleList());
} else {
throw new RestServiceException(thread, System.currentTimeMillis() - start, "参数nmsDiRuleList不能为空",
RestBusinessCode.missing_args.getValue());
}
} catch (Exception e) {
throw new RestServiceException(thread, System.currentTimeMillis() - start,
"上报NmsDiRule信息异常:" + e.getMessage(), RestBusinessCode.unknow_error.getValue());
}
return compileServiceResponse(thread, System.currentTimeMillis() - start, request, response, "上报NmsDiRule信息成功",
Constants.IS_DEBUG ? nmsDiRuleList : null);
}
@RequestMapping(value = "/nms/v1/rafficNetflowPortInfo", method = RequestMethod.POST)
@ApiOperation(value = "存储trafficNetflowPortInfo接口", httpMethod = "POST", response = Map.class, notes = "接收NMS系统上报的trafficNetflowPort信息")
@ApiParam(value = "存储trafficNetflowPortInfo接口", name = "saveTrafficNetflowPortInfo", required = true)
public Map<String, Object> saveTrafficNetflowPortInfo(
@RequestBody TrafficNetflowPortInfoList trafficNetflowPortInfoList, HttpServletRequest request,
HttpServletResponse response) {
long start = System.currentTimeMillis();
AuditLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request,
trafficNetflowPortInfoList);
try {
if (trafficNetflowPortInfoList != null && trafficNetflowPortInfoList.getTrafficNetflowPortInfoList() != null
&& trafficNetflowPortInfoList.getTrafficNetflowPortInfoList().size() > 0) {
trafficNetflowPortInfoService
.saveTrafficNetflowPortInfo(trafficNetflowPortInfoList.getTrafficNetflowPortInfoList());
} else {
throw new RestServiceException(thread, System.currentTimeMillis() - start,
"参数trafficNetflowPortInfoList不能为空", RestBusinessCode.missing_args.getValue());
}
} catch (Exception e) {
throw new RestServiceException(thread, System.currentTimeMillis() - start,
"上报trafficNetflowPort信息异常:" + e.getMessage(), RestBusinessCode.unknow_error.getValue());
}
return compileServiceResponse(thread, System.currentTimeMillis() - start, request, response,
"上报trafficNetflowPort信息成功", Constants.IS_DEBUG ? trafficNetflowPortInfoList : null);
}
}

View File

@@ -0,0 +1,7 @@
package com.nis.web.dao;
import com.nis.domain.restful.NmsDiRule;
@MyBatisDao
public interface NmsDiRuleDao extends CrudDao<NmsDiRule> {
}

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.nis.web.dao.NmsDiRuleDao">
<insert id="insert" parameterType="nmsDiRule">
INSERT INTO
nms_di_rule(detection_info_id ,
serviceindex ,
servicecode ,
servicedesc,
agedtime ,
clientnum ,
refluxport ,
rulenumber ,
usedrulenum ,
leftrulenum ,
hittotalnum ,
detectioned_state ,
seq_id ,
detection_set_info_id ,
data_check_time ,
data_arrive_time ,
data_check_time_digital ,
data_arrive_time_digital
) VALUES (
#{detectionInfoId},
#{serviceIndex},
#{serviceCode},
#{serviceDesc},
#{agedTime},
#{clientNum},
#{refluxPort},
#{ruleNumber},
#{usedRuleNum},
#{leftRuleNum},
#{hitTotalNum},
#{detectionedState},
#{seqId},
#{detectionSetInfoId},
#{dataCheckTime},
#{dataArriveTime},
#{dataCheckTimeDigital},
#{dataArriveTimeDigital})
</insert>
</mapper>

View File

@@ -0,0 +1,7 @@
package com.nis.web.dao;
import com.nis.domain.restful.TrafficNetflowPortInfo;
@MyBatisDao
public interface TrafficNetflowPortInfoDao extends CrudDao<TrafficNetflowPortInfo> {
}

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.nis.web.dao.TrafficNetflowPortInfoDao">
<insert id="insert" parameterType="trafficNetflowPortInfo">
INSERT INTO
traffic_netflow_port_info(PORT ,
NODE_NAME ,
NODE_IP ,
PORT_DESC,
BANDWIDTH ,
INOCTETS ,
OUTOCTETS ,
INOCTETS_SPEED ,
OUTOCTETS_SPEED ,
INPKTS_SPEED ,
OUTPKTS_SPEED ,
RECV_TIME
) VALUES (
#{port},
#{nodeName},
#{nodeIp},
#{portDesc},
#{bandwidth},
#{inoctets},
#{outoctets},
#{inoctetsSpeed},
#{outoctetsSpeed},
#{inpktsSpeed},
#{outpktsSpeed},
#{recvTime})
</insert>
</mapper>

View File

@@ -21,6 +21,7 @@ import com.nis.domain.restful.MaatConfig;
import com.nis.restful.RestBusinessCode;
import com.nis.restful.ServiceRuntimeException;
import com.nis.util.Configurations;
import com.nis.util.File2Redis;
import com.nis.util.JedisUtils;
import com.nis.util.ReadMaatXmlUtil;
import com.nis.util.ServiceAndRDBIndexReal;
@@ -89,10 +90,38 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
}
StringBuffer valBF = new StringBuffer();
String[] valSplit = maatXmlExpr.getValueExpression().split(";");
// List<String> urlList = new ArrayList<String>();
for (String valStr : valSplit) {
if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) {
valStr = valStr.trim().replace("[", "").replace("]", "");
valBF.append(map.get(valStr));
// if (service == 520) {
// if (valStr.equals("private_key_file")
// || valStr.equals("public_key_file")) {
// String fileUrl = map.get(valStr);
// urlList.add(fileUrl);
// }
// }
// if(valStr.equals("op_time")) {
// if (urlList.size() > 0) {
// for (String fileUrl : urlList) {
// String key = File2Redis.file2Redis(fileUrl, transaction);
// logger.info("向{}号redis数据库添加了一条文件配置,key是{}",redisDBIndex,key);
// valBF.append(key);
// valBF.append("\t");
// }
// }
// }
if (valStr.contains("redisFile_")) {
String key = File2Redis.file2Redis(map.get(valStr),
transaction);
logger.info("向{}号redis数据库添加了一条文件配置,key是{}", redisDBIndex,
key);
valBF.append(key);
// valBF.append("\t");
} else {
valBF.append(map.get(valStr));
}
} else if (valStr.equals("&nbsp")) {
valBF.append(" ");
} else if (valStr.equals("\\t")) {// xml中是字符串的\t这里判断的时候需要转义为\\t,但是添加的时候需要添加\t不是\\t
@@ -161,7 +190,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
}
/**
* 下发配置时,需要记录编译,组,域等配置id的对应关系,以便于在取消配置时可以根据配置id查找对应的编译,分组,域的关系
* 下发配置时,需要记录编译,组,域等配置id的对应关系,以便于在取消配置时可以根据配置id查找对应的编译,分组,域的关系
*/
private void addMaatRelation(Map<Integer, List<MaatConfig>> configMap, Transaction transaction) {
if (configMap != null && configMap.size() > 0) {
@@ -260,6 +289,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
* 单独找一个redis-db记录配置信息,方便实时统计程序获取所有配置的分类性质,标签等内容,(为什么实时统计不从配置库redisdb获取呢,
* 因为配置有多分发的情况,会发送到不同的redisdb,每个redisdb的配置条数不一定相同,有的配置所有的redisdb都有,有的只在某一个redisdb中有,实时统计程序不好获取配置这些配置内容,
* 最重要的是,前端机不需要这些属性,所以在配置库有可能不带分类性质,标签等属性,maat.xml如果配置了则有,没有配置则就没有这些属性.所以单独找一个reidsdb存放带分类性质,标签等属性的配置)
*
* @param configMap
*/
private void addStatisticsReal(Map<Integer, List<MaatConfig>> configMap, Transaction transaction) {
@@ -270,7 +300,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
&& redisStatisticsRealDBIndex < Configurations.getIntProperty("maxRedisDBIndex", 16)) {
List<MaatConfig> list = configMap.get(redisDBIndex);
if (list != null && list.size() > 0) {
transaction.select(redisStatisticsRealDBIndex);//选择实时统计库
transaction.select(redisStatisticsRealDBIndex);// 选择实时统计库
String redisStatisticsReal = Configurations.getStringProperty("redis-statisticsReal",
"[COMPILE_ID];\t;[SERVICE];\t;[ACTION];\t;[CONT_TYPE];\t;[ATTR_TYPE];\t;[CONT_LABEL];\t;[TASK_ID];\t;[AFFAIR_ID];\t;[DO_BLACKLIST];\t;[DO_LOG];\t;[EFFECTIVE_RANGE];\t;[START_TIME];\t;[END_TIME];\t;[USER_REGION];\t;[IS_VALID];\t;[GROUP_NUM];\t;[FATHER_CFG_ID];\t;[OP_TIME]");
String[] redisStatisticsRealArr = redisStatisticsReal.split(";");
@@ -379,6 +409,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 封装组id与域id对应关系并添加到对象中
*
* @param regionMapList
* @param compileAndGroupRelations
*/
@@ -461,11 +492,13 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
int service = maatConfig.getService();
if (ServiceAndRDBIndexReal.isAddASU(service)) {
if (!keySet.contains(TAPREDISDB)) {
throw new ServiceRuntimeException("业务类型:" + service + ",需要向阀门" + TAPREDISDB + "号库分发,但是当前只往"
+ keySet + "库下发,请检查阀门编号或者当前业务对应的配置文件是否正确",RestBusinessCode.PropertiesIsError.getValue());
throw new ServiceRuntimeException(
"业务类型:" + service + ",需要向阀门" + TAPREDISDB + "号库分发,但是当前只往" + keySet
+ "库下发,请检查阀门编号或者当前业务对应的配置文件是否正确",
RestBusinessCode.PropertiesIsError.getValue());
}
}
MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service);
setConfig(maatConfig, maatXmlConfig, maatVersion, service, transaction,
redisDBIndex);
@@ -515,6 +548,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 将编译,分组,域等配置拆开分别添加到redis中
*
* @param maatConfig
* @param maatXmlConfig
* @param maatVersion
@@ -558,6 +592,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 将整理好的数据添加到redis中,如果是分组复用时,则去临时库将对应的域找到复制过来,如果当前库存在则不复制了(在复制就重复了)
*
* @param maatXmlConfig
* @param map
* @param type
@@ -566,7 +601,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
* @param redisTemplate
* @param redisDBIndex
* @param compileId
* @param isReuse 是否是分组复用
* @param isReuse
* 是否是分组复用
*/
private void setCommonConfig(MaatXmlConfig maatXmlConfig, Map<String, String> map, int type, Double maatVersion,
int service, Transaction transaction, Integer redisDBIndex, String compileId, boolean isReuse) {
@@ -695,7 +731,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
}
}
}
} else if (isReuse && (type == 12 || type == 13 || type == 14|| type == 15|| type == 18)) {// 将数据往临时库复制一份,无论临时库里有没有都可以直接写,有则覆盖,不影响
} else if (isReuse && (type == 12 || type == 13 || type == 14 || type == 15 || type == 18)) {// 将数据往临时库复制一份,无论临时库里有没有都可以直接写,有则覆盖,不影响
int tmpStorageReuseRegionDB = Configurations.getIntProperty("tmpStorageReuseRegionDB", 15);
transaction.select(tmpStorageReuseRegionDB);
transaction.set(maatKey.toUpperCase(), valBF.toString());
@@ -750,8 +786,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
for (Integer service : serviceConfigMap.keySet()) {
List<Long> compileIdList = serviceConfigMap.get(service);
if (compileIdList != null && compileIdList.size() > 0) {
MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service);
for (Long id : compileIdList) {
MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service);
if (maatXmlConfig != null) {
List<MaatXmlExpr> expressionList = maatXmlConfig.getExpressionList();
String maatKey = null;
@@ -1009,6 +1045,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 获取关联关系中每个关系中的-前部分
*
* @param compileStrVal
* @return
*/
@@ -1022,12 +1059,18 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 删除maat类配置
* @param id 配置id
* @param maatXmlConfig maat.xml中关于当前业务类型的key和value写法的对象
* @param maatVersion 版本号
* @param service 业务类型
* @param redisTemplate
* @param maatRelation id对应关系对象
*
* @param id
* 配置id
* @param maatXmlConfig
* maat.xml中关于当前业务类型的key和value写法的对象
* @param maatVersion
* 版本号
* @param service
* 业务类型
* @param redisTemplate
* @param maatRelation
* id对应关系对象
*/
private void removeConfig(Long id, MaatXmlConfig maatXmlConfig, Double maatVersion, int service,
Transaction transaction, int redisDBIndex, int idRelaRedisDBIndex) {
@@ -1104,6 +1147,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 删除maat配置时,对redis进行相关操作,主要是重命名key和记录相关状态
*
* @param maatXmlConfig
* @param idList
* @param type
@@ -1171,6 +1215,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 删除域配置,重名key,记录相关信息MAAT_UPDATE_STATUS,MAAT_RULE_TIMER等
*
* @param maatXmlConfig
* @param regionArr
* @param maatVersion
@@ -1207,8 +1252,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
}
/**
* 编译配置用于实时统计
* 取消分类性质,标签等信息
* 编译配置用于实时统计 取消分类性质,标签等信息
*/
private boolean removeStatisticsReal(Map<Integer, List<Long>> map, Transaction transaction) {
if (map != null && map.size() > 0) {
@@ -1271,6 +1315,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 删除配置成功后,需要更新编译,组,域等配置id的对应关系
*
* @param idMap
*/
private boolean removeMaatRelation(Map<Integer, List<Long>> map, Transaction transaction) {
@@ -1563,7 +1608,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
}
/**
* 添加分组和域的关联关系
* 添加分组和域的关联关系
*
* @param maatConfig
* @param transaction
* @param redisDBIndex
@@ -1607,13 +1653,21 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 保存域配置信息,供分组复用单独添加域和普通maat配置添加域
* @param maatConfig 配置信息
* @param maatXmlConfig 配置的表达式
* @param maatVersion 版本号
* @param service 业务类型
* @param transaction redis连接
* @param redisDBIndex redis编号
* @param isReuseSaveRegion 是否是分组复用单独添加域配置
*
* @param maatConfig
* 配置信息
* @param maatXmlConfig
* 配置的表达式
* @param maatVersion
* 版本号
* @param service
* 业务类型
* @param transaction
* redis连接
* @param redisDBIndex
* redis编号
* @param isReuseSaveRegion
* 是否是分组复用单独添加域配置
*/
private Integer addRegion(MaatConfig maatConfig, MaatXmlConfig maatXmlConfig, Double maatVersion, int service,
Transaction transaction, Integer redisDBIndex, boolean isReuseSaveRegion) {
@@ -1687,6 +1741,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 从临时库删除分组复用域配置,如果该域被引用了,则去对应的redisdb中删除,并将关联库中记录的信息删除
*
* @param groupId
* @param regionList
* @param transaction
@@ -1816,6 +1871,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService {
/**
* 添加和删除时更新MAAT_*状态信息
*
* @param list
* @param maatKey
* @param transaction

View File

@@ -482,7 +482,7 @@ public class ConfigSourcesService extends BaseService {
maatTableName.substring(maatTableName.lastIndexOf("_") + 1));
dstStr = dstPath.replace("{fileName}", dstStr.substring(dstStr.lastIndexOf("/") + 1));
} else if ("file_id".equals(commonSourceFieldCfg.getDstName())) {
dstStr = dstStr.substring(dstStr.indexOf("group"));
//dstStr = dstStr.substring(dstStr.indexOf("group"));
}
}
switch (commonSourceFieldCfg.getFieldType()) {

View File

@@ -0,0 +1,23 @@
package com.nis.web.service.restful;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.restful.NmsDiRule;
import com.nis.web.dao.NmsDiRuleDao;
@Service
public class NmsDiRuleService {
@Autowired
NmsDiRuleDao nmsDiRuleDao;
@Transactional
public void saveNmsDiRuleInfo(List<NmsDiRule> nmsDiRuleList) {
for (NmsDiRule nmsDiRule : nmsDiRuleList) {
nmsDiRuleDao.insert(nmsDiRule);
}
}
}

View File

@@ -0,0 +1,23 @@
package com.nis.web.service.restful;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.restful.TrafficNetflowPortInfo;
import com.nis.web.dao.TrafficNetflowPortInfoDao;
@Service
public class TrafficNetflowPortInfoService {
@Autowired
TrafficNetflowPortInfoDao trafficNetflowPortInfoDao;
@Transactional
public void saveTrafficNetflowPortInfo(List<TrafficNetflowPortInfo> trafficNetflowPortInfoList) {
for (TrafficNetflowPortInfo trafficNetflowPortInfo : trafficNetflowPortInfoList) {
trafficNetflowPortInfoDao.insert(trafficNetflowPortInfo);
}
}
}

View File

@@ -21,6 +21,5 @@ public class TrafficNmsServerStatisticService {
trafficNmsServerStatisticDao.insertAbnormalMachine(trafficNmsServerStatistic.getId(),
trafficNmsServerStatistic.getAbnormalMachineList());
}
Integer.parseInt(null);
}
}