From 770b86f6b9ff748ca8809ed950e7968030fa3683 Mon Sep 17 00:00:00 2001 From: "hong.yang" Date: Wed, 27 Sep 2023 17:31:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E5=B0=86=E5=8E=9F=E5=85=88=E7=9A=84sql=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E4=B8=BA=E4=BB=A3=E7=A0=81=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E4=B8=94=E6=94=AF=E6=8C=81=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=AD=90=E7=BA=A7=E8=8A=82=E7=82=B9=E5=8C=B9=E9=85=8D=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化地图列表查询方法,将原先的sql查询替换为代码实现,并且支持查询子级节点匹配项 --- .../service/impl/DataRoomMapServiceImpl.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/service/impl/DataRoomMapServiceImpl.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/service/impl/DataRoomMapServiceImpl.java index 182ca0bc..be523aba 100644 --- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/service/impl/DataRoomMapServiceImpl.java +++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/service/impl/DataRoomMapServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gccloud.common.exception.GlobalException; import com.gccloud.common.utils.BeanConvertUtils; import com.gccloud.common.utils.JSON; +import com.gccloud.common.utils.QueryWrapperUtils; import com.gccloud.dataroom.core.module.map.dto.DataRoomMapRepeatDTO; import com.gccloud.dataroom.core.module.map.vo.DataRoomMapVO; import com.gccloud.dataroom.core.module.map.vo.MapChildVO; @@ -38,9 +39,31 @@ public class DataRoomMapServiceImpl extends ServiceImpl getList(MapSearchDTO searchDTO) { - return this.baseMapper.getList(searchDTO); + if (StringUtils.isNotBlank(searchDTO.getSearchKey())) { + searchDTO.setParentId(null); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.select(DataRoomMapEntity::getParentId); + List list = this.list(queryWrapper); + List idList = list.stream().map(DataRoomMapEntity::getParentId).collect(Collectors.toList()); + + LambdaQueryWrapper 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 entityList = this.list(wrapper); + List voList = Lists.newArrayList(); + for (DataRoomMapEntity entity : entityList) { + DataRoomMapVO mapVO = BeanConvertUtils.convert(entity, DataRoomMapVO.class); + mapVO.setHasChildren(idList.contains(entity.getId())); + voList.add(mapVO); + } + return voList; +// return this.baseMapper.getList(searchDTO); } + + @Override public List getAvailableTree(Integer level) { // 根据层级,如果某个地图的某个子级(或子级的子级...)也符合该层级,那么把该地图也返回