Browse Source

fix: 优化地图数据列表查询;新增大屏查重接口

优化地图数据列表查询;新增大屏查重接口
hong.yang 1 year ago
parent
commit
f4baa7f5d7

+ 8 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/DataRoomPageController.java

@@ -189,4 +189,12 @@ public class DataRoomPageController {
         }
         return R.success(bgList);
     }
+
+    @ApiPermission
+    @PostMapping("/name/repeat")
+    @ApiOperation(value = "大屏/组件名称是否重复", position = 60, produces = MediaType.APPLICATION_JSON_VALUE)
+    public R<Boolean> nameRepeat(@RequestBody PageEntity pageEntity) {
+        boolean repeat = bigScreenPageService.checkNameRepeat(pageEntity);
+        return R.success(repeat);
+    }
 }

+ 9 - 2
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/service/impl/DataRoomMapServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -45,18 +46,24 @@ public class DataRoomMapServiceImpl extends ServiceImpl<DataRoomMapDao, DataRoom
         LambdaQueryWrapper<DataRoomMapEntity> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.select(DataRoomMapEntity::getParentId);
         List<DataRoomMapEntity> list = this.list(queryWrapper);
-        List<String> idList = list.stream().map(DataRoomMapEntity::getParentId).collect(Collectors.toList());
+        Set<String> parentIds = list.stream().map(DataRoomMapEntity::getParentId).collect(Collectors.toSet());
 
         LambdaQueryWrapper<DataRoomMapEntity> wrapper = QueryWrapperUtils.wrapperLike(new LambdaQueryWrapper<>(), searchDTO.getSearchKey(), DataRoomMapEntity::getName, DataRoomMapEntity::getMapCode);
         wrapper.eq(searchDTO.getLevel() != null, DataRoomMapEntity::getLevel, searchDTO.getLevel());
         wrapper.eq(StringUtils.isNotBlank(searchDTO.getParentId()), DataRoomMapEntity::getParentId, searchDTO.getParentId());
         wrapper.eq(searchDTO.getUploadedGeoJson() != null, DataRoomMapEntity::getUploadedGeoJson, searchDTO.getUploadedGeoJson());
         List<DataRoomMapEntity> entityList = this.list(wrapper);
+        List<String> idList = entityList.stream().map(DataRoomMapEntity::getId).collect(Collectors.toList());
         List<DataRoomMapVO> voList = Lists.newArrayList();
         for (DataRoomMapEntity entity : entityList) {
+            // 如果地图的直接父级也在列表中,那么不返回该地图
+            if (idList.contains(entity.getParentId())) {
+                continue;
+            }
             DataRoomMapVO mapVO = BeanConvertUtils.convert(entity, DataRoomMapVO.class);
-            mapVO.setHasChildren(idList.contains(entity.getId()));
+            mapVO.setHasChildren(parentIds.contains(entity.getId()));
             voList.add(mapVO);
+
         }
         return voList;
 //        return this.baseMapper.getList(searchDTO);