From f10a9238dce358b197142564259d975358c48cb3 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: Fri, 9 Apr 2021 17:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=E5=8C=96api=EF=BC=8C=20?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E4=B8=AD=E3=80=82=E3=80=82=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MobilePositionController.java | 64 +++++++++++++++++-- .../vmanager/gbStream/GbStreamController.java | 9 +-- .../vmp/vmanager/media/MediaController.java | 18 +++++- .../vmanager/platform/PlatformController.java | 30 +++++---- web_src/src/components/ParentPlatformList.vue | 4 +- web_src/src/components/devicePosition.vue | 8 +-- .../src/components/dialog/StreamProxyEdit.vue | 2 +- .../src/components/dialog/addStreamTOGB.vue | 2 +- .../src/components/dialog/chooseChannel.vue | 2 +- .../components/dialog/chooseChannelForGb.vue | 8 +-- .../dialog/chooseChannelForStream.vue | 3 +- .../src/components/dialog/platformEdit.vue | 6 +- 12 files changed, 113 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/MobilePosition/MobilePositionController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/MobilePosition/MobilePositionController.java index 92806b17..c284fe9a 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/MobilePosition/MobilePositionController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/MobilePosition/MobilePositionController.java @@ -12,6 +12,10 @@ import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.github.pagehelper.util.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -25,9 +29,13 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.async.DeferredResult; +/** + * 位置信息管理 + */ +@Api(tags = "位置信息管理") @CrossOrigin @RestController -@RequestMapping("/api") +@RequestMapping("/api/position") public class MobilePositionController { private final static Logger logger = LoggerFactory.getLogger(MobilePositionController.class); @@ -40,8 +48,21 @@ public class MobilePositionController { @Autowired private DeferredResultHolder resultHolder; - - @GetMapping("/positions/{deviceId}/history") + + /** + * 查询历史轨迹 + * @param deviceId 设备ID + * @param start 开始时间 + * @param end 结束时间 + * @return + */ + @ApiOperation("查询历史轨迹") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true), + @ApiImplicitParam(name = "start", value = "开始时间", required = true), + @ApiImplicitParam(name = "end", value = "结束时间", required = true), + }) + @GetMapping("/history/{deviceId}") public ResponseEntity> positions(@PathVariable String deviceId, @RequestParam(required = false) String start, @RequestParam(required = false) String end) { @@ -60,7 +81,16 @@ public class MobilePositionController { return new ResponseEntity<>(result, HttpStatus.OK); } - @GetMapping("/positions/{deviceId}/latest") + /** + * 查询设备最新位置 + * @param deviceId 设备ID + * @return + */ + @ApiOperation("查询设备最新位置") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true), + }) + @GetMapping("/latest/{deviceId}") public ResponseEntity latestPosition(@PathVariable String deviceId) { if (logger.isDebugEnabled()) { logger.debug("查询设备" + deviceId + "的最新位置"); @@ -69,7 +99,16 @@ public class MobilePositionController { return new ResponseEntity<>(result, HttpStatus.OK); } - @GetMapping("/positions/{deviceId}/realtime") + /** + * 获取移动位置信息 + * @param deviceId 设备ID + * @return + */ + @ApiOperation("获取移动位置信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true), + }) + @GetMapping("/realtime/{deviceId}") public DeferredResult> realTimePosition(@PathVariable String deviceId) { Device device = storager.queryVideoDevice(deviceId); cmder.mobilePostitionQuery(device, event -> { @@ -92,7 +131,20 @@ public class MobilePositionController { return result; } - @GetMapping("/positions/{deviceId}/subscribe") + /** + * 订阅位置信息 + * @param deviceId 设备ID + * @param expires 订阅超时时间 + * @param interval 上报时间间隔 + * @return true = 命令发送成功 + */ + @ApiOperation("订阅位置信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true), + @ApiImplicitParam(name = "expires", value = "订阅超时时间"), + @ApiImplicitParam(name = "interval", value = "上报时间间隔"), + }) + @GetMapping("/subscribe/{deviceId}") public ResponseEntity positionSubscribe(@PathVariable String deviceId, @RequestParam String expires, @RequestParam String interval) { diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gbStream/GbStreamController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gbStream/GbStreamController.java index c61b62f7..64e45674 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gbStream/GbStreamController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gbStream/GbStreamController.java @@ -75,15 +75,12 @@ public class GbStreamController { * @return */ @ApiOperation("保存国标关联") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "app", value = "视频流应用名", required = true ), -// @ApiImplicitParam(name = "gbId", value = "国标ID", required = true ), -// }) + @ApiImplicitParams({ + @ApiImplicitParam(name = "gbStreamParam", value = "GbStreamParam", required = true ), + }) @PostMapping(value = "/add") @ResponseBody public Object add(@RequestBody GbStreamParam gbStreamParam){ - System.out.println(3333); - System.out.println(gbStreamParam.getGbStreams().size()); if (gbStreamService.addPlatformInfo(gbStreamParam.getGbStreams(), gbStreamParam.getPlatformId())) { return "success"; }else { diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/media/MediaController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/media/MediaController.java index e01b06e6..a195cc9f 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/media/MediaController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/media/MediaController.java @@ -9,6 +9,10 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.service.IMediaService; import com.genersoft.iot.vmp.service.IStreamProxyService; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +20,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +@Api(tags = "媒体流相关") @Controller @CrossOrigin @RequestMapping(value = "/api/media") @@ -33,8 +38,17 @@ public class MediaController { private IMediaService mediaService; - - + /** + * 根据应用名和流id获取播放地址 + * @param app 应用名 + * @param stream 流id + * @return + */ + @ApiOperation("根据应用名和流id获取播放地址") + @ApiImplicitParams({ + @ApiImplicitParam(name = "app", value = "应用名"), + @ApiImplicitParam(name = "stream", value = "流id"), + }) @RequestMapping(value = "/getStreamInfoByAppAndStream") @ResponseBody public StreamInfo getStreamInfoByAppAndStream(String app, String stream){ diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java index 279a0310..834c00b6 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java @@ -8,6 +8,7 @@ import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce; import com.genersoft.iot.vmp.vmanager.platform.bean.UpdateChannelParam; import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -17,9 +18,13 @@ import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import com.genersoft.iot.vmp.conf.SipConfig; +/** + * 级联平台管理 + */ +@Api("级联平台管理") @CrossOrigin @RestController -@RequestMapping("/api") +@RequestMapping("/api/platform") public class PlatformController { private final static Logger logger = LoggerFactory.getLogger(PlatformController.class); @@ -36,7 +41,7 @@ public class PlatformController { @Autowired private SipConfig sipConfig; - @GetMapping("/platforms/serverconfig") + @GetMapping("/server_config") public ResponseEntity serverConfig() { JSONObject result = new JSONObject(); result.put("deviceIp", sipConfig.getSipIp()); @@ -46,7 +51,7 @@ public class PlatformController { return new ResponseEntity<>(result, HttpStatus.OK); } - @GetMapping("/platforms/{count}/{page}") + @GetMapping("/query/{count}/{page}") public PageInfo platforms(@PathVariable int page, @PathVariable int count){ if (logger.isDebugEnabled()) { @@ -55,7 +60,7 @@ public class PlatformController { return storager.queryParentPlatformList(page, count); } - @RequestMapping("/platforms/save") + @PostMapping("/save") @ResponseBody public ResponseEntity savePlatform(@RequestBody ParentPlatform parentPlatform){ @@ -98,18 +103,19 @@ public class PlatformController { } } - @RequestMapping("/platforms/delete") + @DeleteMapping("/delete/{serverGBId}") @ResponseBody - public ResponseEntity deletePlatform(@RequestBody ParentPlatform parentPlatform){ + public ResponseEntity deletePlatform(@PathVariable String serverGBId){ if (logger.isDebugEnabled()) { logger.debug("删除上级平台API调用"); } - if (StringUtils.isEmpty(parentPlatform.getServerGBId()) + if (StringUtils.isEmpty(serverGBId) ){ return new ResponseEntity<>("missing parameters", HttpStatus.BAD_REQUEST); } - + ParentPlatform parentPlatform = storager.queryParentPlatById(serverGBId); + if (parentPlatform == null) return new ResponseEntity<>("fail", HttpStatus.OK); // 发送离线消息,无论是否成功都删除缓存 commanderForPlatform.unregister(parentPlatform, (event -> { // 清空redis缓存 @@ -133,7 +139,7 @@ public class PlatformController { } } - @RequestMapping("/platforms/exit/{deviceGbId}") + @GetMapping("/exit/{deviceGbId}") @ResponseBody public ResponseEntity exitPlatform(@PathVariable String deviceGbId){ @@ -144,7 +150,7 @@ public class PlatformController { return new ResponseEntity<>(String.valueOf(parentPlatform != null), HttpStatus.OK); } - @RequestMapping("/platforms/channelList") + @GetMapping("/channel_list") @ResponseBody public PageInfo channelList(int page, int count, @RequestParam(required = false) String platformId, @@ -167,7 +173,7 @@ public class PlatformController { } - @RequestMapping("/platforms/updateChannelForGB") + @PostMapping("/update_channel_for_gb") @ResponseBody public ResponseEntity updateChannelForGB(@RequestBody UpdateChannelParam param){ @@ -179,7 +185,7 @@ public class PlatformController { return new ResponseEntity<>(String.valueOf(result > 0), HttpStatus.OK); } - @RequestMapping("/platforms/delChannelForGB") + @DeleteMapping("/del_channel_for_gb") @ResponseBody public ResponseEntity delChannelForGB(@RequestBody UpdateChannelParam param){ diff --git a/web_src/src/components/ParentPlatformList.vue b/web_src/src/components/ParentPlatformList.vue index 1121f6e0..ee0d342c 100644 --- a/web_src/src/components/ParentPlatformList.vue +++ b/web_src/src/components/ParentPlatformList.vue @@ -121,7 +121,7 @@ export default { }, deletePlatformCommit: function(platform) { var that = this; - that.$axios.post(`/api/platforms/delete`, platform) + that.$axios.delete(`/api/platform/delete/${platform.serverGBId}`) .then(function (res) { if (res.data == "success") { that.$message({ @@ -155,7 +155,7 @@ export default { getPlatformList: function() { let that = this; - this.$axios.get(`/api/platforms/${that.count}/${that.currentPage}`) + this.$axios.get(`/api/platform/query/${that.count}/${that.currentPage}`) .then(function (res) { that.total = res.data.total; that.platformList = res.data.list; diff --git a/web_src/src/components/devicePosition.vue b/web_src/src/components/devicePosition.vue index 4a52c743..dfee0b1c 100644 --- a/web_src/src/components/devicePosition.vue +++ b/web_src/src/components/devicePosition.vue @@ -171,7 +171,7 @@ export default { this.endTime = null; } let self = this; - this.$axios.get(`/api/positions/${this.deviceId}/history`, { + this.$axios.get(`/api/position/history/${this.deviceId}`, { params: { start: self.startTime, end: self.endTime, @@ -202,7 +202,7 @@ export default { this.mapPointList = []; this.mobilePositionList = []; let self = this; - this.$axios.get(`/api/positions/${this.deviceId}/latest`) + this.$axios.get(`/api/position/latest/${this.deviceId}`) .then(function (res) { console.log(res.data); self.total = res.data.length; @@ -226,7 +226,7 @@ export default { }, subscribeMobilePosition: function() { let self = this; - this.$axios.get(`/api/positions/${this.deviceId}/subscribe`, { + this.$axios.get(`/api/position/subscribe/${this.deviceId}`, { params: { expires: self.expired, interval: self.interval, @@ -241,7 +241,7 @@ export default { }, unSubscribeMobilePosition: function() { let self = this; - this.$axios.get(`/api/positions/${this.deviceId}/subscribe`, { + this.$axios.get(`/api/position/subscribe/${this.deviceId}`, { params: { expires: 0, interval: self.interval, diff --git a/web_src/src/components/dialog/StreamProxyEdit.vue b/web_src/src/components/dialog/StreamProxyEdit.vue index 63a7bf68..bdde9db4 100644 --- a/web_src/src/components/dialog/StreamProxyEdit.vue +++ b/web_src/src/components/dialog/StreamProxyEdit.vue @@ -176,7 +176,7 @@ export default { var result = false; var that = this; await that.$axios - .post(`/api/platforms/exit/${deviceGbId}`) + .post(`/api/platform/exit/${deviceGbId}`) .then(function (res) { result = res.data; }) diff --git a/web_src/src/components/dialog/addStreamTOGB.vue b/web_src/src/components/dialog/addStreamTOGB.vue index 0b908f80..d5373fb8 100644 --- a/web_src/src/components/dialog/addStreamTOGB.vue +++ b/web_src/src/components/dialog/addStreamTOGB.vue @@ -119,7 +119,7 @@ export default { var result = false; var that = this; await that.$axios - .post(`/api/platforms/exit/${deviceGbId}`) + .post(`/api/platform/exit/${deviceGbId}`) .then(function (res) { result = res.data; }) diff --git a/web_src/src/components/dialog/chooseChannel.vue b/web_src/src/components/dialog/chooseChannel.vue index 31ef4b7e..a6b9b444 100644 --- a/web_src/src/components/dialog/chooseChannel.vue +++ b/web_src/src/components/dialog/chooseChannel.vue @@ -72,7 +72,7 @@ export default { this.$axios({ method:"post", - url:"/api/platforms/updateChannelForGB", + url:"/api/platform/update_channel_for_gb", data:{ platformId: that.platformId, channelReduces: that.chooseData diff --git a/web_src/src/components/dialog/chooseChannelForGb.vue b/web_src/src/components/dialog/chooseChannelForGb.vue index 22b6032a..28b3d589 100644 --- a/web_src/src/components/dialog/chooseChannelForGb.vue +++ b/web_src/src/components/dialog/chooseChannelForGb.vue @@ -149,7 +149,7 @@ export default { if (Object.keys(addData).length >0) { that.$axios({ method:"post", - url:"/api/platforms/updateChannelForGB", + url:"/api/platform/update_channel_for_gb", data:{ platformId: that.platformId, channelReduces: addData @@ -162,8 +162,8 @@ export default { } if (Object.keys(delData).length >0) { that.$axios({ - method:"post", - url:"/api/platforms/delChannelForGB", + method:"delete", + url:"/api/platform/del_channel_for_gb", data:{ platformId: that.platformId, channelReduces: delData @@ -182,7 +182,7 @@ export default { getChannelList: function () { let that = this; - this.$axios.get(`/api/platforms/channelList`, { + this.$axios.get(`/api/platform/channel_list`, { params: { page: that.currentPage, count: that.count, diff --git a/web_src/src/components/dialog/chooseChannelForStream.vue b/web_src/src/components/dialog/chooseChannelForStream.vue index ff655328..514ac3e1 100644 --- a/web_src/src/components/dialog/chooseChannelForStream.vue +++ b/web_src/src/components/dialog/chooseChannelForStream.vue @@ -142,7 +142,7 @@ export default { if (Object.keys(delData).length >0) { console.log(delData) that.$axios({ - method:"post", + method:"delete", url:"/api/gbStream/del", data:{ gbStreams: delData, @@ -152,6 +152,7 @@ export default { }).catch(function (error) { console.log(error); }); + } }, diff --git a/web_src/src/components/dialog/platformEdit.vue b/web_src/src/components/dialog/platformEdit.vue index c3c5ac9e..34ee27d1 100644 --- a/web_src/src/components/dialog/platformEdit.vue +++ b/web_src/src/components/dialog/platformEdit.vue @@ -164,7 +164,7 @@ export default { openDialog: function (platform, callback) { var that = this; this.$axios - .get(`/api/platforms/serverconfig`) + .get(`/api/platform/server_config`) .then(function (res) { console.log(res); that.platform.deviceGBId = res.data.username; @@ -189,7 +189,7 @@ export default { console.log("onSubmit"); var that = this; that.$axios - .post(`/api/platforms/save`, that.platform) + .post(`/api/platform/save`, that.platform) .then(function (res) { console.log(res); console.log(res.data == "success"); @@ -219,7 +219,7 @@ export default { var result = false; var that = this; await that.$axios - .post(`/api/platforms/exit/${deviceGbId}`) + .post(`/api/platform/exit/${deviceGbId}`) .then(function (res) { result = res.data; })