Browse Source

添加车载终端第三方接口

gao.qiang 1 year ago
parent
commit
dc97bda6ed

+ 37 - 0
business-service/src/main/java/com/ozs/entity/BaseTerminalLog.java

@@ -0,0 +1,37 @@
+package com.ozs.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 车载心跳日志表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseTerminalLog extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     *终端编码
+     */
+    private String terminalCode;
+}

+ 12 - 0
business-service/src/main/java/com/ozs/mapper/BaseTerminalLogMapper.java

@@ -0,0 +1,12 @@
+package com.ozs.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.entity.BaseTerminalLog;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 车载心跳日志表 Mapper接口
+ */
+@Mapper
+public interface BaseTerminalLogMapper extends BaseMapper<BaseTerminalLog> {
+}

+ 11 - 0
business-service/src/main/java/com/ozs/service/BaseTerminalLogService.java

@@ -0,0 +1,11 @@
+package com.ozs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.entity.BaseTerminalLog;
+
+/**
+ * 车载心跳日志表 服务类
+ * @author Administrator
+ */
+public interface BaseTerminalLogService extends IService<BaseTerminalLog> {
+}

+ 14 - 0
business-service/src/main/java/com/ozs/service/impl/BaseTerminalLogServiceImpl.java

@@ -0,0 +1,14 @@
+package com.ozs.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.entity.BaseTerminalLog;
+import com.ozs.mapper.BaseTerminalLogMapper;
+import com.ozs.service.BaseTerminalLogService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 车载心跳日志表 服务实现类
+ */
+@Service
+public class BaseTerminalLogServiceImpl extends ServiceImpl<BaseTerminalLogMapper, BaseTerminalLog> implements BaseTerminalLogService {
+}

+ 11 - 5
business-service/src/main/java/com/ozs/utils/CameraUtil.java

@@ -16,10 +16,12 @@ import com.ozs.common.utils.DateUtils;
 import com.ozs.common.utils.HttpClientUtil;
 import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.entity.BaseTerminal;
+import com.ozs.entity.BaseTerminalLog;
 import com.ozs.entity.MsgHeartbeatAlarmMessage;
 import com.ozs.entity.vo.CamerasVo;
 import com.ozs.entity.vo.PlaybackVo;
 import com.ozs.framework.config.ServerConfig;
+import com.ozs.service.BaseTerminalLogService;
 import com.ozs.service.BaseTerminalService;
 import com.ozs.service.MsgHeartbeatAlarmMessageService;
 import com.ozs.system.mapper.SysDictDataMapper;
