Bladeren bron

v4.13.0 增加 mq消费者更新场景方向

dengsixing 1 jaar geleden
bovenliggende
commit
8491f8161e

+ 2 - 0
src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java

@@ -238,5 +238,7 @@ public class SceneJsonBean {
 
     private Integer floorLogoType;
 
+    private String orientation;
+
 
 }

+ 5 - 2
src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java

@@ -12,10 +12,10 @@ import lombok.Setter;
 
 /**
  * <p>
- * 
+ *
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-03-16
  */
 @Getter
@@ -151,6 +151,9 @@ public class ScenePlusExt implements Serializable {
     @TableField("yun_file_bucket")
     private String yunFileBucket;
 
+    @TableField("orientation")
+    private String orientation;
+
     /**
      * 创建时间
      */

+ 13 - 6
src/main/java/com/fdkankan/scene/listener/RabbitMqListener.java

@@ -7,6 +7,8 @@ import com.fdkankan.scene.service.IDownloadTourVideoService;
 import com.fdkankan.scene.service.ISceneService;
 import com.rabbitmq.client.Channel;
 import java.nio.charset.StandardCharsets;
+import java.util.Map;
+
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.core.Message;
 import org.springframework.amqp.rabbit.annotation.Queue;
@@ -82,15 +84,20 @@ public class RabbitMqListener {
      * concurrency = "3"    设置消费线程数,每个线程每次只拉取一条消息消费
      */
     @RabbitListener(
-        queuesToDeclare = @Queue("test_dsx")
+        queuesToDeclare = @Queue("queue.scene.save-scene-orientation:save-scene-orientation")
     )
-    public void test(Channel channel, Message message) throws Exception {
+    public void saveSceneOrientation(Channel channel, Message message) throws Exception {
         String messageId = message.getMessageProperties().getMessageId();
         String msg = new String(message.getBody(), StandardCharsets.UTF_8);
-        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
-        log.info("开始消费消息,id:{},queue:{},content:{}", messageId, "test_dsx", msg);
-        Thread.sleep(10000L);
-        log.info("deliverTag:" + message.getMessageProperties().getDeliveryTag());
+        log.info("开始消费消息,id:{},queue:{},content:{}", messageId, "save-scene-orientation", msg);
+        try {
+            Map<String, String> map = JSON.parseObject(msg, Map.class);
+            sceneService.saveSceneOientation(map);
+        }catch (Exception e){
+            log.error("更新场景方向报错", e);
+        }finally {
+            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+        }
         log.info("结束消费消息,id:{}", messageId);
     }
 

+ 4 - 0
src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -5,6 +5,8 @@ import com.fdkankan.web.response.ResultData;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.Map;
+
 public interface ISceneService {
 
     ResultData uploadBodySegment(MultipartFile file,Integer rotate) throws Exception;
@@ -13,4 +15,6 @@ public interface ISceneService {
 
     ResultData getBodySegmentStatus(String uuid);
 
+    void saveSceneOientation(Map<String, String> map);
+
 }

+ 21 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -17,6 +17,10 @@ import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.bean.BodySegmentStatusBean;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
+import com.fdkankan.scene.service.IScenePlusExtService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneService;
 import com.fdkankan.scene.util.OssBodySegmentUtil;
 import com.fdkankan.web.response.ResultData;
@@ -59,6 +63,10 @@ public class SceneServiceImpl implements ISceneService {
     private FYunFileServiceInterface fYunFileService;
     @Autowired
     public FYunFileConfig fYunFileConfig;
+    @Autowired
+    public IScenePlusService scenePlusService;
+    @Autowired
+    public IScenePlusExtService scenePlusExtService;
 
     @Override
     public ResultData uploadBodySegment(MultipartFile file, Integer rotate) throws Exception {
@@ -157,6 +165,19 @@ public class SceneServiceImpl implements ISceneService {
     }
 
     @Override
+    public void saveSceneOientation(Map<String, String> map) {
+        String num = map.get("num");
+        String orientation = map.get("orientation");
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus)){
+            return;
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        scenePlusExt.setOrientation(orientation);
+        scenePlusExtService.updateById(scenePlusExt);
+    }
+
+    @Override
     public ResultData getBodySegmentStatus(String uuid) {
 
         String progress = redisUtil.get(String.format(RedisKey.SCENE_BODY_SEGMENT, uuid));

+ 1 - 0
src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -266,5 +266,6 @@ public class SceneInfoVO {
 
     private Integer floorLogoType;
 
+    private Float orientation;
 
 }