瀏覽代碼

优化null检验

zhou-hao 5 年之前
父節點
當前提交
285e2902fa

+ 13 - 0
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/Authentication.java

@@ -17,6 +17,7 @@
 
 package org.hswebframework.web.authorization;
 
+import org.springframework.util.StringUtils;
 import reactor.core.publisher.Mono;
 
 import java.io.Serializable;
@@ -107,6 +108,9 @@ public interface Authentication extends Serializable {
     }
 
     default Optional<Dimension> getDimension(String type, String id) {
+        if (StringUtils.isEmpty(type)) {
+            return Optional.empty();
+        }
         return getDimensions()
                 .stream()
                 .filter(dimension -> dimension.getId().equals(id) && type.equalsIgnoreCase(dimension.getType().getId()))
@@ -114,6 +118,9 @@ public interface Authentication extends Serializable {
     }
 
     default Optional<Dimension> getDimension(DimensionType type, String id) {
+        if (type == null) {
+            return Optional.empty();
+        }
         return getDimensions()
                 .stream()
                 .filter(dimension -> dimension.getId().equals(id) && type.isSameType(dimension.getType()))
@@ -122,6 +129,9 @@ public interface Authentication extends Serializable {
 
 
     default List<Dimension> getDimensions(String type) {
+        if (StringUtils.isEmpty(type)) {
+            return Collections.emptyList();
+        }
         return getDimensions()
                 .stream()
                 .filter(dimension -> dimension.getType().isSameType(type))
@@ -129,6 +139,9 @@ public interface Authentication extends Serializable {
     }
 
     default List<Dimension> getDimensions(DimensionType type) {
+        if (type == null) {
+            return Collections.emptyList();
+        }
         return getDimensions()
                 .stream()
                 .filter(dimension -> dimension.getType().isSameType(type))

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

@@ -1,5 +1,6 @@
 package org.hswebframework.web.system.authorization.defaults.service;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.hswebframework.ezorm.rdb.mapping.ReactiveDelete;
 import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
 import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
@@ -68,11 +69,13 @@ public class DefaultDimensionService
                                 .where(DimensionUserEntity::getUserId, userId)
                                 .fetch()
                                 .collectList()
+                                .filter(CollectionUtils::isNotEmpty)
                                 .flatMapMany(list -> {
                                     //查询所有的维度
                                     return this.queryIncludeChildren(list.stream()
                                             .map(DimensionUserEntity::getDimensionId)
                                             .collect(Collectors.toSet()))
+                                            .filter(dimension -> typeGrouping.containsKey(dimension.getTypeId()))
                                             .map(dimension ->
                                                     DynamicDimension.of(dimension, typeGrouping.get(dimension.getTypeId()))
                                             );