瀏覽代碼

美维大屏修改2

wwh 1 年之前
父節點
當前提交
28a22e1b10

+ 63 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/controller/CameraTestController.java

@@ -0,0 +1,63 @@
+package com.huimv.eartag2.api.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.eartag2.api.mapper.CameraTestMapper;
+import com.huimv.eartag2.api.pojo.CameraTest;
+import com.huimv.eartag2.api.pojo.pojovo.CameraTestVo;
+import com.huimv.eartag2.api.service.ICameraTestService;
+import com.huimv.eartag2.api.utils.IpUtil;
+import com.huimv.eartag2.common.utils.Result;
+import com.huimv.eartag2.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-04-19
+ */
+@RestController
+@RequestMapping("/camera-test")
+public class CameraTestController {
+    @Autowired
+    private ICameraTestService testService;
+
+    @GetMapping("/getUrl")
+    public void getUrl(HttpServletRequest request, @RequestParam(value = "farmId") Integer farmId) {
+        String ipAddr = IpUtil.getIpAddr(request);
+        QueryWrapper<CameraTest> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        List<CameraTest> areas = testService.list();
+        for (CameraTest area : areas) {
+            area.setIpAddr(ipAddr+":9080");
+            area.setUpdateDate(new Date());
+            testService.updateById(area);
+        }
+    }
+
+    @GetMapping("/list")
+    public Result list() {
+        List<CameraTest> areas = testService.list();
+        List<CameraTestVo> cameraTestVos = new ArrayList<>();
+        for (CameraTest area : areas) {
+            CameraTestVo vo = new CameraTestVo();
+            vo.setWsUrl("ws://" + area.getIpAddr() + "/camera_relay?tcpaddr=" + area.getAccount() + "%3A" + area.getPassword() + "%40" + area.getCameraIp());
+            vo.setRtspUrl("rtsp://" + area.getAccount() + ":" + area.getPassword() + "@" + area.getCameraIp() +" /stream1&channel=1");
+            vo.setCameraName(area.getCameraName());
+            cameraTestVos.add(vo);
+        }
+        return new Result(ResultCode.SUCCESS, cameraTestVos);
+    }
+
+
+}

+ 16 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/mapper/CameraTestMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.eartag2.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.eartag2.api.pojo.CameraTest;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-04-19
+ */
+public interface CameraTestMapper extends BaseMapper<CameraTest> {
+
+}

+ 5 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/mapper/xml/CameraTestMapper.xml

@@ -0,0 +1,5 @@
+<?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.huimv.eartag2.api.mapper.CameraTestMapper">
+
+</mapper>

+ 51 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/pojo/CameraTest.java

@@ -0,0 +1,51 @@
+package com.huimv.eartag2.api.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2024-04-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("camera_test")
+public class CameraTest implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * ip
+     */
+    private String ipAddr;
+
+    private Date updateDate;
+
+    private String farmId;
+
+    private String cameraIp;
+
+    private String account;
+
+    private String password;
+
+    private String cameraName;
+
+
+}

+ 10 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/pojo/pojovo/CameraTestVo.java

@@ -0,0 +1,10 @@
+package com.huimv.eartag2.api.pojo.pojovo;
+
+import lombok.Data;
+
+@Data
+public class CameraTestVo {
+    private String wsUrl;
+    private String RtspUrl;
+    private String cameraName;
+}

+ 16 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/service/ICameraTestService.java

@@ -0,0 +1,16 @@
+package com.huimv.eartag2.api.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.eartag2.api.pojo.CameraTest;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-04-19
+ */
+public interface ICameraTestService extends IService<CameraTest> {
+
+}

+ 20 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/service/impl/CameraTestServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.eartag2.api.service.impl;
+
+import com.huimv.eartag2.api.mapper.CameraTestMapper;
+import com.huimv.eartag2.api.pojo.CameraTest;
+import com.huimv.eartag2.api.service.ICameraTestService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-04-19
+ */
+@Service
+public class CameraTestServiceImpl extends ServiceImpl<CameraTestMapper, CameraTest> implements ICameraTestService {
+
+}

+ 53 - 0
huimv-eartag2-platform/huimv-eartag2-api/src/main/java/com/huimv/eartag2/api/utils/IpUtil.java

@@ -0,0 +1,53 @@
+package com.huimv.eartag2.api.utils;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+     * @Project : huimv.shiwan
+     * @Package : com.huimv.video.util
+     * @Description : 获取ip地址工具类
+     * @Author : yuxuexuan
+     * @Create : 2021/3/4 0006 14:28
+     **/
+    public class IpUtil {
+        public static String getIpAddr(HttpServletRequest request) {
+            String ipAddress = null;
+            try {
+                ipAddress = request.getHeader("x-forwarded-for");
+                if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                    ipAddress = request.getHeader("Proxy-Client-IP");
+                }
+                if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                    ipAddress = request.getHeader("WL-Proxy-Client-IP");
+                }
+                if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                    ipAddress = request.getRemoteAddr();
+                    if (ipAddress.equals("127.0.0.1")) {
+                        // 根据网卡取本机配置的IP
+                        InetAddress inet = null;
+                        try {
+                            inet = InetAddress.getLocalHost();
+                        } catch (UnknownHostException e) {
+                            e.printStackTrace();
+                        }
+                        ipAddress = inet.getHostAddress();
+                    }
+                }
+                // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
+                if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
+                    // = 15
+                    if (ipAddress.indexOf(",") > 0) {
+                        ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
+                    }
+                }
+            } catch (Exception e) {
+                ipAddress = "";
+            }
+            // ipAddress = this.getRequest().getRemoteAddr();
+
+            return ipAddress;
+        }
+
+    }