From 5d901b5e3f033e8b04e53420d68626cbd87431c8 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Fri, 6 May 2022 10:12:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=98=BF=E9=87=8C=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83=E3=80=82=E8=A7=84=E8=8C=83=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/common/ApiSaveConstant.java | 46 ++++++++++++++----- .../AnonymousAuthenticationEntryPoint.java | 5 +- .../vmp/gb28181/bean/DeviceAlarmMethod.java | 40 ++++++++++++++++ .../notify/cmd/AlarmNotifyMessageHandler.java | 38 ++++++++------- 4 files changed, 99 insertions(+), 30 deletions(-) create mode 100644 src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceAlarmMethod.java diff --git a/src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java b/src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java index e91d1cab..ed1c2b9b 100644 --- a/src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java +++ b/src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java @@ -1,5 +1,9 @@ package com.genersoft.iot.vmp.common; +/** + * 为API重命名, 方便向数据库记录数据的时候展示 + * @author lin + */ public class ApiSaveConstant { public static String getVal(String key) { @@ -35,8 +39,9 @@ public class ApiSaveConstant { return "[设备控制] 强制关键帧"; case "home_position": return "[设备控制] 看守位控制"; + default: + return ""; } - break; case "query": if (keyItemArray.length <= 5) { return null; @@ -51,23 +56,30 @@ public class ApiSaveConstant { return "[设备查询] 同步设备通道"; case "delete": return "[设备查询] 移除设备"; + default: + return ""; } - break; case "channel": return "[设备查询] 更新通道信息"; case "transport": return "[设备查询] 修改数据流传输模式"; + default: + return ""; } - break; + default: + return ""; } + + break; case "gbStream": switch (keyItemArray[3]) { case "del": return "移除通道与国标的关联"; case "add": return "添加通道与国标的关联"; + default: + return ""; } - break; case "media": break; case "position": @@ -85,8 +97,9 @@ public class ApiSaveConstant { return "向上级平台添加国标通道"; case "del_channel_for_gb": return "从上级平台移除国标通道"; + default: + return ""; } - break; case "platform_gb_stream": break; case "play": @@ -101,32 +114,36 @@ public class ApiSaveConstant { return "结束转码"; case "broadcast": return "语音广播"; + default: + return ""; } - break; case "download": switch (keyItemArray[3]) { case "start": return "开始历史媒体下载"; case "stop": return "停止历史媒体下载"; + default: + return ""; } - break; case "playback": switch (keyItemArray[3]) { case "start": return "开始视频回放"; case "stop": return "停止视频回放"; + default: + return ""; } - break; case "ptz": switch (keyItemArray[3]) { case "control": return "云台控制"; case "front_end_command": return "通用前端控制命令"; + default: + return ""; } - break; case "gb_record": break; case "onvif": @@ -146,16 +163,18 @@ public class ApiSaveConstant { return "启用代理"; case "stop": return "停用代理"; + default: + return ""; } - break; case "push": switch (keyItemArray[3]) { case "save_to_gb": return "将推流添加到国标"; case "remove_form_gb": return "将推流移出到国标"; + default: + return ""; } - break; case "user": switch (keyItemArray[3]) { case "login": @@ -166,8 +185,11 @@ public class ApiSaveConstant { return "添加用户"; case "delete": return "删除用户"; + default: + return ""; } - break; + default: + return ""; } } return null; diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java b/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java index 2356b57b..95b22625 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java @@ -13,6 +13,7 @@ import java.io.IOException; /** * 处理匿名用户访问逻辑 + * @author lin */ @Component public class AnonymousAuthenticationEntryPoint implements AuthenticationEntryPoint { @@ -21,7 +22,6 @@ public class AnonymousAuthenticationEntryPoint implements AuthenticationEntryPoi @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) { -// logger.debug("用户需要登录,访问[{}]失败,AuthenticationException=[{}]", request.getRequestURI(), e.getMessage()); // 允许跨域 response.setHeader("Access-Control-Allow-Origin", "*"); // 允许自定义请求头token(允许head跨域) @@ -30,7 +30,8 @@ public class AnonymousAuthenticationEntryPoint implements AuthenticationEntryPoi JSONObject jsonObject = new JSONObject(); jsonObject.put("code", "-1"); jsonObject.put("msg", "请登录后重新请求"); - if (request.getRequestURI().contains("api/user/login")){ + String logUri = "api/user/login"; + if (request.getRequestURI().contains(logUri)){ jsonObject.put("msg", e.getMessage()); } response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceAlarmMethod.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceAlarmMethod.java new file mode 100644 index 00000000..ff8761ee --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceAlarmMethod.java @@ -0,0 +1,40 @@ +package com.genersoft.iot.vmp.gb28181.bean; + +/** + * 报警方式 + * @author lin + * 1为电话报警, 2为设备报警, 3为短信报警, 4为 GPS报警, 5为视频报警, 6为设备故障报警, + * 7其他报警;可以为直接组合如12为电话报警或 设备报警- + */ +public enum DeviceAlarmMethod { + // 1为电话报警 + Telephone(1), + + // 2为设备报警 + Device(2), + + // 3为短信报警 + SMS(3), + + // 4为 GPS报警 + GPS(4), + + // 5为视频报警 + Video(5), + + // 6为设备故障报警 + DeviceFailure(6), + + // 7其他报警 + Other(7); + + private final int val; + + DeviceAlarmMethod(int val) { + this.val=val; + } + + public int getVal() { + return val; + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java index fa20d518..b7e222df 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/AlarmNotifyMessageHandler.java @@ -32,7 +32,7 @@ import static com.genersoft.iot.vmp.gb28181.utils.XmlUtil.*; @Component public class AlarmNotifyMessageHandler extends SIPRequestProcessorParent implements InitializingBean, IMessageHandler { - private Logger logger = LoggerFactory.getLogger(AlarmNotifyMessageHandler.class); + private final Logger logger = LoggerFactory.getLogger(AlarmNotifyMessageHandler.class); private final String cmdType = "Alarm"; @Autowired @@ -85,24 +85,27 @@ public class AlarmNotifyMessageHandler extends SIPRequestProcessorParent impleme deviceAlarm.setAlarmPriority(getText(rootElement, "AlarmPriority")); deviceAlarm.setAlarmMethod(getText(rootElement, "AlarmMethod")); deviceAlarm.setAlarmTime(getText(rootElement, "AlarmTime")); - if (getText(rootElement, "AlarmDescription") == null) { + String alarmDescription = getText(rootElement, "AlarmDescription"); + if (alarmDescription == null) { deviceAlarm.setAlarmDescription(""); } else { - deviceAlarm.setAlarmDescription(getText(rootElement, "AlarmDescription")); + deviceAlarm.setAlarmDescription(alarmDescription); } - if (NumericUtil.isDouble(getText(rootElement, "Longitude"))) { - deviceAlarm.setLongitude(Double.parseDouble(getText(rootElement, "Longitude"))); + String longitude = getText(rootElement, "Longitude"); + if (longitude != null && NumericUtil.isDouble(longitude)) { + deviceAlarm.setLongitude(Double.parseDouble(longitude)); } else { deviceAlarm.setLongitude(0.00); } - if (NumericUtil.isDouble(getText(rootElement, "Latitude"))) { - deviceAlarm.setLatitude(Double.parseDouble(getText(rootElement, "Latitude"))); + String latitude = getText(rootElement, "Latitude"); + if (latitude != null && NumericUtil.isDouble(latitude)) { + deviceAlarm.setLatitude(Double.parseDouble(latitude)); } else { deviceAlarm.setLatitude(0.00); } if (!StringUtils.isEmpty(deviceAlarm.getAlarmMethod())) { - if ( deviceAlarm.getAlarmMethod().equals("4")) { + if ( deviceAlarm.getAlarmMethod().contains(DeviceAlarmMethod.GPS.getVal() + "")) { MobilePosition mobilePosition = new MobilePosition(); mobilePosition.setDeviceId(deviceAlarm.getDeviceId()); mobilePosition.setTime(deviceAlarm.getAlarmTime()); @@ -122,7 +125,7 @@ public class AlarmNotifyMessageHandler extends SIPRequestProcessorParent impleme } } if (!StringUtils.isEmpty(deviceAlarm.getDeviceId())) { - if (deviceAlarm.getAlarmMethod().equals("5")) { + if (deviceAlarm.getAlarmMethod().contains(DeviceAlarmMethod.Video.getVal() + "")) { deviceAlarm.setAlarmType(getText(rootElement.element("Info"), "AlarmType")); } } @@ -173,25 +176,28 @@ public class AlarmNotifyMessageHandler extends SIPRequestProcessorParent impleme deviceAlarm.setAlarmPriority(getText(rootElement, "AlarmPriority")); deviceAlarm.setAlarmMethod(getText(rootElement, "AlarmMethod")); deviceAlarm.setAlarmTime(getText(rootElement, "AlarmTime")); - if (getText(rootElement, "AlarmDescription") == null) { + String alarmDescription = getText(rootElement, "AlarmDescription"); + if (alarmDescription == null) { deviceAlarm.setAlarmDescription(""); } else { - deviceAlarm.setAlarmDescription(getText(rootElement, "AlarmDescription")); + deviceAlarm.setAlarmDescription(alarmDescription); } - if (NumericUtil.isDouble(getText(rootElement, "Longitude"))) { - deviceAlarm.setLongitude(Double.parseDouble(getText(rootElement, "Longitude"))); + String longitude = getText(rootElement, "Longitude"); + if (longitude != null && NumericUtil.isDouble(longitude)) { + deviceAlarm.setLongitude(Double.parseDouble(longitude)); } else { deviceAlarm.setLongitude(0.00); } - if (NumericUtil.isDouble(getText(rootElement, "Latitude"))) { - deviceAlarm.setLatitude(Double.parseDouble(getText(rootElement, "Latitude"))); + String latitude = getText(rootElement, "Latitude"); + if (latitude != null && NumericUtil.isDouble(latitude)) { + deviceAlarm.setLatitude(Double.parseDouble(latitude)); } else { deviceAlarm.setLatitude(0.00); } if (!StringUtils.isEmpty(deviceAlarm.getAlarmMethod())) { - if (deviceAlarm.getAlarmMethod().equals("5")) { + if (deviceAlarm.getAlarmMethod().contains(DeviceAlarmMethod.Video.getVal() + "")) { deviceAlarm.setAlarmType(getText(rootElement.element("Info"), "AlarmType")); } }