From 816041ed3de1133396bf0db4a8eadb45ae69d322 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 05 九月 2023 22:19:16 +0800
Subject: [PATCH] 同步视频

---
 ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java |    1 
 ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java               |    5 ++
 ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java           |    3 +
 ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java               |   75 +++++++++++++++++++++++++++++++++++++
 4 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java b/ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java
index 8c870e9..6de5eb9 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java
@@ -51,6 +51,7 @@
     @ApiOperation("娣诲姞")
     @LogSave(operationType = "鐐逛綅绠$悊", contain = "娣诲姞鐐逛綅")
     public CommonResult addVideoPoint(@RequestBody VideoPoint videoPoint) {
+        videoPoint.setType(0);
         return CommonResult.success(iVideoPointService.save(videoPoint));
     }
 
diff --git a/ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java b/ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java
index d2ecdb8..b4783b8 100644
--- a/ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java
+++ b/ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java
@@ -6,6 +6,7 @@
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Pattern;
@@ -19,10 +20,12 @@
 
     @NotBlank(message = "闂ㄥ簵鎵�鏈変汉涓嶈兘涓虹┖")
     @ApiModelProperty("濮撳悕")
+    @Length(min = 2,max = 10)
     private String owner;
 
     @NotBlank(message = "闂ㄥ簵鍚嶇О涓嶈兘涓虹┖")
     @ApiModelProperty("闂ㄥ簵鍚嶇О")
+    @Length(min = 2,max = 20)
     private String storeName;
 
     @NotBlank(message = "鎵嬫満鍙蜂笉鑳戒负绌�")
diff --git a/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java b/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
index afd026a..2dfb337 100644
--- a/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
+++ b/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
@@ -57,6 +57,7 @@
 
     /**
      * 璁惧閫氶亾鐮�
+     * 娴峰悍瀛楁 cameraIndexCode
      */
     @TableField("plat_resource_id")
     private String platResourceId;
@@ -105,6 +106,7 @@
 
     /**
      * 璁惧鐮�
+     * 娴峰悍瀛楁 deviceIndexCode
      */
     @TableField("code")
     private String code;
@@ -113,5 +115,8 @@
     @ApiModelProperty(value = "缃戞牸id")
     private Long gridId;
 
+    @TableField(value = "type")
+    @ApiModelProperty(value = "0-鍘熸潵澶у崕瑙嗛锛�1-鏂板鎺�100璺捣搴疯棰�")
+    private Integer type;
 
 }
diff --git a/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java
new file mode 100644
index 0000000..3a3b6c9
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java
@@ -0,0 +1,75 @@
+package com.ycl.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ycl.dto.video.Camera;
+import com.ycl.dto.video.PageResult;
+import com.ycl.entity.video.VideoPoint;
+import com.ycl.service.video.impl.IVideoPointService;
+import com.ycl.util.VideoUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鍚屾娴峰悍瑙嗛
+ */
+@Component
+public class SynchronizeHKVideo {
+
+    @Autowired
+    private IVideoPointService videoPointService;
+    @Autowired
+    private VideoUtil videoUtil;
+
+    @Scheduled(cron = "0/1 * * * * ?")   // 姣忕鎵ц
+//    @Scheduled(cron = "0 0/1 * ?")
+    @Transactional(rollbackFor = Exception.class)
+    public void scheduledTask() {
+        try {
+            findVideoList(1, 20);
+        } catch (Exception ex) {
+
+        }
+    }
+
+    private void findVideoList(Integer pageNo, Integer pageSize) throws Exception {
+        PageResult<Camera> pageResult = videoUtil.callPostCameras(pageNo, pageSize, "0");
+        if (pageResult.getTotal() > 0) {
+            if (pageResult.getList().size() > 0) {
+                saveVideoFromCamera(pageResult.getList());
+
+                if (pageResult.getList().size() >= pageSize) {
+                    findVideoList(pageNo + 1, pageSize);
+                }
+            }
+        }
+    }
+
+    private void saveVideoFromCamera(List<Camera> list) {
+
+        for (Camera c : list) {
+            LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>()
+                    .eq(VideoPoint::getPlatResourceId, c.getCameraIndexCode());
+            List<VideoPoint> pointList = videoPointService.list(queryWrapper);
+
+            if (pointList.size() == 0) {
+                VideoPoint videoPoint = new VideoPoint();
+                videoPoint.setType(1);
+                videoPoint.setName(c.getName());
+                videoPoint.setLatitude(Double.valueOf(c.getLatitude()));
+                videoPoint.setLongitude(Double.valueOf(c.getLatitude()));
+                videoPoint.setPlatResourceId(c.getCameraIndexCode());
+                videoPoint.setCode(c.getDeviceIndexCode());
+                videoPoint.setAddress(c.getInstallPlace());
+                videoPoint.setEquipmentBrand("娴峰悍");
+                videoPoint.setEquipmentModel(c.getCameraTypeName());
+
+                videoPointService.save(videoPoint);
+            }
+        }
+    }
+}

--
Gitblit v1.8.0