فهرست منبع

Merge remote-tracking branch 'origin/master'

sunhh 1 سال پیش
والد
کامیت
27bed8eb66

+ 44 - 0
business-service/src/main/java/com/ozs/entity/vo/AlarmHeartbeatLog.java

@@ -0,0 +1,44 @@
+package com.ozs.entity.vo;
+
+import com.ozs.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 第三方报警系统心跳监测日志表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-17
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("第三方报警系统心跳监测日志表")
+public class AlarmHeartbeatLog extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 授权类型,客户端模式(client_credentials)
+     */
+    private Integer grantType;
+
+    /**
+     * 客户端编号
+     */
+    private String clientId;
+   
+}

+ 19 - 0
business-service/src/main/java/com/ozs/mapper/AlarmHeartbeatLogMapper.java

@@ -0,0 +1,19 @@
+package com.ozs.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.entity.vo.AlarmHeartbeatLog;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * <p>
+ * 天网相机心跳监测日志表 Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-17
+ */
+@Mapper
+public interface AlarmHeartbeatLogMapper extends BaseMapper<AlarmHeartbeatLog> {
+    
+}

+ 4 - 0
business-service/src/main/resources/mapper/AlarmHeartbeatLogMapper.xml

@@ -0,0 +1,4 @@
+<?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.ozs.mapper.AlarmHeartbeatLogMapper">
+</mapper>

+ 56 - 5
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -24,6 +24,7 @@ import com.ozs.entity.SkynetHeartbeatLog;
 import com.ozs.entity.TerminalIgnoreAlarm;
 import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.vo.AlarmFilesVo;
+import com.ozs.entity.vo.AlarmHeartbeatLog;
 import com.ozs.entity.vo.AlarmInfoVo;
 import com.ozs.entity.vo.AlarmListVo;
 import com.ozs.entity.vo.CameraPlayVo;
@@ -41,6 +42,7 @@ import com.ozs.entity.vo.RespHeartbeatVo;
 import com.ozs.entity.vo.SkynetHeartbeatVo;
 import com.ozs.entity.vo.TerminalIgnoreVo;
 import com.ozs.framework.config.ServerConfig;
+import com.ozs.mapper.AlarmHeartbeatLogMapper;
 import com.ozs.mapper.SkynetHeartbeatLogMapper;
 import com.ozs.service.BaseCameraManagementService;
 import com.ozs.service.BaseRailwayManagementService;
@@ -136,6 +138,8 @@ public class GeoHazardMonitorTokenController {
     WebSocketCommon webSocketCommon;
     @Resource
     private SkynetHeartbeatLogMapper synetHeartbeatLogMapper;
+    @Resource
+    private AlarmHeartbeatLogMapper alarmHeartbeatLogMapper;
     @Value("${base.env}")
     private String env;
 
@@ -1161,7 +1165,6 @@ public class GeoHazardMonitorTokenController {
      * 天网相机心跳监测接口定义
      */
     @PostMapping("/api/skynet/heartbeat")
-    @Transactional
     public String skynetHeartbeat(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
@@ -1234,6 +1237,56 @@ public class GeoHazardMonitorTokenController {
         }
     }
 
+    /**
+     * 第三方报警系统心跳监测接口定义
+     */
+    @PostMapping("/api/alarm/heartbeat")
+    public String alarmHeartbeat(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
+        String token = apiTokenUtils.getGeoHazardMonitorToken(request);
+        log.info("token:{}", token);
+        log.info("parameter:{}", parameterVo);
+        JSONObject jsonObject = new JSONObject();
+        if (StringUtils.isNotEmpty(token)) {
+            String[] split = token.split("-");
+            String key = split[split.length - 1];
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), key);
+            SvcAddress svcAddress = JSON.parseObject(s, SvcAddress.class);
+            if (ObjectUtils.isEmpty(svcAddress.getGrantType())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "授权类型不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+            }
+            if (ObjectUtils.isEmpty(svcAddress.getClientId())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "客户端编号不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+            }
+            AlarmHeartbeatLog alarmHeartbeatLog =new AlarmHeartbeatLog();
+            alarmHeartbeatLog.setClientId(svcAddress.getClientId());
+            alarmHeartbeatLog.setGrantType(svcAddress.getGrantType());
+            if (alarmHeartbeatLogMapper.insert(alarmHeartbeatLog)>0){
+                Map<String, Object> map = new HashMap<>();
+                map.put("cameraCode", svcAddress.getClientId());
+                jsonObject.put("resultCode", 1);
+                jsonObject.put("message", "ok");
+                jsonObject.put("data", map);
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+            }else {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "新增失败");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+            }
+        } else {
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "token验证失败");
+            return JSONObject.toJSONString(jsonObject);
+        }
+    }
+
     @GetMapping("/test/{key}")
     public void test(@PathVariable String key) {
         String heartbeat = heartbeatUtils.getHeartbeat(key);
@@ -1263,10 +1316,8 @@ public class GeoHazardMonitorTokenController {
 
     public static void main(String[] args) {
         JSONObject res = new JSONObject();
-        res.put("railwayCode", "SHTL");
-        res.put("lineDir", 1);
-        res.put("cameraCode", "42010001541320000023");
-        res.put("installMile", 3000);
+        res.put("grantType", "1");
+        res.put("clientId", "1005");
         String s = SM4Utils.encryptData_ECB(JSONObject.toJSONString(res), "4370780c9a8c43e5");
         System.out.println(s);
     }