@@ -32,6 +34,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -113,6 +116,9 @@ public class CameraUtil {
     @Autowired
     private RtspToMP4 rtspToMP4;
 
+    @Resource
+    private BaseTerminalLogService baseTerminalLogService;
+
     private Map<String, Process> map = new HashMap<>();
 
     public final static String tsFilekey = "mergeVideoTsFile";
@@ -887,18 +893,18 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
     public void heartbeat() {
         List<BaseTerminal> list = baseTerminalService.list();
         for (BaseTerminal baseTerminal : list) {
-            QueryWrapper<MsgHeartbeatAlarmMessage> wrapper = new QueryWrapper<>();
-            wrapper.eq("terminal_code", wrapper);
+            QueryWrapper<BaseTerminalLog> wrapper = new QueryWrapper<>();
+            wrapper.eq("terminal_code", baseTerminal);
             wrapper.orderByDesc("create_time");
             wrapper.last("limit 1");
-            MsgHeartbeatAlarmMessage msgHeartbeatAlarmMessage = msgHeartbeatAlarmMessageService.getOne(wrapper);
-            if (ObjectUtils.isEmpty(msgHeartbeatAlarmMessage)) {
+            BaseTerminalLog baseTerminalLog = baseTerminalLogService.getOne(wrapper);
+            if (ObjectUtils.isEmpty(baseTerminalLog)) {
                 baseTerminal.setStatus(2);
                 baseTerminalService.updateById(baseTerminal);
             } else {
                 List<SysDictData> heartbeat = dictTypeService.selectDictDataByType("heartbeat");
                 long timeNow = System.currentTimeMillis();
-                long createTime = msgHeartbeatAlarmMessage.getCreateTime().getTime();
+                long createTime = baseTerminalLog.getCreateTime().getTime();
                 int times = Integer.parseInt(heartbeat.get(0).getDictValue());
                 long thereHourMillis = 60 * 1000 * 3 * times;
                 long timeNew = timeNow - thereHourMillis;

+ 4 - 0
business-service/src/main/resources/mapper/BaseTerminalLogMapper.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.BaseTerminalLogMapper">
+</mapper>

+ 50 - 3
vehicle-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ozs.common.core.domain.entity.SysDictData;
-import com.ozs.common.core.redis.RedisCache;
 import com.ozs.common.utils.ApiTokenUtils;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.ChineseToPingyin;
@@ -18,6 +17,7 @@ import com.ozs.entity.BaseCameraManagement;
 import com.ozs.entity.BaseRailwayManagement;
 import com.ozs.entity.BaseRouteMassage;
 import com.ozs.entity.BaseTerminal;
+import com.ozs.entity.BaseTerminalLog;
 import com.ozs.entity.BaseUser;
 import com.ozs.entity.BaseVehicleTerminal;
 import com.ozs.entity.MsgAlarm;
@@ -53,6 +53,7 @@ import com.ozs.mapper.SkynetHeartbeatLogMapper;
 import com.ozs.service.BaseCameraManagementService;
 import com.ozs.service.BaseRailwayManagementService;
 import com.ozs.service.BaseRouteMassageService;
+import com.ozs.service.BaseTerminalLogService;
 import com.ozs.service.BaseTerminalService;
 import com.ozs.service.BaseUserService;
 import com.ozs.service.BaseVehicleTerminalService;
@@ -62,7 +63,6 @@ import com.ozs.service.MsgAlarmService;
 import com.ozs.service.SvcAddressService;
 import com.ozs.service.TerminalIgnoreAlarmService;
 import com.ozs.service.VehiclePositionService;
-import com.ozs.system.service.ISysDictDataService;
 import com.ozs.system.service.ISysDictTypeService;
 import com.ozs.utils.CameraUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -80,7 +80,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -150,6 +149,8 @@ public class GeoHazardMonitorTokenController {
     private String sdkUrl;
     @Autowired
     private ISysDictTypeService dictTypeService;
+    @Resource
+    private BaseTerminalLogService baseTerminalLogService;
 
     /**
      * 获取web访问令牌
@@ -1451,6 +1452,52 @@ public class GeoHazardMonitorTokenController {
         }
     }
 
+
+    /**
+     * 车载心跳监测接口定义
+     */
+    @PostMapping("/api/terminal/heartbeatHeartbeat")
+    public String heartbeatHeartbeat(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
+        String token = apiTokenUtils.getGeoHazardMonitorToken(request);
+        log.info("token:{}", token);
+        log.info("parameterVo:{}", parameterVo);
+        JSONObject jsonObject = new JSONObject();
+        if (StringUtils.isNotEmpty(token)) {
+            String[] split = token.split("-");
+            String key = split[split.length - 1];
+            if (ObjectUtils.isEmpty(parameterVo)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "parameterVo参数不能为空");
+                jsonObject.put("data", "");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+            }
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), key);
+            BaseTerminalLog baseTerminalLog = JSON.parseObject(s, BaseTerminalLog.class);
+            if (ObjectUtils.isEmpty(baseTerminalLog.getTerminalCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "终端编码不能为空");
+                jsonObject.put("data", "");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+            }
+            if (baseTerminalLogService.save(baseTerminalLog)) {
+                jsonObject.put("resultCode", 1);
+                jsonObject.put("message", "ok");
+                jsonObject.put("data", "");
+                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", "token验证失败");
+            jsonObject.put("data", "");
+            return JSONObject.toJSONString(jsonObject);
+        }
+    }
+
     @GetMapping("/test/{key}")
     public void test(@PathVariable String key) {
         String heartbeat = heartbeatUtils.getHeartbeat(key);