Browse Source

算法指定切图方式需求,下载时根据sceneKind字段判断,如果是face表示已经切好图,不需要实时切图

dengsixing 3 years ago
parent
commit
3b89fb4844

+ 4 - 4
4dkankan-center-scene-download/src/main/java/com/fdkankan/download/service/impl/SceneDownloadHandlerServiceImpl.java

@@ -186,10 +186,10 @@ public class SceneDownloadHandlerServiceImpl {
                 resolution = "2k";
             }
             //如果是已经切好图的场景,不需要再切图了
-            String sceneResolution = sceneJson.getStr("sceneResolution");
-            if(SceneResolution.TILES.code().equals(sceneResolution)){
-                resolution = "notNeadCut";
-            }
+//            String sceneResolution = sceneJson.getStr("sceneResolution");
+//            if(SceneResolution.TILES.code().equals(sceneResolution)){
+//                resolution = "notNeadCut";
+//            }
             String sceneKind = sceneJson.getStr("sceneKind");
             if(StrUtil.isNotEmpty(sceneKind) && SceneKind.FACE.code().equals(sceneKind)){
                 resolution = "notNeadCut";

+ 5 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java

@@ -135,6 +135,11 @@ public class SceneJsonBean {
     private String sceneFrom;
 
     /**
+     * 切图方式(tiles:瓦片图,face:切片图,pan:全景图 ,local:本地切片,cube:立体图)
+     */
+    private String sceneKind;
+
+    /**
      * 空间视频数据
      */
     private String boxVideos;

+ 7 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java

@@ -107,7 +107,7 @@ public class ScenePlusExt implements Serializable {
     private String buildType;
 
     /**
-     * 全景图加载方式,tiles/1k:1k瓦片图,tiles/2:2k瓦片图,tiles/4k:4k瓦片图,pan:全景图 ,local:本地切片,cube:立体图
+     * 分辨率(2k,4k)
      */
     @TableField("scene_resolution")
     private String sceneResolution;
@@ -119,6 +119,12 @@ public class ScenePlusExt implements Serializable {
     private String sceneFrom;
 
     /**
+     * 切图方式(tiles:瓦片图,face:切片图,pan:全景图 ,local:本地切片,cube:立体图)
+     */
+    @TableField("scene_kind")
+    private String sceneKind;
+
+    /**
      * 计算耗时
      */
     @TableField("compute_time")

+ 7 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneProExt.java

@@ -92,7 +92,7 @@ public class SceneProExt implements Serializable {
     private Integer sceneSource;
 
     /**
-     * 全景图加载方式,tiles/1k:1k瓦片图,tiles/2:2k瓦片图,tiles/4k:4k瓦片图,pan:全景图 ,local:本地切片,cube:立体图
+     * 分辨率(2k,4k)
      */
     @TableField("scene_resolution")
     private String sceneResolution;
@@ -104,6 +104,12 @@ public class SceneProExt implements Serializable {
     private String sceneFrom;
 
     /**
+     * 切图方式(tiles:瓦片图,face:切片图,pan:全景图 ,local:本地切片,cube:立体图)
+     */
+    @TableField("scene_kind")
+    private String sceneKind;
+
+    /**
      * 大场景序号(随心装场景码)
      */
     @TableField("vrnum")

+ 2 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/mapper/ISceneUpgradeMapper.java

@@ -5,6 +5,7 @@ import com.fdkankan.scene.entity.Folder;
 import com.fdkankan.scene.vo.FolderVO;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -19,7 +20,7 @@ public interface ISceneUpgradeMapper extends BaseMapper {
 
     public void transferScenePro(Long sceneProId);
 
-    public void transferSceneProExt(Long sceneProId);
+    public void transferSceneProExt(@Param("sceneProId") Long sceneProId, @Param("sceneKind") String sceneKind);
 
     public void transferScenePlus(Long sceneProId);
 

+ 1 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -259,6 +259,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         sceneJson.setSceneResolution(scenePlusExt.getSceneResolution());
         sceneJson.setSceneFrom(scenePlusExt.getSceneFrom());
+        sceneJson.setSceneKind(scenePlusExt.getSceneKind());
         if(StrUtil.isNotEmpty(scenePlusExt.getVideos())){
             sceneJson.setVideos(scenePlusExt.getVideos());
         }

+ 3 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneUpgradeToV4Service.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.SceneKind;
 import com.fdkankan.common.constant.SceneResolution;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
@@ -138,7 +139,8 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
             sceneUpgradeMapper.deleteScenePro(sceneProV3.getId());
             sceneUpgradeMapper.transferScenePro(sceneProV3.getId());
             sceneUpgradeMapper.deleteSceneProExt(sceneProV3.getId());
-            sceneUpgradeMapper.transferSceneProExt(sceneProV3.getId());
+            sceneUpgradeMapper.transferSceneProExt(sceneProV3.getId(),
+                sceneProV3.getSceneScheme() == 3 ? SceneKind.FACE.code():SceneKind.TILES.code());
 
             //国际版需要兼容切片图
             ScenePro scenePro = sceneProService.getById(sceneProV3.getId());

+ 6 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -118,6 +119,11 @@ public class SceneInfoVO {
     private String sceneFrom;
 
     /**
+     * 切图方式(tiles:瓦片图,face:切片图,pan:全景图 ,local:本地切片,cube:立体图)
+     */
+    private String sceneKind;
+
+    /**
      * 空间视频数据
      */
     private String boxVideos;

+ 9 - 8
4dkankan-center-scene/src/main/resources/mapper/scene/SceneUpgradeMapper.xml

@@ -11,16 +11,16 @@
     FROM `t_scene_pro_v3` t WHERE t.id = #{sceneProId}
   </insert>
 
-  <insert id="transferSceneProExt" parameterType="java.lang.Long">
+  <insert id="transferSceneProExt">
     INSERT INTO t_scene_pro_ext(scene_pro_id, data_source, phone_id, recommend, files_name, `algorithm`, ecs,
-    `space`, firmware_version,compute_time,scene_source,vrnum,scene_resolution ,scene_from,`unicode`,view_count,shoot_count,create_time,update_time,tb_status)
+    `space`, firmware_version,compute_time,scene_source,vrnum,scene_resolution ,scene_from, scene_kind,`unicode`,view_count,shoot_count,create_time,update_time,tb_status)
     SELECT t.`id`, t.`data_source`, t.`phone_id`, t.`recommend`, t.`files_name`, t.`algorithm`, t.`ecs`,
     t.`space`, t.`firmware_version`, t.`compute_time`, t.`scene_source`, t.`vrnum`,
     CASE
-      WHEN t.scene_source = 1 THEN 'tiles/2k'
-      WHEN t.scene_source = 2 THEN 'tiles/1k'
-      WHEN t.scene_source = 3 THEN 'tiles/4k'
-      WHEN t.scene_source = 4 THEN 'tiles/4k'
+      WHEN t.scene_source = 1 THEN '2k'
+      WHEN t.scene_source = 2 THEN '1k'
+      WHEN t.scene_source = 3 THEN '4k'
+      WHEN t.scene_source = 4 THEN '4k'
       ELSE NULL
      END AS scene_resolution,
     CASE
@@ -30,6 +30,7 @@
       WHEN t.scene_source = 4 THEN 'laser'
       ELSE NULL
      END AS scene_from,
+    #{sceneKind} scene_kind,
     t.`unicode`, t.`view_count`, t.`shoot_count`, t.`create_time`, t.`update_time`,
     case when t.rec_status = 'A' then 0 else 1 end as tb_status
     FROM `t_scene_pro_v3` t WHERE t.id = #{sceneProId}
@@ -48,10 +49,10 @@
   <insert id="transferScenePlusExt" parameterType="java.lang.Long">
     INSERT INTO t_scene_plus_ext(plus_id, data_source, web_site,thumb,scene_scheme,SPACE,ecs,
     shoot_count,view_count,gps,ALGORITHM,firmware_version,build_type,create_time,update_time,tb_status,
-    scene_resolution, scene_from, videos)
+    scene_resolution, scene_from, scene_kind, videos)
     SELECT pro.id, ext.`data_source`, pro.`web_site`, pro.`thumb`, pro.`scene_scheme`, ext.`space`, ext.`ecs`,
     ext.`shoot_count`, ext.`view_count`, pro.`gps`, ext.`algorithm`, ext.`firmware_version`, pro.`build_type`, pro.`create_time`, pro.`update_time`, pro.`tb_status`,
-    ext.scene_resolution, ext.scene_from, pro.videos
+    ext.scene_resolution, ext.scene_from, scene_kind, pro.videos
     FROM t_scene_pro pro
     LEFT JOIN t_scene_pro_ext ext ON pro.id = ext.scene_pro_id
     WHERE pro.id = #{sceneProId}