Quellcode durchsuchen

优化维度类型

zhou-hao vor 5 Jahren
Ursprung
Commit
20f8a1e345

+ 4 - 0
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/src/main/java/org/hswebframework/web/system/authorization/api/entity/DimensionEntity.java

@@ -21,6 +21,10 @@ import java.util.Map;
 })
 public class DimensionEntity extends GenericTreeSortSupportEntity<String> {
 
+    @Comment("维度类型ID")
+    @Column(length = 32)
+    private String typeId;
+
     @Comment("维度名称")
     @Column(length = 32)
     private String name;

+ 29 - 0
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/src/main/java/org/hswebframework/web/system/authorization/api/entity/DimensionTypeEntity.java

@@ -0,0 +1,29 @@
+package org.hswebframework.web.system.authorization.api.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.hswebframework.ezorm.rdb.mapping.annotation.Comment;
+import org.hswebframework.web.api.crud.entity.GenericEntity;
+import org.hswebframework.web.authorization.DimensionType;
+import org.hswebframework.web.validator.CreateGroup;
+
+import javax.persistence.Column;
+import javax.persistence.Table;
+import javax.validation.constraints.NotBlank;
+
+@Getter
+@Setter
+@Table(name = "s_dimension_type")
+public class DimensionTypeEntity extends GenericEntity<String> implements DimensionType {
+
+
+    @Comment("维度类型名称")
+    @Column(length = 32, nullable = false)
+    @NotBlank(message = "名称不能为空", groups = CreateGroup.class)
+    private String name;
+
+    @Comment("维度类型描述")
+    @Column(length = 256)
+    private String describe;
+
+}

+ 7 - 2
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultDimensionService.java

@@ -8,6 +8,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
 import org.hswebframework.web.crud.service.ReactiveTreeSortEntityService;
 import org.hswebframework.web.id.IDGenerator;
 import org.hswebframework.web.system.authorization.api.entity.DimensionEntity;
+import org.hswebframework.web.system.authorization.api.entity.DimensionTypeEntity;
 import org.hswebframework.web.system.authorization.api.entity.DimensionUserEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
@@ -25,6 +26,9 @@ public class DefaultDimensionService
     @Autowired
     private ReactiveRepository<DimensionUserEntity, String> dimensionUserRepository;
 
+    @Autowired
+    private ReactiveRepository<DimensionTypeEntity, String> dimensionTypeRepository;
+
     @Override
     public IDGenerator<String> getIDGenerator() {
         return IDGenerator.MD5;
@@ -43,9 +47,10 @@ public class DefaultDimensionService
 
     @Override
     public Flux<DimensionType> getAllType() {
-        return createQuery()
+        return dimensionTypeRepository
+                .createQuery()
                 .fetch()
-                .map(DynamicDimensionType::of);
+                .cast(DimensionType.class);
     }
 
     @Override

+ 0 - 9
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/webflux/WebFluxDimensionController.java

@@ -13,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
 import java.util.List;
@@ -24,8 +23,6 @@ import java.util.List;
 @Resource(id = "dimension", name = "权限维度管理", group = "system")
 public class WebFluxDimensionController implements ReactiveServiceCrudController<DimensionEntity, String> {
 
-    @Autowired
-    private List<DimensionProvider> dimensionProviders;
 
     @Autowired
     private DefaultDimensionService defaultDimensionService;
@@ -41,10 +38,4 @@ public class WebFluxDimensionController implements ReactiveServiceCrudController
         return defaultDimensionService;
     }
 
-    @GetMapping("/types")
-    @QueryAction
-    public Flux<DimensionType> findAllType() {
-        return Flux.fromIterable(dimensionProviders)
-                .flatMap(DimensionProvider::getAllType);
-    }
 }

+ 47 - 0
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/webflux/WebFluxDimensionTypeController.java

@@ -0,0 +1,47 @@
+package org.hswebframework.web.system.authorization.defaults.webflux;
+
+import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
+import org.hswebframework.web.api.crud.entity.QueryParamEntity;
+import org.hswebframework.web.authorization.DimensionProvider;
+import org.hswebframework.web.authorization.DimensionType;
+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.crud.web.reactive.ReactiveCrudController;
+import org.hswebframework.web.crud.web.reactive.ReactiveServiceCrudController;
+import org.hswebframework.web.system.authorization.api.entity.DimensionEntity;
+import org.hswebframework.web.system.authorization.api.entity.DimensionTypeEntity;
+import org.hswebframework.web.system.authorization.defaults.service.DefaultDimensionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/dimension-type")
+@Authorize
+@Resource(id = "dimension", name = "权限维度管理", group = "system")
+public class WebFluxDimensionTypeController implements ReactiveCrudController<DimensionTypeEntity, String> {
+
+    @Autowired
+    private List<DimensionProvider> dimensionProviders;
+
+    @Autowired
+    private ReactiveRepository<DimensionTypeEntity, String> reactiveRepository;
+
+    @GetMapping("/all")
+    @QueryAction
+    public Flux<DimensionType> findAllType() {
+        return Flux.fromIterable(dimensionProviders)
+                .flatMap(DimensionProvider::getAllType);
+    }
+
+    @Override
+    public ReactiveRepository<DimensionTypeEntity, String> getRepository() {
+        return reactiveRepository;
+    }
+}