Ver Fonte

add 地图区域管理

18339543638 há 4 anos atrás
pai
commit
57db688dce

+ 15 - 1
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/web/GeoController.java

@@ -1,5 +1,6 @@
 package org.jetlinks.community.device.web;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
@@ -53,7 +54,20 @@ public class GeoController  implements ReactiveServiceCrudController<GeoProperty
     @PostMapping("/_search/geo.json")
     public Mono<?> search(@RequestBody GeoRequestParam param){
         return geoService.queryPager(param.getFilter())
-            .map(PagerResult::getData);
+            .map(PagerResult::getData)
+            .zipWith(Mono.just(new GeoPayload()))
+            .doOnNext(tp2->{
+                List<GeoProperty> properties = tp2.getT1();
+                if(CollectionUtil.isNotEmpty(properties)){
+                    tp2.getT2().setFeatures(properties.stream().map(geoProperty -> {
+                        GeoEntity geoEntity = new GeoEntity();
+                        geoEntity.setGeometry(geoProperty.getGeometry());
+                        geoEntity.setProperties(geoProperty);
+                        return geoEntity;
+                    }).collect(Collectors.toList()));
+                }
+            })
+            .map(Tuple2::getT2);
     }
 
     /**