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