xiewj 5 bulan lalu
induk
melakukan
6c78be56be

+ 10 - 5
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkNavigationSettingServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.lang.tree.TreeNode;
 import cn.hutool.core.lang.tree.TreeNodeConfig;
 import cn.hutool.core.lang.tree.TreeUtil;
+import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.gis.common.constant.NavigationTypeEnum;
@@ -13,15 +14,14 @@ import com.gis.common.constant.SomeDataConstant;
 import com.gis.common.exception.BaseRuntimeException;
 import com.gis.domain.dto.*;
 import com.gis.domain.entity.WorkEntity;
-import com.gis.domain.entity.WorkHotsFodderEntity;
 import com.gis.domain.entity.WorkNavigationEntity;
 import com.gis.domain.vo.WorkNavigationVo;
 import com.gis.domain.vo.WorkSceneVo;
 import com.gis.service.*;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -235,8 +235,9 @@ public class WorkNavigationSettingServiceImpl implements WorkNavigationSettingSe
         });
         List<Long> navigationIds = new ArrayList<>();
         Map<Long, String> idSidMap = new HashMap<>();
+        List< String> sceneCodes =  new ArrayList<>();
         for (SaveWorkNavigationDTO saveWorkNavigationDTO : list) {
-            this.saveNavigationHandler(navigationIds, dto.getWorkId(), saveWorkNavigationDTO, idSidMap);
+            this.saveNavigationHandler(navigationIds, dto.getWorkId(), saveWorkNavigationDTO, idSidMap,sceneCodes);
         }
 
         List<Long> deleteIdList = workNavigationService.getDeleteIdList(workId, navigationIds);
@@ -251,6 +252,7 @@ public class WorkNavigationSettingServiceImpl implements WorkNavigationSettingSe
 
         //创建tour.xml
         WorkEntity workEntity = workService.getById(dto.getWorkId());
+        workEntity.setSceneCodes(StringUtils.join(sceneCodes, ","));
         krpanoService.saveTourXml(workEntity);
 
         List<Tree<Long>> navigationTrees = this.queryNavigation(workId, idSidMap);
@@ -259,7 +261,7 @@ public class WorkNavigationSettingServiceImpl implements WorkNavigationSettingSe
 
     }
 
-    private void saveNavigationHandler(List<Long> navigationIds, String workId, SaveWorkNavigationDTO navigation, Map<Long, String> idSidMap){
+    private void saveNavigationHandler(List<Long> navigationIds, String workId, SaveWorkNavigationDTO navigation, Map<Long, String> idSidMap, List<String> sceneCodes){
         String type = navigation.getType();
         WorkNavigationEntity entity = BeanUtil.toBean(navigation, WorkNavigationEntity.class);
         entity.setWorkId(workId);
@@ -267,6 +269,9 @@ public class WorkNavigationSettingServiceImpl implements WorkNavigationSettingSe
         navigation.setId(entity.getId());
         idSidMap.put(entity.getId(), navigation.getSid());
         navigationIds.add(entity.getId());
+        if (ObjUtil.isNotEmpty(navigation.getSceneCode())){
+            sceneCodes.add(navigation.getSceneCode());
+        }
         //保存id关联
         workHotsFodderService.removeByWorkIdAndType( workId, SomeDataConstant.navigation);
         if (ObjectUtil.isNotNull(navigation.getFodderId())) {
@@ -276,7 +281,7 @@ public class WorkNavigationSettingServiceImpl implements WorkNavigationSettingSe
         if(CollUtil.isNotEmpty(childrens)){
             for (SaveWorkNavigationDTO children : childrens) {
                 children.setParentId(entity.getId());
-                this.saveNavigationHandler(navigationIds, workId, children, idSidMap);
+                this.saveNavigationHandler(navigationIds, workId, children, idSidMap, sceneCodes);
             }
         }
     }