From 03ee15ece2ff749be8f4c211e1ee6fd3a3a6066d Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 09 二月 2023 14:13:44 +0800 Subject: [PATCH] Merge pull request #741 from gaofuwang/wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 65 +++++++++++++++++++------------- 1 files changed, 38 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java index 37fb98e..11bc621 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java @@ -1,11 +1,10 @@ package com.genersoft.iot.vmp.vmanager.gb28181.device; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONObject; import com.genersoft.iot.vmp.conf.DynamicTask; import com.genersoft.iot.vmp.conf.exception.ControllerException; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; -import com.genersoft.iot.vmp.gb28181.bean.SubscribeHolder; import com.genersoft.iot.vmp.gb28181.bean.SyncStatus; import com.genersoft.iot.vmp.gb28181.task.ISubscribeTask; import com.genersoft.iot.vmp.gb28181.task.impl.CatalogSubscribeTask; @@ -25,7 +24,6 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.apache.commons.compress.utils.IOUtils; -import org.apache.http.HttpResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -33,15 +31,15 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.ObjectUtils; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; import javax.servlet.http.HttpServletResponse; -import javax.sip.DialogState; import javax.sip.InvalidArgumentException; import javax.sip.SipException; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.nio.file.Files; import java.text.ParseException; import java.util.*; @@ -76,9 +74,6 @@ @Autowired private DynamicTask dynamicTask; - @Autowired - private SubscribeHolder subscribeHolder; - /** * 浣跨敤ID鏌ヨ鍥芥爣璁惧 * @param deviceId 鍥芥爣ID @@ -104,7 +99,7 @@ @GetMapping("/devices") public PageInfo<Device> devices(int page, int count){ - return storager.queryVideoDeviceList(page, count); + return storager.queryVideoDeviceList(page, count,null); } /** @@ -148,7 +143,7 @@ */ @Operation(summary = "鍚屾璁惧閫氶亾") @Parameter(name = "deviceId", description = "璁惧鍥芥爣缂栧彿", required = true) - @PostMapping("/devices/{deviceId}/sync") + @GetMapping("/devices/{deviceId}/sync") public WVPResult<SyncStatus> devicesSync(@PathVariable String deviceId){ if (logger.isDebugEnabled()) { @@ -184,7 +179,7 @@ } // 娓呴櫎redis璁板綍 - boolean isSuccess = storager.delete(deviceId); + boolean isSuccess = deviceService.delete(deviceId); if (isSuccess) { redisCatchStorage.clearCatchByDeviceId(deviceId); // 鍋滄姝よ澶囩殑璁㈤槄鏇存柊 @@ -228,7 +223,7 @@ @Parameter(name = "online", description = "鏄惁鍦ㄧ嚎") @Parameter(name = "channelType", description = "璁惧/瀛愮洰褰�-> false/true") @GetMapping("/sub_channels/{deviceId}/{channelId}/channels") - public ResponseEntity<PageInfo> subChannels(@PathVariable String deviceId, + public PageInfo subChannels(@PathVariable String deviceId, @PathVariable String channelId, int page, int count, @@ -239,11 +234,11 @@ DeviceChannel deviceChannel = storager.queryChannel(deviceId,channelId); if (deviceChannel == null) { PageInfo<DeviceChannel> deviceChannelPageResult = new PageInfo<>(); - return new ResponseEntity<>(deviceChannelPageResult,HttpStatus.OK); + return deviceChannelPageResult; } PageInfo pageResult = storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count); - return new ResponseEntity<>(pageResult,HttpStatus.OK); + return pageResult; } /** @@ -256,9 +251,8 @@ @Parameter(name = "deviceId", description = "璁惧鍥芥爣缂栧彿", required = true) @Parameter(name = "channel", description = "閫氶亾淇℃伅", required = true) @PostMapping("/channel/update/{deviceId}") - public ResponseEntity updateChannel(@PathVariable String deviceId,DeviceChannel channel){ + public void updateChannel(@PathVariable String deviceId,DeviceChannel channel){ deviceChannelService.updateChannel(deviceId, channel); - return new ResponseEntity<>(null,HttpStatus.OK); } /** @@ -272,11 +266,32 @@ @Parameter(name = "streamMode", description = "鏁版嵁娴佷紶杈撴ā寮�, 鍙栧�硷細" + "UDP锛坲dp浼犺緭锛夛紝TCP-ACTIVE锛坱cp涓诲姩妯″紡,鏆備笉鏀寔锛夛紝TCP-PASSIVE锛坱cp琚姩妯″紡锛�", required = true) @PostMapping("/transport/{deviceId}/{streamMode}") - public ResponseEntity updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){ - Device device = storager.queryVideoDevice(deviceId); + public void updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){ + Device device = deviceService.getDevice(deviceId); device.setStreamMode(streamMode); - deviceService.updateDevice(device); - return new ResponseEntity<>(null,HttpStatus.OK); + deviceService.updateCustomDevice(device); + } + + /** + * 娣诲姞璁惧淇℃伅 + * @param device 璁惧淇℃伅 + * @return + */ + @Operation(summary = "娣诲姞璁惧淇℃伅") + @Parameter(name = "device", description = "璁惧", required = true) + @PostMapping("/device/add/") + public void addDevice(Device device){ + + if (device == null || device.getDeviceId() == null) { + throw new ControllerException(ErrorCode.ERROR400); + } + + // 鏌ョ湅deviceId鏄惁瀛樺湪 + boolean exist = deviceService.isExist(device.getDeviceId()); + if (exist) { + throw new ControllerException(ErrorCode.ERROR100.getCode(), "璁惧缂栧彿宸插瓨鍦�"); + } + deviceService.addDevice(device); } /** @@ -287,15 +302,11 @@ @Operation(summary = "鏇存柊璁惧淇℃伅") @Parameter(name = "device", description = "璁惧", required = true) @PostMapping("/device/update/") - public ResponseEntity<WVPResult<String>> updateDevice(Device device){ + public void updateDevice(Device device){ if (device != null && device.getDeviceId() != null) { - deviceService.updateDevice(device); + deviceService.updateCustomDevice(device); } - WVPResult<String> result = new WVPResult<>(); - result.setCode(0); - result.setMsg("success"); - return new ResponseEntity<>(result,HttpStatus.OK); } /** -- Gitblit v1.8.0