|
@@ -1,22 +1,34 @@
|
|
|
package org.jetlinks.community.device.web;
|
|
package org.jetlinks.community.device.web;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
+import groovy.lang.Tuple2;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
|
|
+import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
|
|
+import io.vavr.Tuple;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
|
|
import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
|
|
|
|
|
+import org.hswebframework.web.api.crud.entity.QueryOperation;
|
|
|
|
|
+import org.hswebframework.web.api.crud.entity.QueryParamEntity;
|
|
|
import org.hswebframework.web.authorization.annotation.Authorize;
|
|
import org.hswebframework.web.authorization.annotation.Authorize;
|
|
|
|
|
+import org.hswebframework.web.authorization.annotation.QueryAction;
|
|
|
import org.hswebframework.web.authorization.annotation.Resource;
|
|
import org.hswebframework.web.authorization.annotation.Resource;
|
|
|
import org.hswebframework.web.crud.service.ReactiveTreeSortEntityService;
|
|
import org.hswebframework.web.crud.service.ReactiveTreeSortEntityService;
|
|
|
import org.hswebframework.web.crud.web.reactive.ReactiveDeleteController;
|
|
import org.hswebframework.web.crud.web.reactive.ReactiveDeleteController;
|
|
|
import org.hswebframework.web.crud.web.reactive.ReactiveTreeServiceQueryController;
|
|
import org.hswebframework.web.crud.web.reactive.ReactiveTreeServiceQueryController;
|
|
|
import org.hswebframework.web.exception.NotFoundException;
|
|
import org.hswebframework.web.exception.NotFoundException;
|
|
|
|
|
+import org.jetlinks.community.device.entity.DeviceInstanceEntity;
|
|
|
|
|
+import org.jetlinks.community.device.entity.GeoJson;
|
|
|
import org.jetlinks.community.device.entity.GeoRegionEntity;
|
|
import org.jetlinks.community.device.entity.GeoRegionEntity;
|
|
|
import org.jetlinks.community.device.service.LocalGeoRegionService;
|
|
import org.jetlinks.community.device.service.LocalGeoRegionService;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import reactor.core.publisher.Mono;
|
|
import reactor.core.publisher.Mono;
|
|
|
|
|
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @author lifang
|
|
* @author lifang
|
|
@@ -34,6 +46,15 @@ import java.util.Optional;
|
|
|
public class GeoController implements ReactiveTreeServiceQueryController<GeoRegionEntity, String>{
|
|
public class GeoController implements ReactiveTreeServiceQueryController<GeoRegionEntity, String>{
|
|
|
private final LocalGeoRegionService geoService;
|
|
private final LocalGeoRegionService geoService;
|
|
|
|
|
|
|
|
|
|
+ @GetMapping("/_query/tree/tp2")
|
|
|
|
|
+ @QueryAction
|
|
|
|
|
+ @QueryOperation(summary = "使用GET动态查询并返回树形结构以及geo集合信息")
|
|
|
|
|
+ public Mono<?> findAllTreeTp2(@Parameter(hidden = true) QueryParamEntity paramEntity) {
|
|
|
|
|
+ return getService().queryResultToTree(paramEntity)
|
|
|
|
|
+ .map(result-> Tuple.of(result, GeoJson.of(result.stream().map(GeoRegionEntity::getRegion)
|
|
|
|
|
+ .filter(Objects::nonNull).collect(Collectors.toList()), "FeatureCollection")));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 区域管理新增或新增
|
|
* 区域管理新增或新增
|
|
|
* @param region
|
|
* @param region
|