From 4bda14b098bc943324c73a8365c8bcd721beaa5a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 08 九月 2022 15:27:47 +0800
Subject: [PATCH] 修复cseq序号回退
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/alarm/AlarmController.java | 190 ++++++++++++++++++++---------------------------
1 files changed, 81 insertions(+), 109 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/alarm/AlarmController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/alarm/AlarmController.java
index 509c988..c8bd3f4 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/alarm/AlarmController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/alarm/AlarmController.java
@@ -1,34 +1,33 @@
package com.genersoft.iot.vmp.vmanager.gb28181.alarm;
+import com.genersoft.iot.vmp.conf.exception.ControllerException;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
-import com.genersoft.iot.vmp.gb28181.bean.SubscribeInfo;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
import com.genersoft.iot.vmp.service.IDeviceAlarmService;
-import com.genersoft.iot.vmp.service.IGbStreamService;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.utils.DateUtil;
+import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import com.github.pagehelper.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
-import java.text.ParseException;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
-@Api(tags = "鎶ヨ淇℃伅绠$悊")
+@Tag(name = "鎶ヨ淇℃伅绠$悊")
@CrossOrigin
@RestController
@RequestMapping("/api/alarm")
@@ -46,68 +45,6 @@
@Autowired
private IVideoManagerStorage storage;
- /**
- * 鍒嗛〉鏌ヨ鎶ヨ
- *
- * @param deviceId 璁惧id
- * @param page 褰撳墠椤�
- * @param count 姣忛〉鏌ヨ鏁伴噺
- * @param alarmPriority 鎶ヨ绾у埆
- * @param alarmMethod 鎶ヨ鏂瑰紡
- * @param alarmType 鎶ヨ绫诲瀷
- * @param startTime 寮�濮嬫椂闂�
- * @param endTime 缁撴潫鏃堕棿
- * @return
- */
- @ApiOperation("鍒嗛〉鏌ヨ鎶ヨ")
- @GetMapping("/all")
- @ApiImplicitParams({
- @ApiImplicitParam(name="deviceId", value = "璁惧id", dataTypeClass = String.class),
- @ApiImplicitParam(name="page", value = "褰撳墠椤�", required = true ,dataTypeClass = Integer.class),
- @ApiImplicitParam(name="count", value = "姣忛〉鏌ヨ鏁伴噺", required = true ,dataTypeClass = Integer.class),
- @ApiImplicitParam(name="alarmPriority", value = "鏌ヨ鍐呭" ,dataTypeClass = String.class),
- @ApiImplicitParam(name="alarmMethod", value = "鏌ヨ鍐呭" ,dataTypeClass = String.class),
- @ApiImplicitParam(name="alarmMethod", value = "鏌ヨ鍐呭" ,dataTypeClass = String.class),
- @ApiImplicitParam(name="alarmType", value = "鏌ヨ鍐呭" ,dataTypeClass = String.class),
- @ApiImplicitParam(name="startTime", value = "寮�濮嬫椂闂�" ,dataTypeClass = String.class),
- @ApiImplicitParam(name="endTime", value = "缁撴潫鏃堕棿" ,dataTypeClass = String.class),
- })
- public ResponseEntity<PageInfo<DeviceAlarm>> getAll(
- @RequestParam int page,
- @RequestParam int count,
- @RequestParam(required = false) String deviceId,
- @RequestParam(required = false) String alarmPriority,
- @RequestParam(required = false) String alarmMethod,
- @RequestParam(required = false) String alarmType,
- @RequestParam(required = false) String startTime,
- @RequestParam(required = false) String endTime
- ) {
- if (StringUtils.isEmpty(alarmPriority)) {
- alarmPriority = null;
- }
- if (StringUtils.isEmpty(alarmMethod)) {
- alarmMethod = null;
- }
- if (StringUtils.isEmpty(alarmType)) {
- alarmType = null;
- }
- if (StringUtils.isEmpty(startTime)) {
- startTime = null;
- }
- if (StringUtils.isEmpty(endTime)) {
- endTime = null;
- }
-
-
- if (!DateUtil.verification(startTime, DateUtil.formatter) || !DateUtil.verification(endTime, DateUtil.formatter)){
- return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
- }
-
- PageInfo<DeviceAlarm> allAlarm = deviceAlarmService.getAllAlarm(page, count, deviceId, alarmPriority, alarmMethod,
- alarmType, startTime, endTime);
- return new ResponseEntity<>(allAlarm, HttpStatus.OK);
- }
-
/**
* 鍒犻櫎鎶ヨ
@@ -117,29 +54,27 @@
* @param time 缁撴潫鏃堕棿(杩欎釜鏃堕棿涔嬪墠鐨勬姤璀︿細琚垹闄�)
* @return
*/
- @ApiOperation("鍒犻櫎鎶ヨ")
@DeleteMapping("/delete")
- @ApiImplicitParams({
- @ApiImplicitParam(name="id", value = "ID", required = false ,dataTypeClass = Integer.class),
- @ApiImplicitParam(name="deviceIds", value = "澶氫釜璁惧id,閫楀彿鍒嗛殧", required = false ,dataTypeClass = String.class),
- @ApiImplicitParam(name="time", value = "缁撴潫鏃堕棿", required = false ,dataTypeClass = String.class),
- })
- public ResponseEntity<WVPResult<String>> delete(
- @RequestParam(required = false) Integer id,
- @RequestParam(required = false) String deviceIds,
- @RequestParam(required = false) String time
+ @Operation(summary = "鍒犻櫎鎶ヨ")
+ @Parameter(name = "id", description = "ID")
+ @Parameter(name = "deviceIds", description = "澶氫釜璁惧id,閫楀彿鍒嗛殧")
+ @Parameter(name = "time", description = "缁撴潫鏃堕棿")
+ public Integer delete(
+ @RequestParam(required = false) Integer id,
+ @RequestParam(required = false) String deviceIds,
+ @RequestParam(required = false) String time
) {
- if (StringUtils.isEmpty(id)) {
+ if (ObjectUtils.isEmpty(id)) {
id = null;
}
- if (StringUtils.isEmpty(deviceIds)) {
+ if (ObjectUtils.isEmpty(deviceIds)) {
deviceIds = null;
}
- if (StringUtils.isEmpty(time)) {
+ if (ObjectUtils.isEmpty(time)) {
time = null;
}
if (!DateUtil.verification(time, DateUtil.formatter) ){
- return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
+ return null;
}
List<String> deviceIdList = null;
if (deviceIds != null) {
@@ -147,12 +82,7 @@
deviceIdList = Arrays.asList(deviceIdArray);
}
- int count = deviceAlarmService.clearAlarmBeforeTime(id, deviceIdList, time);
- WVPResult wvpResult = new WVPResult();
- wvpResult.setCode(0);
- wvpResult.setMsg("success");
- wvpResult.setData(count);
- return new ResponseEntity<WVPResult<String>>(wvpResult, HttpStatus.OK);
+ return deviceAlarmService.clearAlarmBeforeTime(id, deviceIdList, time);
}
/**
@@ -161,17 +91,10 @@
* @param deviceId 鎶ヨid
* @return
*/
- @ApiOperation("娴嬭瘯鍚戜笂绾�/璁惧鍙戦�佹ā鎷熸姤璀﹂�氱煡")
@GetMapping("/test/notify/alarm")
- @ApiImplicitParams({
- @ApiImplicitParam(name="deviceId", value = "deviceId", required = true ,dataTypeClass = Integer.class)
- })
- public ResponseEntity<WVPResult<String>> delete(
- @RequestParam(required = false) String deviceId
- ) {
- if (StringUtils.isEmpty(deviceId)) {
- return new ResponseEntity<>(HttpStatus.NOT_FOUND);
- }
+ @Operation(summary = "娴嬭瘯鍚戜笂绾�/璁惧鍙戦�佹ā鎷熸姤璀﹂�氱煡")
+ @Parameter(name = "deviceId", description = "璁惧鍥芥爣缂栧彿")
+ public void delete(@RequestParam String deviceId) {
Device device = storage.queryVideoDevice(deviceId);
ParentPlatform platform = storage.queryParentPlatByServerGBId(deviceId);
DeviceAlarm deviceAlarm = new DeviceAlarm();
@@ -189,17 +112,66 @@
}else if (device == null && platform != null){
commanderForPlatform.sendAlarmMessage(platform, deviceAlarm);
}else {
- WVPResult wvpResult = new WVPResult();
- wvpResult.setCode(0);
- wvpResult.setMsg("鏃犳硶纭畾" + deviceId + "鏄钩鍙拌繕鏄澶�");
- return new ResponseEntity<WVPResult<String>>(wvpResult, HttpStatus.OK);
+ throw new ControllerException(ErrorCode.ERROR100.getCode(),"鏃犳硶纭畾" + deviceId + "鏄钩鍙拌繕鏄澶�");
}
- WVPResult wvpResult = new WVPResult();
- wvpResult.setCode(0);
- wvpResult.setMsg("success");
- return new ResponseEntity<WVPResult<String>>(wvpResult, HttpStatus.OK);
}
+ /**
+ * 鍒嗛〉鏌ヨ鎶ヨ
+ *
+ * @param deviceId 璁惧id
+ * @param page 褰撳墠椤�
+ * @param count 姣忛〉鏌ヨ鏁伴噺
+ * @param alarmPriority 鎶ヨ绾у埆
+ * @param alarmMethod 鎶ヨ鏂瑰紡
+ * @param alarmType 鎶ヨ绫诲瀷
+ * @param startTime 寮�濮嬫椂闂�
+ * @param endTime 缁撴潫鏃堕棿
+ * @return
+ */
+ @Operation(summary = "鍒嗛〉鏌ヨ鎶ヨ")
+ @Parameter(name = "page",description = "褰撳墠椤�",required = true)
+ @Parameter(name = "count",description = "姣忛〉鏌ヨ鏁伴噺",required = true)
+ @Parameter(name = "deviceId",description = "璁惧id")
+ @Parameter(name = "alarmPriority",description = "鏌ヨ鍐呭")
+ @Parameter(name = "alarmMethod",description = "鏌ヨ鍐呭")
+ @Parameter(name = "alarmType",description = "姣忛〉鏌ヨ鏁伴噺")
+ @Parameter(name = "startTime",description = "寮�濮嬫椂闂�")
+ @Parameter(name = "endTime",description = "缁撴潫鏃堕棿")
+ @GetMapping("/all")
+ public PageInfo<DeviceAlarm> getAll(
+ @RequestParam int page,
+ @RequestParam int count,
+ @RequestParam(required = false) String deviceId,
+ @RequestParam(required = false) String alarmPriority,
+ @RequestParam(required = false) String alarmMethod,
+ @RequestParam(required = false) String alarmType,
+ @RequestParam(required = false) String startTime,
+ @RequestParam(required = false) String endTime
+ ) {
+ if (ObjectUtils.isEmpty(alarmPriority)) {
+ alarmPriority = null;
+ }
+ if (ObjectUtils.isEmpty(alarmMethod)) {
+ alarmMethod = null;
+ }
+ if (ObjectUtils.isEmpty(alarmType)) {
+ alarmType = null;
+ }
+ if (ObjectUtils.isEmpty(startTime)) {
+ startTime = null;
+ }
+ if (ObjectUtils.isEmpty(endTime)) {
+ endTime = null;
+ }
+
+ if (!DateUtil.verification(startTime, DateUtil.formatter) || !DateUtil.verification(endTime, DateUtil.formatter)){
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "寮�濮嬫椂闂存垨缁撴潫鏃堕棿鏍煎紡鏈夎");
+ }
+
+ return deviceAlarmService.getAllAlarm(page, count, deviceId, alarmPriority, alarmMethod,
+ alarmType, startTime, endTime);
+ }
}
--
Gitblit v1.8.0