summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorduandongmei <[email protected]>2019-08-14 15:49:44 +0800
committerduandongmei <[email protected]>2019-08-14 15:49:44 +0800
commit9390563b216f7f6e0e99eee9afcca08446d6411e (patch)
treed61817d7de3e677e17fac5d3c7d6c668f156c4c8
parentcbd80545b82bd235d09d811e1d6241b723900638 (diff)
带宽统计接口V1底层恢复旧的数据格式转换develop
-rw-r--r--src/main/java/com/nis/web/service/restful/DashboardService.java2
-rw-r--r--src/main/java/com/nis/web/service/restful/TrafficReportService.java137
2 files changed, 138 insertions, 1 deletions
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 e35c87c..fd9ce41 100644
--- a/src/main/java/com/nis/web/service/restful/DashboardService.java
+++ b/src/main/java/com/nis/web/service/restful/DashboardService.java
@@ -1326,7 +1326,7 @@ public class DashboardService extends BaseService {
} else if (searchQuotaType.toLowerCase().equals("linknumber")) {
trafficTransStatisticCK.setSearchQuotaType(3);
}
- return trafficReportService.getBandwidthTransByQuoTaType(trafficTransStatisticCK);
+ return trafficReportService.getBandwidthTransByQuoTaTypeV1(trafficTransStatisticCK);
}
public Map<String, Map> getBandwidthTransEntrance(String beginDate, String endDate, String searchQuotaType,
diff --git a/src/main/java/com/nis/web/service/restful/TrafficReportService.java b/src/main/java/com/nis/web/service/restful/TrafficReportService.java
index fee55c5..cbfe17f 100644
--- a/src/main/java/com/nis/web/service/restful/TrafficReportService.java
+++ b/src/main/java/com/nis/web/service/restful/TrafficReportService.java
@@ -78,7 +78,54 @@ public class TrafficReportService extends BaseLogService {
return page;
}
+ /**
+ * 查询bps/pps/linnum在ip46,tcp,udp的统计数据
+ *
+ * @param beginDate
+ * @param endDate
+ * @param searchQuotaType bps,pps,linknum
+ * @param searchDirection
+ * @return
+ */
+ public Map<?, ?> getBandwidthTransByQuoTaTypeV1(TrafficTransStatisticCK trafficTransStatisticCK) {
+ List<TrafficTransStatisticCK> list = null;
+ List<Long> timeList = null;
+ if (1 == trafficTransStatisticCK.getSearchBusinessType() && (DateUtil
+ .convertStringToDate(trafficTransStatisticCK.getEndDate(), TimeConstants.YYYY_MM_DD_HH24_MM_SS)
+ .getTime())
+ - (DateUtil.convertStringToDate(trafficTransStatisticCK.getBeginDate(),
+ TimeConstants.YYYY_MM_DD_HH24_MM_SS).getTime()) > (7 * 24 * 60 * 60 * 1000L)) {
+
+ trafficTransStatisticCK.setSearchBusinessType(2);
+ }
+ Integer searchBusinessType = trafficTransStatisticCK.getSearchBusinessType();
+ if (searchBusinessType == 1) {
+ timeList = DateUtils.getTimeInterval(trafficTransStatisticCK.getBeginDate(),
+ trafficTransStatisticCK.getEndDate(), 0);
+ } else if (searchBusinessType == 2) {
+ timeList = DateUtils.getTimeInterval(trafficTransStatisticCK.getBeginDate(),
+ trafficTransStatisticCK.getEndDate(), 1);
+ } else if (searchBusinessType == 3) {
+ timeList = DateUtils.getTimeInterval(trafficTransStatisticCK.getBeginDate(),
+ trafficTransStatisticCK.getEndDate(), 2);
+ } else if (searchBusinessType == 4) {
+ timeList = DateUtils.getTimeInterval(trafficTransStatisticCK.getBeginDate(),
+ trafficTransStatisticCK.getEndDate(), 3);
+ } else if (searchBusinessType == 5) {
+ timeList = DateUtils.getTimeInterval(trafficTransStatisticCK.getBeginDate(),
+ trafficTransStatisticCK.getEndDate(), 4);
+ }
+ if (trafficTransStatisticCK.getSearchQuotaType() == 1) {
+ list = trafficReportDao.getBandwidthBpsFromCk(trafficTransStatisticCK);
+ } else if (trafficTransStatisticCK.getSearchQuotaType() == 2) {
+ list = trafficReportDao.getBandwidthPpsFromCk(trafficTransStatisticCK);
+ } else if (trafficTransStatisticCK.getSearchQuotaType() == 3) {
+ list = trafficReportDao.getBandwidthLinkNumFromCk(trafficTransStatisticCK);
+ }
+ Map<?, ?> map = convertData2ListV1(list, timeList, searchBusinessType,trafficTransStatisticCK.getEntranceId());
+ return map;
+ }
/**
* 查询bps/pps/linnum在ip46,tcp,udp的统计数据
*
@@ -218,6 +265,96 @@ public class TrafficReportService extends BaseLogService {
}
return map;
}
+ private Map<?, ?> convertData2ListV1(List<TrafficTransStatisticCK> list, List<Long> timeList,
+ Integer searchBusinessType,Integer searchEntranceId) {
+ Map<String, List<TrafficTransStatisticCK>> mapList = new HashMap<>();
+ Map<String, Map<String, Object>> map = new HashMap<>();
+ if (list != null) {
+ Set<String> dataKey = new HashSet<>();//无论有没有数据都要组装这几个json,界面需要这几个数据
+ dataKey.add("ipv4Type1");//ip只有4,6两种,协议只有tcp和udp,这里都写死了
+ dataKey.add("ipv4Type2");
+ dataKey.add("ipv6Type1");
+ dataKey.add("ipv6Type2");
+
+ dataKey.add("trans6Type1");
+ dataKey.add("trans6Type2");
+ dataKey.add("trans17Type1");
+ dataKey.add("trans17Type2");
+
+ for (TrafficTransStatisticCK trafficTransStatisticCK : list) {
+ Integer entranceId = trafficTransStatisticCK.getEntranceId();
+ Integer addrType = trafficTransStatisticCK.getAddrType();
+ Integer transType = trafficTransStatisticCK.getTransType();
+ String addrAndEntrKey = "ipv" + addrType + "Type" + entranceId;
+ String transAndEntrKey = "trans" + transType + "Type" + entranceId;
+
+ if (mapList.containsKey(addrAndEntrKey)) {
+ mapList.get(addrAndEntrKey).add(trafficTransStatisticCK);
+ } else {
+ List<TrafficTransStatisticCK> transList = new ArrayList<>();
+ transList.add(trafficTransStatisticCK);
+ mapList.put(addrAndEntrKey, transList);
+ }
+
+ if (mapList.containsKey(transAndEntrKey)) {
+ mapList.get(transAndEntrKey).add(trafficTransStatisticCK);
+ } else {
+ List<TrafficTransStatisticCK> transList = new ArrayList<>();
+ transList.add(trafficTransStatisticCK);
+ mapList.put(transAndEntrKey, transList);
+ }
+ }
+ for (String key : dataKey) {//无论这8种key是否都查询出了数据,都要给界面提供每个时间点的数据
+ Map<Long, Long> timeAndNum = new TreeMap<>();
+ Long count = 0l;
+ for (Long time : timeList) {
+ long num = 0l;
+ List<TrafficTransStatisticCK> list2 = mapList.get(key);
+ if (list2 != null && list2.size() > 0) {
+ for (TrafficTransStatisticCK trafficTransStatisticCK : list2) {
+ long transTime = trafficTransStatisticCK.getStatTime().getTime();
+ if (searchBusinessType == 1) {// 带宽五分钟不需要转换了,时间已经是五分钟的格式了
+// transTime = DateUtils.getTimeByType(transTime, 0);
+ } else if (searchBusinessType == 2) {
+ //transTime = DateUtils.getTimeByType(transTime, 1);
+ } else if (searchBusinessType == 3) {
+ //transTime = DateUtils.getTimeByType(transTime, 2);
+ } else if (searchBusinessType == 4) {
+ transTime = DateUtils.getTimeByType(transTime, 3);
+ } else if (searchBusinessType == 5) {
+ transTime = DateUtils.getTimeByType(transTime, 4);
+ }
+ if (transTime == time) {
+ num += trafficTransStatisticCK.getNum().longValue();
+ count += trafficTransStatisticCK.getNum().longValue();
+ }
+ }
+ }
+ timeAndNum.put(time, num);
+ }
+ Map<String, Object> resultMap = new HashMap<>();
+ List<List<Long>> restList = new ArrayList<List<Long>>();
+ for (Long timeKey : timeAndNum.keySet()) {
+ List<Long> dataList = new ArrayList<>();
+ dataList.add(timeKey);
+ dataList.add(timeAndNum.get(timeKey));
+ restList.add(dataList);
+ }
+ resultMap.put("result", restList);
+ resultMap.put("sum", count);
+ map.put(key, resultMap);
+ }
+ /*if (searchEntranceId == null) {
+ map = forMatData(map);
+ } else if (2 == searchEntranceId) {
+ map.put("ipv4Type1", map.get("ipv4Type2"));
+ map.put("ipv6Type1", map.get("ipv6Type2"));
+ map.put("trans6Type1", map.get("trans6Type2"));
+ map.put("trans17Type1", map.get("trans17Type2"));
+ }*/
+ }
+ return map;
+ }
public Map<String, Map<String, Object>> forMatData(Map<String, Map<String, Object>> map){