|
@@ -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);
|
|
|
}
|
|
|
}
|
|
|
}
|