Bladeren bron

add 地理区域目录

18339543638 4 jaren geleden
bovenliggende
commit
9434648d74

+ 3 - 1
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/entity/GeoRegionEntity.java

@@ -48,8 +48,10 @@ public  class GeoRegionEntity extends  GenericTreeSortSupportEntity<String> {
     private String parentId;
 
     @Column
+    @ColumnType(jdbcType = JDBCType.CLOB)
+    @JsonCodec
     @NotBlank(message = "请绘制坐标区域")
-    private String region;
+    private List<Object> region;
 
     //子菜单
     private List<GeoRegionEntity> children;

+ 4 - 1
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/service/LocalGeoRegionService.java

@@ -1,5 +1,6 @@
 package org.jetlinks.community.device.service;
 
+import cn.hutool.core.util.StrUtil;
 import org.hswebframework.web.crud.service.GenericReactiveTreeSupportCrudService;
 import org.hswebframework.web.id.IDGenerator;
 import org.jetlinks.community.device.entity.GeoRegionEntity;
@@ -26,7 +27,9 @@ public class LocalGeoRegionService extends GenericReactiveTreeSupportCrudService
      * @return
      */
     public Mono<Void> updateChildrenNum(String parentId){
-        return  Mono.just(parentId)
+        return  Mono.justOrEmpty(parentId)
+            .defaultIfEmpty("")
+            .filter(StrUtil::isNotBlank)
             .zipWith(Mono.defer(()->this.createQuery().where(GeoRegionEntity::getParentId,parentId).count()))
             .map(tp2->
                 this.createUpdate()

+ 12 - 7
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.util.StrUtil;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
@@ -10,9 +11,10 @@ import org.hswebframework.web.crud.web.reactive.ReactiveTreeServiceQueryControll
 import org.jetlinks.community.device.entity.GeoRegionEntity;
 import org.jetlinks.community.device.service.LocalGeoRegionService;
 import org.springframework.web.bind.annotation.*;
-import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+import java.util.Optional;
+
 /**
  * @author lifang
  * @version 1.0.0
@@ -34,14 +36,17 @@ public class GeoController  implements ReactiveTreeServiceQueryController<GeoReg
      * @param region
      * @return
      */
-    @PatchMapping("")
+    @PatchMapping
     public Mono<Void> save(@RequestBody GeoRegionEntity region){
-        return geoService.findById(region.getId())
-            .defaultIfEmpty(new GeoRegionEntity())
-            .zipWith(geoService.save(Mono.just(region)))
+        return Mono.zip(
+            StrUtil.isEmpty(region.getId())?Mono.just(new GeoRegionEntity()):geoService.findById(region.getId())
+            .defaultIfEmpty(new GeoRegionEntity()),geoService.save(Mono.just(region)))
             .flatMap(tp2->
-                Mono.just(tp2.getT1().getParentId()).flatMap(geoService::updateChildrenNum))
-            .thenReturn(Mono.just(region.getParentId()).flatMap(geoService::updateChildrenNum))
+                Mono.justOrEmpty(tp2.getT1().getParentId())
+                    .defaultIfEmpty("")
+                    .flatMap(geoService::updateChildrenNum))
+            .thenReturn(Mono.justOrEmpty(region.getParentId())
+                .defaultIfEmpty("").flatMap(geoService::updateChildrenNum))
             .then();
     }
 

+ 1 - 1
jetlinks-manager/visualization-manager/src/main/java/org/jetlinks/community/visualization/web/VisualizationCategoryController.java

@@ -19,7 +19,7 @@ import reactor.core.publisher.Mono;
 @RequestMapping("/visualization/catalog")
 @Slf4j
 @AllArgsConstructor
-@Tag(name = "设备分类目录")
+@Tag(name = "大屏分类目录")
 public class VisualizationCategoryController implements
     ReactiveServiceCrudController<VisualizationCategory, String> {