Selaa lähdekoodia

修改场景码传参

wuweihao 3 vuotta sitten
vanhempi
commit
522ff4f350

+ 3 - 4
gis_service/src/main/java/com/gis/YunDto.java

@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
-import java.util.List;
 
 /**
  * Created by owen on 2022/5/30 0030 10:12
@@ -13,9 +12,9 @@ import java.util.List;
 @Data
 public class YunDto {
 
-    @NotBlank(message = "场景码不能为空")
-    @ApiModelProperty(value = "该作品下的场景码", required = true)
-    private List<String> sceneCodes;
+//    @NotBlank(message = "场景码不能为空")
+//    @ApiModelProperty(value = "该作品下的场景码, 多个用逗号隔开", required = true)
+//    private String sceneCodes;
 
     @NotBlank(message = "oss环境不能为空")
     @ApiModelProperty(value = "oss环境(sit,全景看看sit, pro:全景看看pro)", required = true)

+ 31 - 9
gis_service/src/main/java/com/gis/service/impl/AliOssServiceImpl.java

@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -56,15 +57,15 @@ public class AliOssServiceImpl implements AliOssService {
         // 2.下载someData.json
         downloadSomeDataJson(workId);
 
-        // 3.下载场景
-        downloadScenes(param);
-
-        // 4. 获取导览图集合
+        // 4. 获取导览图集合, key:场景码
         HashMap<String, String> guideThumbs = getGuideThumbBySomeData(workId);
 
         // 5.下载导览图
         downloadGuideThumb(guideThumbs, workId);
 
+        // 3.下载场景
+        downloadScenes(guideThumbs, workId, param.getEvn());
+
         // 6.压缩zip
         zipWork(workId);
         String outPath = configConstant.serverBasePath + "/download/" + workId +".zip";
@@ -88,27 +89,47 @@ public class AliOssServiceImpl implements AliOssService {
 
     /**
      * 下载场景目录
-     * @param param
      */
-    private void downloadScenes(YunDto param){
-        List<String> sceneCodes = param.getSceneCodes();
+    private void downloadScenes(List<String> sceneCodes, String workId, String evn){
         log.info("输入场景码数量: {}", sceneCodes.size());
 
-        String bucket = bucketMap.get(param.getEvn());
+        String bucket = bucketMap.get(evn);
         BaseRuntimeException.isNull(bucket, null, "bucket环境不能为空");
 
         int i = 1;
         for (String sceneCode : sceneCodes) {
-            downloadOss(sceneCode, bucket, param.getWorkId());
+            downloadOss(sceneCode, bucket, workId);
+            log.info("第:{} 下载完成, 场景为:{}",  i, sceneCode);
+            i++;
+        }
+    }
+
+    /**
+     * 下载场景目录
+     */
+    private void downloadScenes(HashMap<String, String> guideThumbs, String workId, String evn){
+        log.info("输入场景码数量: {}", guideThumbs.size());
+
+        String bucket = bucketMap.get(evn);
+        BaseRuntimeException.isNull(bucket, null, "bucket环境不能为空");
+
+        int i = 1;
+        for (Map.Entry<String, String> entry : guideThumbs.entrySet()) {
+            String sceneCode = entry.getKey();
+            downloadOss(sceneCode, bucket, workId);
             log.info("第:{} 下载完成, 场景为:{}",  i, sceneCode);
             i++;
         }
+        log.info("场景已下载完成");
+
+
     }
 
     /**
      * 2022-5-30
      * 建议前端将导览图片固定命名
      * 通过读取someData.json获取导图图片
+     * key:场景码
      *
      * @param workId
      */
@@ -122,6 +143,7 @@ public class AliOssServiceImpl implements AliOssService {
         for (Object scene : scenes) {
             // 场景对象
             JSONObject row = JSONObject.parseObject(scene.toString());
+            // key:场景码
             resMap.put(row.getString("sceneCode"), row.getString("icon"));
         }
         log.info("处理导览图片完成, 图片数量: {}", resMap.size());