xiewj 1 tahun lalu
induk
melakukan
b3bb2a1efd

+ 4 - 1
720yun_fd_manage/gis_service/src/main/java/com/gis/service/ScenePanoService.java

@@ -2,6 +2,8 @@ package com.gis.service;
 
 import com.gis.domain.entity.ScenePanoEntity;
 
+import java.util.List;
+
 /**
  * 四维看看场景全景图表 服务类接口
  *
@@ -9,5 +11,6 @@ import com.gis.domain.entity.ScenePanoEntity;
  * @since 2024-04-03 18:01
  */
 public interface ScenePanoService extends IBaseService<ScenePanoEntity,Long> {
-
+    ScenePanoEntity findByWorkIdAndName(String workId, String imgName);
+    List<ScenePanoEntity> findByWorkId(String workId);
 }

+ 16 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/ScenePanoServiceImpl.java

@@ -7,6 +7,8 @@ import com.gis.mapper.ScenePanoMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 四维看看场景全景图表 服务实现类
  *
@@ -22,4 +24,18 @@ public class ScenePanoServiceImpl extends IBaseServiceImpl<ScenePanoEntity, Long
     public IBaseMapper<ScenePanoEntity, Long> getBaseMapper() {
         return this.scenePanoMapper;
     }
+    @Override
+    public ScenePanoEntity findByWorkIdAndName(String workId, String imgName) {
+        ScenePanoEntity one=new ScenePanoEntity();
+        one.setWorkId(workId);
+        one.setName(imgName);
+        return getBaseMapper().selectOne(one);
+    }
+
+    @Override
+    public List<ScenePanoEntity> findByWorkId(String workId) {
+        ScenePanoEntity one=new ScenePanoEntity();
+        one.setWorkId(workId);
+        return getBaseMapper().select(one);
+    }
 }

+ 43 - 1
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -19,6 +19,7 @@ import com.gis.common.httpclient.FdkkClient;
 import com.gis.common.util.*;
 import com.gis.domain.dto.*;
 import com.gis.domain.entity.FodderEntity;
+import com.gis.domain.entity.ScenePanoEntity;
 import com.gis.domain.entity.WorkEntity;
 import com.gis.domain.entity.WorkHotsFodderEntity;
 import com.gis.domain.vo.ReportWorkVo;
@@ -27,6 +28,7 @@ import com.gis.oss.util.FileAndOssUtil;
 import com.gis.oss.util.FileUtils;
 import com.gis.oss.util.QrCodeUtils;
 import com.gis.service.FodderService;
+import com.gis.service.ScenePanoService;
 import com.gis.service.WorkHotsFodderService;
 import com.gis.service.WorkService;
 import com.github.pagehelper.PageHelper;
@@ -86,6 +88,9 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
     @Resource
     FdkkClient fdkkClient;
 
+    @Resource
+    ScenePanoService scenePanoService;
+
     @Override
     public IBaseStrMapper<WorkEntity, String> getBaseMapper() {
         return this.entityMapper;
@@ -440,7 +445,13 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         DateUtils.spendTime(startTime, "someData更新oss完成");
 
         // 更新跟目录tour.xml 2022-09-15
-        updateTour(someDataToJson, id);
+        if (entity.getType().equalsIgnoreCase("pro") ) {
+            updateProTour(someDataToJson, id);
+        }else {
+            updateTour(someDataToJson, id);
+        }
+
+
         DateUtils.spendTime(startTime, "tour更新oss完成");
 
         return Result.success();
@@ -484,6 +495,37 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         DateUtils.spendTime(startTime, "tour上传oss");
     }
 
+    /**
+     * 更新 tour.xml
+     * @param someDataToJson
+     * @param id
+     */
+    private void updateProTour(JSONObject someDataToJson, String id) {
+        long startTime = System.currentTimeMillis();
+        String scenes = someDataToJson.getString("scenes");
+        BaseRuntimeException.isBlank(scenes, null, "someData的场景码参数未空");
+        List<ScenePanoEntity> list = scenePanoService.findByWorkId(id);
+
+        // 读取tour.xml模板
+        String baseTour = getBaseTour();
+        StringBuilder builder = new StringBuilder();
+        builder.append(baseTour).append("\r\n");
+        for (ScenePanoEntity entity : list) {
+            String tour = entity.getTour();
+            builder.append(tour).append("\r\n");
+        }
+
+        // 添加结束标签
+        builder.append("</krpano>");
+
+        String tourPath = configConstant.serverBasePath + id + "/tour.xml";
+        FileUtil.writeUtf8String(builder.toString(), tourPath);
+        log.info("作品tour.xml写入完成");
+
+        String ossKeyPath = configConstant.ossBasePath + id + "/tour.xml";
+        fileAndOssUtil.upload(tourPath, ossKeyPath);
+        log.info("tour.xml上传完成 : {}", ossKeyPath);
+    }
 
     private String getBaseTour(){
         String baseTourPath = configConstant.serverBasePath + "baseData/tour.xml";