1:完成nms另外两个接口

2:修改swagger中index.html页面自动识别url
This commit is contained in:
renkaige
2018-10-09 14:12:07 +08:00
parent 1ef91b5592
commit c6576215a6
9 changed files with 227 additions and 53 deletions

View File

@@ -20,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;
@@ -33,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系统上报的服务器状态信息")
@@ -70,7 +76,13 @@ public class NmsInfoController extends BaseRestController {
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());
@@ -89,6 +101,14 @@ public class NmsInfoController extends BaseRestController {
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,

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

@@ -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);
}
}

View File

@@ -1,49 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>Galaxy UI</title>
<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
<link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
<link href='css/print.css' media='print' rel='stylesheet' type='text/css'/>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>Galaxy UI</title>
<link rel="icon" type="image/png" href="images/favicon-32x32.png"
sizes="32x32" />
<link rel="icon" type="image/png" href="images/favicon-16x16.png"
sizes="16x16" />
<link href='css/typography.css' media='screen' rel='stylesheet'
type='text/css' />
<link href='css/reset.css' media='screen' rel='stylesheet'
type='text/css' />
<link href='css/screen.css' media='screen' rel='stylesheet'
type='text/css' />
<link href='css/reset.css' media='print' rel='stylesheet'
type='text/css' />
<link href='css/print.css' media='print' rel='stylesheet'
type='text/css' />
<script src='lib/object-assign-pollyfill.js' type='text/javascript'></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
<script src='lib/handlebars-4.0.5.js' type='text/javascript'></script>
<script src='lib/lodash.min.js' type='text/javascript'></script>
<script src='lib/backbone-min.js' type='text/javascript'></script>
<script src='swagger-ui.js' type='text/javascript'></script>
<script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
<script src='lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
<script src='lib/jsoneditor.min.js' type='text/javascript'></script>
<script src='lib/marked.js' type='text/javascript'></script>
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
<script src='lib/object-assign-pollyfill.js' type='text/javascript'></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
<script src='lib/handlebars-4.0.5.js' type='text/javascript'></script>
<script src='lib/lodash.min.js' type='text/javascript'></script>
<script src='lib/backbone-min.js' type='text/javascript'></script>
<script src='swagger-ui.js' type='text/javascript'></script>
<script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
<script src='lib/highlight.9.1.0.pack_extended.js'
type='text/javascript'></script>
<script src='lib/jsoneditor.min.js' type='text/javascript'></script>
<script src='lib/marked.js' type='text/javascript'></script>
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
<!-- Some basic translations -->
<!-- <script src='lang/translator.js' type='text/javascript'></script> -->
<!-- <script src='lang/ru.js' type='text/javascript'></script> -->
<!-- <script src='lang/en.js' type='text/javascript'></script> -->
<!-- Some basic translations -->
<!-- <script src='lang/translator.js' type='text/javascript'></script> -->
<!-- <script src='lang/ru.js' type='text/javascript'></script> -->
<!-- <script src='lang/en.js' type='text/javascript'></script> -->
<script type="text/javascript">
<script type="text/javascript">
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "http://127.0.0.1:8080/galaxy/api-docs";
}
hljs.configure({
highlightSizeThreshold: 5000
});
  //获取当前网址,如:
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录如:/galaxy-service/api-docs
var pathName=window.document.location.pathname;
var pos=curWwwPath.indexOf(pathName);
//获取主机地址,如:http://127.0.0.1:8080
var localhostPaht=curWwwPath.substring(0,pos);
//获取带"/"的项目名,如:http://127.0.0.1:8080/galaxy-service/api-docs的pathName=/galaxy-service/api-docs,项目名是galaxy-service
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
var url =window.location.protocol+"//"+window.location.host+projectName+"/api-docs";
url = decodeURIComponent(url);
hljs.configure({
highlightSizeThreshold: 5000
});
// Pre load translate...
if(window.SwaggerTranslator) {
@@ -91,18 +103,25 @@
</head>
<body class="swagger-section">
<div id='header'>
<div class="swagger-ui-wrap">
<a id="logo" href="/galaxy/api-docs"><img class="logo__img" alt="swagger" height="30" width="30" src="images/logo_small.png" /><span class="logo__title">swagger</span></a>
<form id='api_selector'>
<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
<div id='auth_container'></div>
<div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>
</form>
</div>
</div>
<div id='header'>
<div class="swagger-ui-wrap">
<a id="logo" href="/galaxy/api-docs"><img class="logo__img"
alt="swagger" height="30" width="30" src="images/logo_small.png" /><span
class="logo__title">swagger</span></a>
<form id='api_selector'>
<div class='input'>
<input placeholder="http://example.com/api" id="input_baseUrl"
name="baseUrl" type="text" />
</div>
<div id='auth_container'></div>
<div class='input'>
<a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a>
</div>
</form>
</div>
</div>
<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
</body>
</html>