From 931a0210e59f0a3cc13c3569c80326ec62a4684f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sat, 3 Aug 2024 15:36:56 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=85=BC=E5=AE=B99.915=20=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/src/apis/user.ts | 37 ++++++++++++++++++- .../src/services/NodeIKernelProfileService.ts | 13 ++++++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/core/src/apis/user.ts b/src/core/src/apis/user.ts index 9ed263ed..d8885cbb 100644 --- a/src/core/src/apis/user.ts +++ b/src/core/src/apis/user.ts @@ -6,7 +6,8 @@ import { NodeIKernelProfileListener, ProfileListener } from '@/core/listeners'; import { RequestUtil } from '@/common/utils/request'; import { logWarn } from '@/common/utils/log'; import { NTEventDispatch } from '@/common/utils/EventTask'; -import { NodeIKernelProfileService } from '@/core/services'; +import { NodeIKernelProfileService, ProfileBizType, UserDetailSource } from '@/core/services'; +import { requireMinNTQBuild } from '@/common/utils/QQBasicInfo'; export class NTQQUserApi { static async getProfileLike(uid: string) { @@ -64,7 +65,41 @@ export class NTQQUserApi { // KQZONE, // KOTHER // } + static async fetchUserDetailInfo(uid: string) { + type EventService = NodeIKernelProfileService['fetchUserDetailInfo']; + type EventListener = NodeIKernelProfileListener['onProfileDetailInfoChanged']; + let [_retData, profile] = await NTEventDispatch.CallNormalEvent + + ( + 'NodeIKernelProfileService/getUserDetailInfoWithBizInfo', + 'NodeIKernelProfileListener/onProfileDetailInfoChanged', + 2, + 5000, + (profile: User) => { + if (profile.uid === uid) { + return true; + } + return false; + }, + "BuddyProfileStore", + [ + uid + ], + UserDetailSource.KDB, + [ + ProfileBizType.KALL + ] + ); + return profile; + } static async getUserDetailInfo(uid: string) { + //此处需要判断是否支持新接口 同时呢应该是临时方案 + if (requireMinNTQBuild('26702')) { + return this.fetchUserDetailInfo(uid); + } + return this.getUserDetailInfoOld(uid); + } + static async getUserDetailInfoOld(uid: string) { type EventService = NodeIKernelProfileService['getUserDetailInfoWithBizInfo']; type EventListener = NodeIKernelProfileListener['onProfileDetailInfoChanged']; let [_retData, profile] = await NTEventDispatch.CallNormalEvent diff --git a/src/core/src/services/NodeIKernelProfileService.ts b/src/core/src/services/NodeIKernelProfileService.ts index 9cd5950e..6b61be55 100644 --- a/src/core/src/services/NodeIKernelProfileService.ts +++ b/src/core/src/services/NodeIKernelProfileService.ts @@ -2,8 +2,19 @@ import { AnyCnameRecord } from 'node:dns'; import { BizKey, ModifyProfileParams, UserDetailInfoByUin } from '../entities'; import { NodeIKernelProfileListener } from '../listeners'; import { GeneralCallResult } from '@/core/services/common'; - +export enum UserDetailSource { + KDB, + KSERVER +} +export enum ProfileBizType { + KALL, + KBASEEXTEND, + KVAS, + KQZONE, + KOTHER +} export interface NodeIKernelProfileService { + fetchUserDetailInfo(trace: string, uids: string[], arg2: number, arg3: number[]): Promise; addKernelProfileListener(listener: NodeIKernelProfileListener): number;