Răsfoiți Sursa

Merge remote-tracking branch 'origin/test-merge' into test-merge

LHB 6 zile în urmă
părinte
comite
51e1dff160

+ 4 - 3
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -58,6 +58,7 @@ import org.springblade.system.user.mapper.UserMapper;
 import org.springblade.system.user.service.IUserDeptService;
 import org.springblade.system.user.service.IUserOauthService;
 import org.springblade.system.user.service.IUserService;
+import org.springblade.system.user.util.ComplexStringComparator;
 import org.springblade.system.user.util.FileUtils;
 import org.springblade.system.user.util.ForestNodeMerger;
 import org.springblade.system.user.vo.InformationQueryBIMVO;
@@ -2249,9 +2250,9 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
         if (ids.size() > 0) {
             List<WbsTreeContractLazyVO> sortedFilteredNodes = nodeAll.stream()
                     .filter(f -> ids.contains(f.getParentId()))
-                    .sorted(Comparator.comparing(WbsTreeContractLazyVO::getSort, Comparator.nullsLast(Integer::compareTo))
-                            .thenComparing(WbsTreeContractLazyVO::getFullName, Comparator.nullsLast(String::compareTo))
-                            .thenComparing(WbsTreeContractLazyVO::getCreateTime, Comparator.nullsLast(Comparator.naturalOrder())))
+                    .sorted(Comparator.comparing(WbsTreeContractLazyVO::getSort, Comparator.nullsFirst(Comparator.naturalOrder()))
+                            .thenComparing(new ComplexStringComparator<>(obj -> obj.getFullName() != null ? obj.getFullName() : ""))
+                            .thenComparing(WbsTreeContractLazyVO::getCreateTime, Comparator.nullsLast(Comparator.reverseOrder())))
                     .collect(Collectors.toList());
 
             Map<Long, List<WbsTreeContractLazyVO>> filteredNodesMap = new LinkedHashMap<>();