From 99d3b87e1a037f949430d97e37a96b46136adcba Mon Sep 17 00:00:00 2001 From: renkaige Date: Thu, 10 Jan 2019 11:21:29 +0600 Subject: [PATCH] =?UTF-8?q?1:=E4=BF=AE=E6=94=B9=E7=BA=BF=E4=B8=8A=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6applicationContext-redis.xml.astana?= =?UTF-8?q?=E4=B8=AD=E5=93=A8=E5=85=B5=E7=9A=84=E5=90=8D=E7=A7=B0masterNam?= =?UTF-8?q?e,=E5=8F=8Ajdbc=E4=B8=ADmysql=E7=9A=84=E5=9C=B0=E5=9D=80=202:?= =?UTF-8?q?=E4=BF=AE=E6=94=B9ip=E8=8C=83=E5=9B=B4=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=9A=84sql,=E5=8F=8A=E8=A7=A3=E5=86=B3ip=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E4=BD=BF=E7=94=A8linkedlist=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E5=BE=88=E6=85=A2=E7=9A=84=E5=8E=9F=E5=9B=A0=203:?= =?UTF-8?q?=E6=96=B0=E5=A2=9Easn=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3(ntcAs?= =?UTF-8?q?nRecord)=E4=BB=8Emysql=E6=9F=A5=E8=AF=A2,=E8=80=81=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3(=E4=BB=8Eclickhouse=E4=B8=AD=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2)=E6=94=B9=E4=B8=BAntcAsnRecordold?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrafficAsnStatistic.java} | 28 ++++- .../restful/DashboardServiceController.java | 100 ++++++++++++++++++ .../restful/NtcLogSearchController.java | 6 +- .../dao/dashboard/TrafficAsnStatisticDao.java | 13 +++ .../dao/dashboard/TrafficAsnStatisticDao.xml | 34 ++++++ .../nis/web/dao/impl/LocalLogJDBCByDruid.java | 13 ++- .../com/nis/web/service/LogDataService.java | 4 +- .../web/service/restful/DashboardService.java | 9 ++ .../java/com/nis/web/task/GetIpRangeTask.java | 5 +- .../applicationContext-redis.xml.astana | 2 +- src/main/resources/jdbc.properties.astana | 4 +- 11 files changed, 198 insertions(+), 20 deletions(-) rename src/main/java/com/nis/domain/restful/{NtcAsnRecord.java => dashboard/TrafficAsnStatistic.java} (73%) create mode 100644 src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.java create mode 100644 src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.xml diff --git a/src/main/java/com/nis/domain/restful/NtcAsnRecord.java b/src/main/java/com/nis/domain/restful/dashboard/TrafficAsnStatistic.java similarity index 73% rename from src/main/java/com/nis/domain/restful/NtcAsnRecord.java rename to src/main/java/com/nis/domain/restful/dashboard/TrafficAsnStatistic.java index 7f8b1ed..4d13fe2 100644 --- a/src/main/java/com/nis/domain/restful/NtcAsnRecord.java +++ b/src/main/java/com/nis/domain/restful/dashboard/TrafficAsnStatistic.java @@ -1,8 +1,13 @@ -package com.nis.domain.restful; +package com.nis.domain.restful.dashboard; import java.io.Serializable; +import javax.xml.bind.annotation.XmlTransient; + +import org.apache.poi.ss.formula.functions.T; + import com.fasterxml.jackson.annotation.JsonIgnore; +import com.nis.domain.Page; /** * @@ -12,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; * @date 2018年12月12日 下午2:00:16 * @version V1.0 */ -public class NtcAsnRecord implements Serializable { +public class TrafficAsnStatistic implements Serializable { /** * @@ -29,6 +34,10 @@ public class NtcAsnRecord implements Serializable { private String searchAsnType;// 1是d_asn,2是s_asn + + protected Page page; + + public String getBps() { return bps; } @@ -88,4 +97,19 @@ public class NtcAsnRecord implements Serializable { public void setSearchFoundEndTime(String searchFoundEndTime) { this.searchFoundEndTime = searchFoundEndTime; } + + @JsonIgnore + @XmlTransient + public Page getPage() { + if (page == null) { + page = new Page(); + } + return page; + } + + public Page setPage(Page page) { + this.page = page; + return page; + } + } diff --git a/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java b/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java index 59a9432..b1b5179 100644 --- a/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java +++ b/src/main/java/com/nis/web/controller/restful/DashboardServiceController.java @@ -21,11 +21,13 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.nis.datasource.CustomerContextHolder; +import com.nis.domain.Page; import com.nis.domain.restful.NtcConnNumReport; import com.nis.domain.restful.NtcRadiusReport; import com.nis.domain.restful.dashboard.AppConnRecordStatistic; import com.nis.domain.restful.dashboard.AppTrendEntity; import com.nis.domain.restful.dashboard.TrafficAppFocusStatistic; +import com.nis.domain.restful.dashboard.TrafficAsnStatistic; import com.nis.restful.RestBusinessCode; import com.nis.restful.RestServiceException; import com.nis.restful.ServiceRuntimeException; @@ -1088,6 +1090,104 @@ public class DashboardServiceController extends BaseRestController { return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "App通联关系Top100数据检索成功", list, 0); } + + + + + + + + + + @RequestMapping(value = "/ntcAsnRecord", method = RequestMethod.GET) + @ApiOperation(value = "ASN通联关系(源,目的)查询", httpMethod = "GET", notes = "对日志功能“ASN通联关系(源,目的)查询”提供数据基础查询服务") + public Map ntcAsnRecord(Page page, TrafficAsnStatistic ntcAsnRecord, Model model, HttpServletRequest request, + HttpServletResponse response) { + long start = System.currentTimeMillis(); + AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, + null); + try { + if (StringUtil.isEmpty(ntcAsnRecord.getSearchFoundStartTime()) + && StringUtil.isEmpty(ntcAsnRecord.getSearchFoundEndTime())) { + Map map = DateUtils.getLocalTime(null, null, Constants.LOG_LOCAL_TIME, "minute"); + ntcAsnRecord.setSearchFoundStartTime(map.get("startTime")); + ntcAsnRecord.setSearchFoundEndTime(map.get("endTime")); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + try { + if (!StringUtil.isBlank(ntcAsnRecord.getSearchFoundEndTime())) { + sdf.setLenient(false); + sdf.parse(ntcAsnRecord.getSearchFoundEndTime()); + } + + } catch (ParseException e) { + throw new RestServiceException("searchFoundEndTime参数格式错误", + RestBusinessCode.param_formate_error.getValue()); + } catch (Exception e) { + throw new RestServiceException("searchFoundEndTime参数错误", + RestBusinessCode.param_formate_error.getValue()); + } + + try { + if (!StringUtil.isBlank(ntcAsnRecord.getSearchFoundStartTime())) { + sdf.setLenient(false); + sdf.parse(ntcAsnRecord.getSearchFoundStartTime()); + } + + } catch (ParseException e) { + throw new RestServiceException("searchFoundStartTime参数格式错误", + RestBusinessCode.param_formate_error.getValue()); + } catch (Exception e) { + throw new RestServiceException("searchFoundStartTime参数错误", + RestBusinessCode.param_formate_error.getValue()); + } + try { + if (!StringUtil.isBlank(ntcAsnRecord.getSearchAsnType())) { + Integer.parseInt(ntcAsnRecord.getSearchAsnType()); + } else { + throw new RestServiceException("searchAsnType参数不能为空", + RestBusinessCode.param_formate_error.getValue()); + } + } catch (NumberFormatException e) { + throw new RestServiceException("searchAsnType参数格式错误" + e.getMessage(), + RestBusinessCode.param_formate_error.getValue()); + } catch (Exception e) { + throw new RestServiceException("searchAsnType参数错误" + e.getMessage(), + RestBusinessCode.param_formate_error.getValue()); + } + + dashboardService.getTrafficAsnStatisticList(page, ntcAsnRecord); + } catch (Exception e) { + auditLogThread.setExceptionInfo("ASN通联关系(源,目的)日志检索失败:" + e.getMessage()); + logger.error("ASN通联关系(源,目的)检索失败:" + ExceptionUtil.getExceptionMsg(e)); + if (e instanceof RestServiceException) { + throw new RestServiceException(auditLogThread, System.currentTimeMillis() - start, + "ASN通联关系(源,目的)检索失败:" + e.getMessage(), ((RestServiceException) e).getErrorCode()); + } else if (e instanceof ServiceRuntimeException) { + throw new ServiceRuntimeException(auditLogThread, System.currentTimeMillis() - start, + "ASN通联关系(源,目的)检索失败:" + e.getMessage(), ((ServiceRuntimeException) e).getErrorCode()); + } else { + throw new ServiceRuntimeException(auditLogThread, System.currentTimeMillis() - start, + "ASN通联关系(源,目的)检索失败:" + e.getMessage(), RestBusinessCode.service_runtime_error.getValue()); + } + } + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "ASN通联关系(源,目的)检索成功", + page, 0); + } + + + + + + + + + + + + + /** */ public void checkAppTrendCondition(AppTrendEntity entity) { diff --git a/src/main/java/com/nis/web/controller/restful/NtcLogSearchController.java b/src/main/java/com/nis/web/controller/restful/NtcLogSearchController.java index de71421..9ac09b3 100644 --- a/src/main/java/com/nis/web/controller/restful/NtcLogSearchController.java +++ b/src/main/java/com/nis/web/controller/restful/NtcLogSearchController.java @@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.RestController; import com.nis.domain.Page; import com.nis.domain.restful.NtcAppLog; -import com.nis.domain.restful.NtcAsnRecord; import com.nis.domain.restful.NtcBgpLog; import com.nis.domain.restful.NtcCollectRadiusLog; import com.nis.domain.restful.NtcCollectVoipLog; @@ -37,6 +36,7 @@ import com.nis.domain.restful.NtcSshLog; import com.nis.domain.restful.NtcSslLog; import com.nis.domain.restful.NtcStreamingMediaLog; import com.nis.domain.restful.NtcVoipLog; +import com.nis.domain.restful.dashboard.TrafficAsnStatistic; import com.nis.restful.RestBusinessCode; import com.nis.restful.RestServiceException; import com.nis.restful.ServiceRuntimeException; @@ -788,9 +788,9 @@ public class NtcLogSearchController extends BaseRestController { ntcConnRecordPercent, 0); } - @RequestMapping(value = "/ntcAsnRecord", method = RequestMethod.GET) + @RequestMapping(value = "/ntcAsnRecordold", method = RequestMethod.GET) @ApiOperation(value = "ASN通联关系(源,目的)查询", httpMethod = "GET", notes = "对日志功能“ASN通联关系(源,目的)查询”提供数据基础查询服务") - public Map ntcAsnRecord(Page page, NtcAsnRecord ntcAsnRecord, Model model, HttpServletRequest request, + public Map ntcAsnRecord(Page page, TrafficAsnStatistic ntcAsnRecord, Model model, HttpServletRequest request, HttpServletResponse response) { long start = System.currentTimeMillis(); AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.java b/src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.java new file mode 100644 index 0000000..0fd09d5 --- /dev/null +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.java @@ -0,0 +1,13 @@ +package com.nis.web.dao.dashboard; + +import java.util.List; + +import com.nis.domain.restful.dashboard.TrafficAsnStatistic; +import com.nis.web.dao.MyBatisDao; + +@MyBatisDao +public interface TrafficAsnStatisticDao { + + List getTrafficAsnStatisticList(TrafficAsnStatistic trafficAsnStatistic); + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.xml new file mode 100644 index 0000000..fae5037 --- /dev/null +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficAsnStatisticDao.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/impl/LocalLogJDBCByDruid.java b/src/main/java/com/nis/web/dao/impl/LocalLogJDBCByDruid.java index 8f28e2d..a3b011d 100644 --- a/src/main/java/com/nis/web/dao/impl/LocalLogJDBCByDruid.java +++ b/src/main/java/com/nis/web/dao/impl/LocalLogJDBCByDruid.java @@ -26,10 +26,9 @@ import org.springframework.stereotype.Repository; import com.alibaba.druid.pool.DruidDataSource; import com.nis.domain.Page; -import com.nis.domain.restful.NtcAsnRecord; import com.nis.domain.restful.NtcConnRecordPercent; +import com.nis.domain.restful.dashboard.TrafficAsnStatistic; import com.nis.web.service.SpringContextHolder; -import com.zdjizhi.utils.CommonUtil; import com.zdjizhi.utils.StringUtil; /** @@ -181,8 +180,8 @@ public class LocalLogJDBCByDruid { * @return * @throws Exception */ - public List getNtcAsnRecordData(String sql) throws Exception { - List list = new LinkedList<>(); + public List getNtcAsnRecordData(String sql) throws Exception { + List list = new LinkedList<>(); try { conn = getConnection(); logger.info("连接数据中心日志库成功--------------------------"); @@ -191,7 +190,7 @@ public class LocalLogJDBCByDruid { rs = st.executeQuery(sql); num.setMinimumFractionDigits(2);// 保留两位小数 while (rs.next()) { - NtcAsnRecord ntcAsnRecord = new NtcAsnRecord(); + TrafficAsnStatistic ntcAsnRecord = new TrafficAsnStatistic(); String bps = rs.getString("bps"); String pps = rs.getString("pps"); String ppsNum =pps; @@ -212,10 +211,10 @@ public class LocalLogJDBCByDruid { } public List getAllIp(Integer frontier) throws Exception { - List list = new LinkedList<>(); + List list = new ArrayList<>(); try { // String sql = "select distinct ip from ip_location_database_local where ip like '145%' and frontier='"+frontier+"'"; - String sql = "select distinct ip from ip_location_database_local where frontier='"+frontier+"'"; + String sql = "select distinct ip from (select ip,frontier from ip_location_database ) where frontier='"+frontier+"'"; conn = getConnection(); logger.info("连接数据中心日志库成功--------------------------"); st = conn.createStatement(); diff --git a/src/main/java/com/nis/web/service/LogDataService.java b/src/main/java/com/nis/web/service/LogDataService.java index 30cbbca..b37b4cb 100644 --- a/src/main/java/com/nis/web/service/LogDataService.java +++ b/src/main/java/com/nis/web/service/LogDataService.java @@ -18,8 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.nis.domain.Page; -import com.nis.domain.restful.NtcAsnRecord; import com.nis.domain.restful.NtcConnRecordPercent; +import com.nis.domain.restful.dashboard.TrafficAsnStatistic; import com.nis.restful.RestBusinessCode; import com.nis.restful.RestServiceException; import com.nis.util.Configurations; @@ -90,7 +90,7 @@ public class LogDataService { return ntcConnRecordPercent; } - public void getNtcAsnRecord(Page page, NtcAsnRecord ntcAsnRecord) throws Exception { + public void getNtcAsnRecord(Page page, TrafficAsnStatistic ntcAsnRecord) throws Exception { long startTime = sdf.parse(ntcAsnRecord.getSearchFoundStartTime().toString().trim()).getTime() / 1000; long endTime = sdf.parse(ntcAsnRecord.getSearchFoundEndTime().toString().trim()).getTime() / 1000; if (endTime - startTime < 0) { diff --git a/src/main/java/com/nis/web/service/restful/DashboardService.java b/src/main/java/com/nis/web/service/restful/DashboardService.java index 59a9776..7a636ab 100644 --- a/src/main/java/com/nis/web/service/restful/DashboardService.java +++ b/src/main/java/com/nis/web/service/restful/DashboardService.java @@ -22,12 +22,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.beust.jcommander.internal.Maps; +import com.nis.domain.Page; import com.nis.domain.restful.NtcConnNumReport; import com.nis.domain.restful.NtcEntranceReport; import com.nis.domain.restful.dashboard.AppConnRecordStatistic; import com.nis.domain.restful.dashboard.NtcTotalReport; import com.nis.domain.restful.dashboard.TrafficAppFocusStatistic; import com.nis.domain.restful.dashboard.TrafficAppStatistic; +import com.nis.domain.restful.dashboard.TrafficAsnStatistic; import com.nis.domain.restful.dashboard.TrafficHttpFocusStatistic; import com.nis.domain.restful.dashboard.TrafficIpActiveStatistic; import com.nis.domain.restful.dashboard.TrafficPortActiveStatistic; @@ -41,6 +43,7 @@ import com.nis.util.DateUtils; import com.nis.util.StringUtils; import com.nis.web.dao.dashboard.NtcTotalReportDao; import com.nis.web.dao.dashboard.TrafficAppStatisticDao; +import com.nis.web.dao.dashboard.TrafficAsnStatisticDao; import com.nis.web.dao.dashboard.TrafficHttpStatisticDao; import com.nis.web.dao.dashboard.TrafficIpActiveStatisticDao; import com.nis.web.dao.dashboard.TrafficPortActiveStatisticDao; @@ -65,6 +68,8 @@ public class DashboardService extends BaseService { @Autowired public NtcTotalReportDao ntcTotalReportDao; @Autowired + public TrafficAsnStatisticDao trafficAsnStatisticDao; + @Autowired public TrafficPortActiveStatisticDao trafficPortActiveStatisticDao; //ip地址类型 private final String[] addrTypes = {"4","6"} ; @@ -1715,4 +1720,8 @@ public class DashboardService extends BaseService { } return list; } + public void getTrafficAsnStatisticList(Page page, TrafficAsnStatistic ntcAsnRecord){ + ntcAsnRecord.setPage(page); + page.setList(trafficAsnStatisticDao.getTrafficAsnStatisticList(ntcAsnRecord)); + } } diff --git a/src/main/java/com/nis/web/task/GetIpRangeTask.java b/src/main/java/com/nis/web/task/GetIpRangeTask.java index e38c4a1..7783de9 100644 --- a/src/main/java/com/nis/web/task/GetIpRangeTask.java +++ b/src/main/java/com/nis/web/task/GetIpRangeTask.java @@ -3,7 +3,7 @@ package com.nis.web.task; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -65,7 +65,7 @@ public class GetIpRangeTask { */ public Map getNumAndIpReal(List allIp) throws InterruptedException, ExecutionException { logger.info("开始将ip转换为数字"); - Map map = new LinkedHashMap<>(); + Map map = new HashMap<>(); int ever = 10000;// 每个线程处理10000条ip转数字 int count = allIp.size() / ever; if (allIp.size() % ever != 0) { @@ -231,7 +231,6 @@ public class GetIpRangeTask { } else { logger.info("获取境外ip成功,共{}条", allIp.size()); } - logger.info("获取境外ip成功,共{}条", allIp.size()); Map map = getNumAndIpReal(allIp); Set keySet = map.keySet(); long[] array = new long[keySet.size()]; diff --git a/src/main/resources/applicationContext-redis.xml.astana b/src/main/resources/applicationContext-redis.xml.astana index a6a25ed..ca1d6b2 100644 --- a/src/main/resources/applicationContext-redis.xml.astana +++ b/src/main/resources/applicationContext-redis.xml.astana @@ -26,7 +26,7 @@ - + ${redis.hostAndPort1} diff --git a/src/main/resources/jdbc.properties.astana b/src/main/resources/jdbc.properties.astana index 6480bcb..9449877 100644 --- a/src/main/resources/jdbc.properties.astana +++ b/src/main/resources/jdbc.properties.astana @@ -1,8 +1,8 @@ #==========日志库 Mysql======================= jdbc.log.driver=com.mysql.jdbc.Driver #阿斯坦纳 -jdbc.log.url=jdbc:mysql://10.0.4.22:8066/galaxy-service?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull -jdbc.log.username=mycat +jdbc.log.url=jdbc:mysql://10.0.4.222:3306/galaxy-service?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull +jdbc.log.username=galaxy #实际密码ceiec2018! jdbc.log.key=73FU0t+Z8+PUxD/PArzvkQ== jdbc.log.password=lKZSz7h4AIhgKJb2l2GBMw==