Skip to content

Commit 285e290

Browse files
committed
优化null检验
1 parent 58d8031 commit 285e290

File tree

2 files changed

+16
-0
lines changed
  • hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization
  • hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service

2 files changed

+16
-0
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.hswebframework.web.authorization;
1919

20+
import org.springframework.util.StringUtils;
2021
import reactor.core.publisher.Mono;
2122

2223
import java.io.Serializable;
@@ -107,13 +108,19 @@ default boolean hasDimension(DimensionType type, String id) {
107108
}
108109

109110
default Optional<Dimension> getDimension(String type, String id) {
111+
if (StringUtils.isEmpty(type)) {
112+
return Optional.empty();
113+
}
110114
return getDimensions()
111115
.stream()
112116
.filter(dimension -> dimension.getId().equals(id) && type.equalsIgnoreCase(dimension.getType().getId()))
113117
.findFirst();
114118
}
115119

116120
default Optional<Dimension> getDimension(DimensionType type, String id) {
121+
if (type == null) {
122+
return Optional.empty();
123+
}
117124
return getDimensions()
118125
.stream()
119126
.filter(dimension -> dimension.getId().equals(id) && type.isSameType(dimension.getType()))
@@ -122,13 +129,19 @@ default Optional<Dimension> getDimension(DimensionType type, String id) {
122129

123130

124131
default List<Dimension> getDimensions(String type) {
132+
if (StringUtils.isEmpty(type)) {
133+
return Collections.emptyList();
134+
}
125135
return getDimensions()
126136
.stream()
127137
.filter(dimension -> dimension.getType().isSameType(type))
128138
.collect(Collectors.toList());
129139
}
130140

131141
default List<Dimension> getDimensions(DimensionType type) {
142+
if (type == null) {
143+
return Collections.emptyList();
144+
}
132145
return getDimensions()
133146
.stream()
134147
.filter(dimension -> dimension.getType().isSameType(type))

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.hswebframework.web.system.authorization.defaults.service;
22

3+
import org.apache.commons.collections.CollectionUtils;
34
import org.hswebframework.ezorm.rdb.mapping.ReactiveDelete;
45
import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
56
import org.hswebframework.ezorm.rdb.mapping.ReactiveUpdate;
@@ -68,11 +69,13 @@ public Flux<DynamicDimension> getDimensionByUserId(String userId) {
6869
.where(DimensionUserEntity::getUserId, userId)
6970
.fetch()
7071
.collectList()
72+
.filter(CollectionUtils::isNotEmpty)
7173
.flatMapMany(list -> {
7274
//查询所有的维度
7375
return this.queryIncludeChildren(list.stream()
7476
.map(DimensionUserEntity::getDimensionId)
7577
.collect(Collectors.toSet()))
78+
.filter(dimension -> typeGrouping.containsKey(dimension.getTypeId()))
7679
.map(dimension ->
7780
DynamicDimension.of(dimension, typeGrouping.get(dimension.getTypeId()))
7881
);

0 commit comments

Comments
 (0)