feat(im): 初始化群名片 v0.2:第二次评审(需求各种进群的小问题)

im
YunaiV 2026-05-07 17:28:16 +08:00
parent ce66a507ef
commit d175fe86be
1 changed files with 13 additions and 8 deletions

View File

@ -45,23 +45,28 @@ export function getGroupDisplayName(group: Pick<Group, 'name' | 'groupRemark'>):
/**
* undefined
*
* 1. "是否真名" conversationStore lastSenderDisplayName fetchGroupMembers
* 2. GROUP member sender self undefinedself "真名" displayUserNamemembers userStore.nickname deriveLastSenderDisplayName
* "是否真名" conversationStore lastSenderDisplayName fetchGroupMembers
*
* GROUP member displayUserName / / member sender
* - self userStore.nickname fetch self 退 GROUP_MEMBER_QUIT 403
* - undefined deriveLastSenderDisplayName
*/
export function tryGetSenderDisplayName(
senderId: number,
conversationType: number,
conversationTargetId: number
): string | undefined {
// GROUP 路径完全不查 userStore——member 在不在群直接决定结果
if (conversationType === ImConversationType.GROUP) {
const group = useGroupStore().getGroup(conversationTargetId)
const member = group?.members?.find((m) => m.userId === senderId)
if (!member) {
return undefined
if (member) {
const friend = useFriendStore().getFriend(senderId)
return getMemberDisplayName(member, friend)
}
const friend = useFriendStore().getFriend(senderId)
return getMemberDisplayName(member, friend)
if (senderId === getCurrentUserId()) {
return useUserStore().getUser?.nickname || undefined
}
return undefined
}
// PRIVATE / 未知会话类型self 走 userStore对方走 friend
@ -181,7 +186,7 @@ export function getSenderAvatar(
*
* message.type content payload getSenderDisplayName / /
* store resolveName id senderNickname + (id)
* home MessageItem.vue / ConversationItem.vue / MessageHistory.vue admin MessageContentPreview.vue
* MessageItem.vue / ConversationItem.vue / MessageHistory.vue / MessageContentPreview.vue
*/
export type GroupNotificationPayload = {
operatorUserId?: number