feat(优化)selectNicknameByIds 的循环调用可以合并为单次批量查询

This commit is contained in:
nicblusyc 2026-10-30 12:23:50 +08:00
parent 9227f626a3
commit 2cceecfb2e

View File

@ -36,6 +36,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 用户 业务层处理 * 用户 业务层处理
@ -598,13 +599,15 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/ */
@Override @Override
public String selectNicknameByIds(String userIds) { public String selectNicknameByIds(String userIds) {
List<String> list = new ArrayList<>(); List<Long> ids = StringUtils.splitTo(userIds, Convert::toLong);
for (Long id : StringUtils.splitTo(userIds, Convert::toLong)) { if (CollUtil.isEmpty(ids)) {
String nickname = SpringUtils.getAopProxy(this).selectNicknameById(id); return StringUtils.EMPTY;
if (StringUtils.isNotBlank(nickname)) {
list.add(nickname);
}
} }
Map<Long, String> nickMap = selectUserNicksByIds(ids);
List<String> list = ids.stream()
.map(nickMap::get)
.filter(StringUtils::isNotBlank)
.collect(Collectors.toList());
return StringUtils.joinComma(list); return StringUtils.joinComma(list);
} }