Browse Source

江门1.6.0

dengsixing 8 tháng trước cách đây
mục cha
commit
7bd23d37ff

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

@@ -236,5 +236,7 @@ public class SceneJsonBean {
     //动态面板
     private int dynamicPanel;
 
+    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;
+
     /**
      * 创建时间
      */

+ 25 - 0
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;
@@ -94,5 +96,28 @@ public class RabbitMqListener {
 //        log.info("结束消费消息,id:{}", messageId);
 //    }
 
+    /**
+     * 开启了手动确认模式,如果没有手动确认,消费者不会重试,当服务重启时会再次消费,因为rabbitmq认为你还没有处理完你的业务
+     * queuesToDeclare = @Queue("${queue.modeling.modeling-test}"),  如果队列不不存在会自动创建队列
+     * concurrency = "3"    设置消费线程数,每个线程每次只拉取一条消息消费
+     */
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.scene.save-scene-orientation:save-scene-orientation}")
+    )
+    public void saveSceneOrientation(Channel channel, Message message) throws Exception {
+        String messageId = message.getMessageProperties().getMessageId();
+        String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+        log.info("开始消费消息,id:{},queue:{},content:{}", messageId, "save-scene-orientation", msg);
+        try {
+            Map<String, Object> 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, Object> map);
+
 }

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

@@ -6,6 +6,7 @@ import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.lang.UUID;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.CommonOperStatus;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
@@ -20,6 +21,9 @@ 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;
@@ -60,6 +64,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 {
@@ -158,6 +166,24 @@ public class SceneServiceImpl implements ISceneService {
     }
 
     @Override
+    public void saveSceneOientation(Map<String, Object> map) {
+        String num = (String) map.get("num");
+        String orientation = (String)map.get("orientation");
+        Integer status = (Integer)map.get("status");
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus)){
+            return;
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        if(status == 0){
+            scenePlusExtService.update(new LambdaUpdateWrapper<ScenePlusExt>().eq(ScenePlusExt::getId, scenePlusExt.getId()).setSql("orientation = null"));
+        }else{
+            scenePlusExt.setOrientation(orientation);
+            scenePlusExtService.updateById(scenePlusExt);
+        }
+    }
+
+    @Override
     public ResultData getBodySegmentStatus(String uuid) {
 
         String progress = redisUtil.get(String.format(RedisKey.SCENE_BODY_SEGMENT, uuid));

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

@@ -264,5 +264,7 @@ public class SceneInfoVO {
 
     private Integer payStatus;
 
+    private String orientation;
+
 
 }