diff --git a/src/main/java/com/gis3c/ol/dao/LayerDao.java b/src/main/java/com/gis3c/ol/dao/LayerDao.java index b06746d..7fba7e1 100644 --- a/src/main/java/com/gis3c/ol/dao/LayerDao.java +++ b/src/main/java/com/gis3c/ol/dao/LayerDao.java @@ -19,6 +19,7 @@ public interface LayerDao { public Layer findeLayerById(String layerId); public Layer findeLayerByName(String layerName); + public List findLayerByIds(String[] layerIds); public Integer insertLayer(Layer layer); diff --git a/src/main/java/com/gis3c/ol/service/LayerService.java b/src/main/java/com/gis3c/ol/service/LayerService.java index ffd62a0..4f7cb99 100644 --- a/src/main/java/com/gis3c/ol/service/LayerService.java +++ b/src/main/java/com/gis3c/ol/service/LayerService.java @@ -25,6 +25,7 @@ public interface LayerService { public Layer findeLayerById(String layerId); public Layer findeLayerByName(String layerName); + public List findLayerByIds(String[] layerIds); public Integer insertLayer(Layer layer); public Integer bindSource(String layerId,String sourceId,java.util.Map options); diff --git a/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java b/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java index d6bc26f..80f8e3a 100644 --- a/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java +++ b/src/main/java/com/gis3c/ol/service/impl/LayerServiceImpl.java @@ -96,6 +96,34 @@ public class LayerServiceImpl implements LayerService { return layerDao.findeLayerByName(layerName); } + @Override + public List findLayerByIds(String[] layerIds) { + List result = new ArrayList<>(); + if(layerIds != null){ + List layerList = layerDao.findLayerByIds(layerIds); + Layer queryLayer; + LayerSource layerSource; + String sourceId; + for(String layerId : layerIds){ + queryLayer = layerList + .stream() + .filter(layer -> layer.getLayerId().equals(layerId)) + .findFirst() + .orElse(null); + if(queryLayer != null){ + layerSource = new LayerSource(); + layerSource.setLayer(queryLayer); + sourceId = queryLayer.getSource(); + layerSource.setSource(sourceDao.findSourceById(sourceId)); + + result.add(layerSource); + } + } + } + + return result; + } + @Override public Integer insertLayer(Layer layer) { layer.setLayerId(UUID.randomUUID().toString()); diff --git a/src/test/java/com/gis3c/spatial/App.java b/src/test/java/com/gis3c/spatial/App.java index aa5af4e..b42498f 100644 --- a/src/test/java/com/gis3c/spatial/App.java +++ b/src/test/java/com/gis3c/spatial/App.java @@ -12,6 +12,8 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * Created by hukekuan on 2017/12/14. @@ -28,15 +30,19 @@ public class App { MapService mapService = context.getBean(MapService.class); TestService testService = context.getBean(TestService.class); + List layerSources + = layerService.findLayerByIds(new String[]{"aabb842e-239e-491d-9c70-a2cec1f65886"}); - List layerIdList = new ArrayList<>(Arrays.asList(new String[]{ - "a2d69fcd-fa4a-4fe5-8696-ae3e30042126", - "aabb842e-239e-491d-9c70-a2cec1f65886" - })); - List result = layerService.findSimpleLayerList(layerIdList); - System.out.println(result.size()); - System.out.println(result.get(0).getLayer().getLayerId()); - System.out.println(result.get(1).getLayer().getLayerId()); + System.out.println(layerSources); + +// List layerIdList = new ArrayList<>(Arrays.asList(new String[]{ +// "a2d69fcd-fa4a-4fe5-8696-ae3e30042126", +// "aabb842e-239e-491d-9c70-a2cec1f65886" +// })); +// List result = layerService.findSimpleLayerList(layerIdList); +// System.out.println(result.size()); +// System.out.println(result.get(0).getLayer().getLayerId()); +// System.out.println(result.get(1).getLayer().getLayerId()); // String result = testList.stream().filter(test-> "2".equals(test)).findFirst().orElse(null); diff --git a/src/test/resources/mappings/ol/LayerDao.xml b/src/test/resources/mappings/ol/LayerDao.xml index f1bf857..7c1ea21 100644 --- a/src/test/resources/mappings/ol/LayerDao.xml +++ b/src/test/resources/mappings/ol/LayerDao.xml @@ -55,6 +55,17 @@ WHERE layerId = #{layerId, javaType=java.lang.String}; + +