ソースを参照

增加维度类型

zhou-hao 5 年 前
コミット
e3c64f2553

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

@@ -18,11 +18,16 @@ import java.sql.JDBCType;
 @Setter
 @Setter
 @Table(name = "s_dimension_user", indexes = {
 @Table(name = "s_dimension_user", indexes = {
         @Index(name = "idx_dimsu_dimension_id", columnList = "dimension_id"),
         @Index(name = "idx_dimsu_dimension_id", columnList = "dimension_id"),
+        @Index(name = "idx_dimsu_dimension_type_id", columnList = "dimension_type_id"),
         @Index(name = "idx_dimsu_user_id", columnList = "user_id"),
         @Index(name = "idx_dimsu_user_id", columnList = "user_id"),
 
 
 })
 })
 public class DimensionUserEntity extends GenericEntity<String> {
 public class DimensionUserEntity extends GenericEntity<String> {
 
 
+    @Comment("维度类型ID")
+    @Column(name = "dimension_type_id", nullable = false, length = 32)
+    private String dimensionTypeId;
+
     @Comment("维度ID")
     @Comment("维度ID")
     @Column(name = "dimension_id", nullable = false, length = 32)
     @Column(name = "dimension_id", nullable = false, length = 32)
     private String dimensionId;
     private String dimensionId;

+ 16 - 15
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultAuthorizationSettingService.java

@@ -74,26 +74,27 @@ public class DefaultAuthorizationSettingService extends GenericReactiveCrudServi
     public ReactiveUpdate<AuthorizationSettingEntity> createUpdate() {
     public ReactiveUpdate<AuthorizationSettingEntity> createUpdate() {
         ReactiveUpdate<AuthorizationSettingEntity> update = super.createUpdate();
         ReactiveUpdate<AuthorizationSettingEntity> update = super.createUpdate();
 
 
-
-        return update.onExecute(r -> r.doOnSuccess(i -> {
-            createQuery()
-                    .setParam(update.toQueryParam())
-                    .fetch()
-                    .collectList()
-                    .subscribe(this::clearUserAuthCache);
-        }));
+        return update.onExecute(r ->
+                r.doOnSuccess(i -> {
+                    createQuery()
+                            .setParam(update.toQueryParam())
+                            .fetch()
+                            .collectList()
+                            .subscribe(this::clearUserAuthCache);
+                }));
     }
     }
 
 
     @Override
     @Override
     public ReactiveDelete createDelete() {
     public ReactiveDelete createDelete() {
         ReactiveDelete delete = super.createDelete();
         ReactiveDelete delete = super.createDelete();
-        return delete.onExecute(r -> r.doOnSuccess(i -> {
-            createQuery()
-                    .setParam(delete.toQueryParam())
-                    .fetch()
-                    .collectList()
-                    .subscribe(this::clearUserAuthCache);
-        }));
+        return delete.onExecute(r ->
+                r.doOnSuccess(i -> {
+                    createQuery()
+                            .setParam(delete.toQueryParam())
+                            .fetch()
+                            .collectList()
+                            .subscribe(this::clearUserAuthCache);
+                }));
     }
     }
 
 
     protected void clearUserAuthCache(List<AuthorizationSettingEntity> settings) {
     protected void clearUserAuthCache(List<AuthorizationSettingEntity> settings) {

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

@@ -61,7 +61,7 @@ public class DefaultDimensionService
                                 .createQuery()
                                 .createQuery()
                                 .where(DimensionUserEntity::getUserId, userId)
                                 .where(DimensionUserEntity::getUserId, userId)
                                 .fetch()
                                 .fetch()
-                                .map(entity -> DynamicDimension.of(entity, typeGrouping.get(entity.getDimensionId()))));
+                                .map(entity -> DynamicDimension.of(entity, typeGrouping.get(entity.getDimensionTypeId()))));
 
 
     }
     }
 
 

+ 1 - 1
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveAuthenticationInitializeService.java

@@ -67,7 +67,7 @@ public class DefaultReactiveAuthenticationInitializeService
 
 
     protected Flux<AuthorizationSettingEntity> getSettings(List<Dimension> dimensions) {
     protected Flux<AuthorizationSettingEntity> getSettings(List<Dimension> dimensions) {
         return Flux.fromIterable(dimensions)
         return Flux.fromIterable(dimensions)
-                .groupBy(d -> d.getType().getId(), (Function<Dimension, Object>) Dimension::getId)
+                .groupBy(d -> d.getType() == null ? "unknown" : d.getType().getId(), (Function<Dimension, Object>) Dimension::getId)
                 .flatMap(group ->
                 .flatMap(group ->
                         group.collectList()
                         group.collectList()
                                 .flatMapMany(list -> settingRepository
                                 .flatMapMany(list -> settingRepository