feat(IM): 添加群成员时同步导入成员名称
addGroupMember在导入账号后逐个调用accountImport导入成员Nick名称 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+21
-1
@@ -1073,13 +1073,18 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
||||
log.info("关爱/急救人员员工编号匹配到{}个系统用户, workNos={}", sysUsers.size(), workNoList);
|
||||
|
||||
// 6. 拉入IM群聊
|
||||
List<String> memberAccounts = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
|
||||
Map<String, SysUser> sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getId, u -> u, (a, b) -> a));
|
||||
List<String> memberAccounts = new ArrayList<>(sysUserMap.keySet());
|
||||
AddGroupMemberDTO addDto = new AddGroupMemberDTO();
|
||||
addDto.setGroupId(groupId);
|
||||
addDto.setSilence(1);
|
||||
addDto.setMemberList(memberAccounts.stream().map(account -> {
|
||||
AddGroupMemberDTO.MemberListDTO m = new AddGroupMemberDTO.MemberListDTO();
|
||||
m.setMemberAccount(account);
|
||||
SysUser u = sysUserMap.get(account);
|
||||
if (u != null && StrUtil.isNotBlank(u.getRealname())) {
|
||||
m.setMemberName(u.getRealname());
|
||||
}
|
||||
return m;
|
||||
}).collect(Collectors.toList()));
|
||||
|
||||
@@ -1371,11 +1376,26 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
|
||||
if (newMemberList.isEmpty()) {
|
||||
ExceptionAssertsUtil.fail("所选成员已在群聊中");
|
||||
}
|
||||
// 查询成员名称用于IM账号导入
|
||||
Map<String, String> memberNameMap = new HashMap<>();
|
||||
List<EmergencyProfessionUser> profUsers = emergencyProfessionUserMapper.selectList(
|
||||
new LambdaQueryWrapper<EmergencyProfessionUser>().in(EmergencyProfessionUser::getUserId, newMemberList));
|
||||
profUsers.forEach(u -> memberNameMap.put(u.getUserId(), u.getRealname()));
|
||||
List<String> remainingIds = newMemberList.stream()
|
||||
.filter(id -> !memberNameMap.containsKey(id)).collect(Collectors.toList());
|
||||
if (!remainingIds.isEmpty()) {
|
||||
emergencyCloudManager.listUser(remainingIds).forEach((id, u) -> {
|
||||
if (StrUtil.isNotBlank(u.getRealname())) {
|
||||
memberNameMap.put(id, u.getRealname());
|
||||
}
|
||||
});
|
||||
}
|
||||
AddGroupMemberDTO addGroupMemberDTO = new AddGroupMemberDTO();
|
||||
addGroupMemberDTO.setGroupId(dto.getGroupId());
|
||||
addGroupMemberDTO.setMemberList(newMemberList.stream().map(userId -> {
|
||||
AddGroupMemberDTO.MemberListDTO memberListDTO = new AddGroupMemberDTO.MemberListDTO();
|
||||
memberListDTO.setMemberAccount(userId);
|
||||
memberListDTO.setMemberName(memberNameMap.get(userId));
|
||||
return memberListDTO;
|
||||
}).collect(Collectors.toList()));
|
||||
//添加群成员
|
||||
|
||||
Reference in New Issue
Block a user