Files
yudao-ui-admin-vben/apps/web-ele/src/api/im/friend/index.ts
2026-06-18 16:09:40 -07:00

79 lines
2.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { requestClient } from '#/api/request';
export namespace ImFriendApi {
/** IM 好友 Response VO */
export interface FriendRespVO {
id: number; // 关系记录编号
friendUserId: number; // 好友的用户编号
silent?: boolean; // 是否免打扰
displayName?: string; // 好友展示备注(仅自己可见)
displayNamePinyin?: string; // 备注的拼音(小写无空格,前端按首字母分桶 / 拼音搜索)
addSource?: number; // 添加来源;参见 ImFriendAddSourceEnum
pinned?: boolean; // 是否置顶联系人
blocked?: boolean; // 是否拉黑
status?: number; // 好友状态0=正常1=已删除)
addTime?: string; // 添加好友时间
deleteTime?: string; // 删除好友时间
updateTime?: number; // 最近更新时间(毫秒时间戳,增量拉取游标用)
nickname?: string; // 好友昵称
nicknamePinyin?: string; // 昵称的拼音(小写无空格,前端按首字母分桶 / 拼音搜索)
avatar?: string; // 好友头像
}
/** IM 好友更新 Request VO */
export interface FriendUpdateReqVO {
friendUserId: number; // 好友的用户编号
silent?: boolean; // 是否免打扰
displayName?: string; // 好友展示备注
pinned?: boolean; // 是否置顶联系人
}
}
/** 获得当前登录用户的好友列表 */
export function getMyFriendList() {
return requestClient.get<ImFriendApi.FriendRespVO[]>('/im/friend/list');
}
/** 增量拉取当前用户的好友关系(重连 / 离线补偿) */
export function pullMyFriendList(params: {
lastId?: number;
lastUpdateTime?: number;
limit: number;
}) {
return requestClient.get<ImFriendApi.FriendRespVO[]>('/im/friend/pull', { params });
}
/** 获得好友详情 */
export function getFriend(friendUserId: number | string) {
return requestClient.get<ImFriendApi.FriendRespVO>('/im/friend/get', {
params: { friendUserId },
});
}
/** 删除好友(单向软删除) */
export function deleteFriend(friendUserId: number | string, clear: boolean) {
return requestClient.delete<boolean>('/im/friend/delete', {
params: { friendUserId, clear },
});
}
/** 更新好友信息(备注 / 免打扰 / 联系人置顶) */
export function updateFriend(data: ImFriendApi.FriendUpdateReqVO) {
return requestClient.put<boolean>('/im/friend/update', data);
}
/** 拉黑好友(必须先是好友;单边屏蔽对方私聊消息) */
export function blockFriend(friendUserId: number | string) {
return requestClient.put<boolean>('/im/friend/block', undefined, {
params: { friendUserId },
});
}
/** 移出黑名单 */
export function unblockFriend(friendUserId: number | string) {
return requestClient.put<boolean>('/im/friend/unblock', undefined, {
params: { friendUserId },
});
}