lyh
2025-04-11 2cf1565485060fd56e1f1f1cffbba7a4d70d42a6
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
@@ -762,4 +763,35 @@
      List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
      return collect;
   }
   /**
    * 根据用户名批量获取真实姓名映射
    * @param userNames 用户名列表
    * @return 用户名->真实姓名的映射(不存在时值为null)
    */
   @Override
   public Map<String, String> getUserRealNamesByUserNames(List<String> userNames) {
      if (CollectionUtils.isEmpty(userNames)) {
         return Collections.emptyMap();
      }
      // 去重并过滤空值
      Set<String> uniqueNames = userNames.stream()
            .filter(StringUtils::isNotBlank)
            .collect(Collectors.toSet());
      if (uniqueNames.isEmpty()) {
         return Collections.emptyMap();
      }
      // 批量查询(自动处理IN语句分片)
      List<SysUser> users = userMapper.selectUsersByNames(new ArrayList<>(uniqueNames));
      // 构建映射关系
      return users.stream()
            .collect(Collectors.toMap(
                  SysUser::getUsername,
                  SysUser::getRealname,
                  (existing, replacement) -> existing // 重复键处理
            ));
   }
}