xiewj преди 1 година
родител
ревизия
3550a08c62

+ 26 - 0
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/OpenSceneMigrateDto.java

@@ -0,0 +1,26 @@
+package com.gis.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2021/11/23
+ */
+@Data
+public class OpenSceneMigrateDto {
+
+
+    @ApiModelProperty(value = "相机码")
+    private String snCode;
+    @ApiModelProperty(value = "迁移相机码")
+    private String toSnCode;
+    @ApiModelProperty(value = "用户Id")
+    private Integer userId;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "场景码")
+    private String sceneCode;
+    @ApiModelProperty(value = "来源")
+    private String dataSource;
+}

+ 110 - 0
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/listener/SceneMigrateListener.java

@@ -0,0 +1,110 @@
+package com.gis.listener;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.gis.constant.CmdConstant;
+import com.gis.constant.ConfigConstant;
+import com.gis.entity.OpenSceneMigrateDto;
+import com.gis.entity.WorkEntity;
+import com.gis.exception.BaseRuntimeException;
+import com.gis.mq.RabbitMqProducerUtil;
+import com.gis.oss.util.AliYunOssUtil;
+import com.gis.oss.util.FileAndOssUtil;
+import com.gis.service.ScenePanoService;
+import com.gis.service.WorkService;
+import com.gis.util.CmdUtils;
+import com.gis.util.FileUtils;
+import com.gis.util.QrCodeUtils;
+import com.gis.util.RandomUtils;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.Queue;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 消息监听器
+ *
+ * @author Xiewj
+ * @version 1.0
+ * @since 2023/08/07
+ */
+@Component
+@Slf4j
+public class SceneMigrateListener {
+
+    @Autowired
+    AliYunOssUtil aliyunOssUtil;
+    @Autowired
+    ConfigConstant configConstant;
+    @Autowired
+    FileAndOssUtil fileAndOssUtil;
+    @Autowired
+    WorkService workService;
+    @Autowired
+    QrCodeUtils qrCodeUtils;
+    @Autowired
+    ScenePanoService scenePanoService;
+    @Autowired
+    RabbitMqProducerUtil rabbitMqProducerUtil;
+    /**
+     * 全景场景初始化方法
+     *
+     * @param channel
+     * @param message
+     * @throws Exception the io exception  这里异常需要处理
+     */
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.pano-migrate-scene-queue}"),concurrency = "1"
+    )
+    public void migrateSceneQueue(Channel channel, Message message) throws IOException {
+            if (ObjectUtils.isEmpty(message.getBody())) {
+                log.error("消息内容为空,退出构建,当前服务器id:{}" );
+                return;
+            }
+        String traceId = System.currentTimeMillis()+"";
+        MDC.put("TRACE_ID", traceId);
+        long deliveryTag = message.getMessageProperties().getDeliveryTag();
+        try {
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            String messageId = message.getMessageProperties().getMessageId();
+            log.info("场景migrateSceneQueue开始,id:{},deliveryTag:{},消息体:{}", messageId,deliveryTag,msg);
+            OpenSceneMigrateDto param = JSONObject.parseObject(JSON.parse(msg).toString(), OpenSceneMigrateDto.class);
+            if (StrUtil.isNotEmpty(param.getSceneCode())&&StrUtil.isEmpty(param.getSnCode())) {
+                WorkEntity workEntity=workService.findByNum(param.getSceneCode());
+                if (ObjectUtils.isEmpty(workEntity)) {
+                    workEntity.setSnCode(param.getToSnCode());
+                    workEntity.setUserId(param.getPhone());
+                    workService.update(workEntity);
+                }
+            }
+        }catch (Exception e){
+            channel.basicAck(deliveryTag, false);
+            log.error("场景migrateSceneQueue报错{}",e.getMessage());
+            e.printStackTrace();
+        }
+        channel.basicAck(deliveryTag, false);
+    }
+
+}

+ 4 - 1
720yun_fd_consumer/gis_consumer/src/main/resources/application-dev.yml

@@ -56,4 +56,7 @@ tlog:
     enable-invoke-time-print: true
 queue:
     scene-queue: queue-pano-scene
-    do-slice-queue: queue-do-slice
+    do-slice-queue: queue-do-slice
+    relics-init-queue: relics-init-queue
+    relics-update-name-queue: relics-update-name-queue
+    pano-migrate-scene-queue: pano-migrate-scene-queue

+ 2 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-loc-site.yml

@@ -67,5 +67,7 @@ tlog:
 queue:
     scene-queue: queue-pano-scene
     do-slice-queue: queue-do-slice
+    pano-migrate-scene-queue: pano-migrate-scene-queue
+
 domain:
     4dkk: https://test.4dkankan.com

+ 4 - 1
720yun_fd_consumer/gis_consumer/src/main/resources/application-loc.yml

@@ -56,4 +56,7 @@ tlog:
     enable-invoke-time-print: true
 queue:
     scene-queue: queue-pano-scene
-    do-slice-queue: queue-do-slice
+    do-slice-queue: queue-do-slice
+    relics-init-queue: relics-init-queue
+    relics-update-name-queue: relics-update-name-queue
+    pano-migrate-scene-queue: pano-migrate-scene-queue

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-pro.yml

@@ -79,3 +79,4 @@ queue:
     do-slice-queue: queue-do-slice
     relics-init-queue: relics-init-queue
     relics-update-name-queue: relics-update-name-queue
+    pano-migrate-scene-queue: pano-migrate-scene-queue

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-sit.yml

@@ -65,3 +65,4 @@ queue:
     do-slice-queue: queue-do-slice
     relics-init-queue: relics-init-queue
     relics-update-name-queue: relics-update-name-queue
+    pano-migrate-scene-queue: pano-migrate-scene-queue

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-sitAws.yml

@@ -54,3 +54,4 @@ spring:
         virtual-host: /
 tlog:
     enable-invoke-time-print: true
+    pano-migrate-scene-queue: pano-migrate-scene-queue