diff --git a/src/api/im/home/face/pack/index.ts b/src/api/im/home/face/pack/index.ts index c28571d6a..713fa580d 100644 --- a/src/api/im/home/face/pack/index.ts +++ b/src/api/im/home/face/pack/index.ts @@ -1,6 +1,6 @@ import request from '@/config/axios' -/** 用户端表情包项(精简版) */ +// 用户端表情包项(精简版) export interface ImFacePackUserItemVO { id: number url: string @@ -9,7 +9,7 @@ export interface ImFacePackUserItemVO { height: number } -/** 用户端表情包 + 嵌套 items */ +// 用户端表情包 + 嵌套 items export interface ImFacePackUserVO { id: number name: string @@ -17,7 +17,7 @@ export interface ImFacePackUserVO { items: ImFacePackUserItemVO[] } -/** 拉取所有启用的系统表情包(含表情列表) */ +// 拉取所有启用的系统表情包(含表情列表) export const getFacePackList = () => { return request.get({ url: '/im/face-pack/list' }) } diff --git a/src/api/im/home/face/useritem/index.ts b/src/api/im/home/face/useritem/index.ts index 91f71cb7d..c3743b0aa 100644 --- a/src/api/im/home/face/useritem/index.ts +++ b/src/api/im/home/face/useritem/index.ts @@ -1,6 +1,6 @@ import request from '@/config/axios' -/** 个人表情 */ +// 个人表情 export interface ImFaceUserItemVO { id: number url: string @@ -9,7 +9,7 @@ export interface ImFaceUserItemVO { height: number } -/** 添加个人表情请求 */ +// 添加个人表情请求 export interface ImFaceUserItemSaveReqVO { url: string name?: string @@ -17,17 +17,17 @@ export interface ImFaceUserItemSaveReqVO { height: number } -/** 获取我的个人表情列表 */ +// 获取我的个人表情列表 export const getFaceUserItemList = () => { return request.get({ url: '/im/face-user-item/list' }) } -/** 添加个人表情;同 URL 重复添加服务端抛 FACE_USER_ITEM_DUPLICATED,调用方按 catch 提示「已添加过」 */ +// 添加个人表情 export const createFaceUserItem = (data: ImFaceUserItemSaveReqVO) => { return request.post({ url: '/im/face-user-item/create', data }) } -/** 删除个人表情 */ +// 删除个人表情 export const deleteFaceUserItem = (id: number) => { return request.delete({ url: '/im/face-user-item/delete?id=' + id }) } diff --git a/src/api/im/home/rtc/index.ts b/src/api/im/home/rtc/index.ts index 31abb85c6..91989fa5a 100644 --- a/src/api/im/home/rtc/index.ts +++ b/src/api/im/home/rtc/index.ts @@ -1,111 +1,35 @@ import request from '@/config/axios' -import type { - ImCallEndReasonValue, - ImCallParticipantStatusValue -} from '@/views/im/utils/constants' -/** 发起通话请求 VO */ -export interface ImRtcCallInviteReqVO { - scene: number +// 创建新通话请求 VO +export interface ImRtcCallCreateReqVO { + conversationType: number mediaType: number - peerUserId?: number groupId?: number - /** 群通话场景:前端选定的子集;为空回退到群活跃成员 */ - inviteeIds?: number[] + inviteeIds: number[] // 被邀请的用户编号集合;私聊必传 1 个对端,群聊必传至少 1 人 } -/** 通话中添加成员请求 VO */ -export interface ImRtcCallInviteMoreReqVO { +// 通话中追加邀请请求 VO;仅群通话可用 +export interface ImRtcCallInviteReqVO { room: string inviteeIds: number[] } -/** 通话会话 VO;invite / join / accept / refreshToken 共用 */ +// 通话会话 VO;create / join / accept / refreshToken 共用 export interface ImRtcCallRespVO { - /** 业务通话编号(同时作为 LiveKit 房间名) */ - room: string + room: string // 业务通话编号(同时作为 LiveKit 房间名) livekitUrl: string - token?: string - scene: number + token?: string // ENDED 状态时为 null(无需 connect LiveKit) + conversationType: number mediaType: number status: number + endReason?: number // 结束原因;仅 status=ENDED 时有值 inviterId: number groupId?: number inviteeIds?: number[] joinedUserIds?: number[] } -/** RTC_CALL 通话信令载荷(通话信令统一入口);status 区分子类型(复用参与者状态枚举);走 ImPrivateMessageDTO.content 仅推参与方 */ -export interface ImRtcCallNotification { - /** 信令对应的参与者状态变迁;取值参见 ImCallParticipantStatus */ - status: ImCallParticipantStatusValue - /** 业务通话编号(同时作为 LiveKit 房间名) */ - room: string - conversationType: number - mediaType: number - groupId?: number - /** INVITE 专属 */ - livekitUrl?: string - /** INVITE 专属 */ - token?: string - /** INVITE 专属 */ - inviterUserId?: number - /** INVITE 专属 */ - inviterNickname?: string - /** INVITE 专属 */ - inviterAvatar?: string - /** ACCEPT / REJECT / CANCEL / HUNGUP 专属 */ - operatorUserId?: number - /** 操作者昵称;按需展示,普通文案不依赖 */ - operatorNickname?: string - /** 操作者头像;按需展示,普通文案不依赖 */ - operatorAvatar?: string -} - -/** RTC_PARTICIPANT_CONNECTED 通话参与者加入载荷;LiveKit webhook participant_joined 转推;callStore +userId 进 joinedUserIds;群聊场景非邀请成员靠 mediaType/inviterUserId 字段首次填充胶囊条 */ -export interface ImRtcParticipantConnectedNotification { - room: string - userId: number - conversationType: number - groupId?: number - mediaType?: number - inviterUserId?: number -} - -/** RTC_PARTICIPANT_DISCONNECTED 通话参与者离开载荷;LiveKit webhook participant_left 转推;callStore -userId 出 joinedUserIds */ -export interface ImRtcParticipantDisconnectedNotification { - room: string - userId: number - conversationType: number - groupId?: number -} - -/** RTC_CALL_START 通话开始载荷;仅群聊;入消息流;前端渲染聊天 tip「{inviterNickname} 发起了{voice/video}通话」;与 END 两段式配对 */ -export interface ImRtcCallStartNotification { - room: string - conversationType: number - mediaType: number - inviterUserId: number - inviterNickname?: string - inviterAvatar?: string -} - -/** RTC_CALL_END 通话结束载荷;入消息流;私聊渲染准气泡,群聊渲染 tip「{voice/video}通话已结束 [时长 X]」 */ -export interface ImRtcCallEndNotification { - room: string - conversationType: number - mediaType: number - endReason: ImCallEndReasonValue - durationSeconds?: number - /** 操作者用户编号;HANGUP/CANCEL/REJECT 触发人;webhook 兜底为 null */ - operatorUserId?: number - /** 操作者昵称;按需展示,普通文案不依赖 */ - operatorNickname?: string - /** 操作者头像;按需展示,普通文案不依赖 */ - operatorAvatar?: string -} - -/** 群活跃通话查询响应;不含 token */ +// 群活跃通话查询响应;不含 token export interface ImRtcGroupCallRespVO { room: string groupId: number @@ -115,47 +39,47 @@ export interface ImRtcGroupCallRespVO { inviteeIds?: number[] } -/** 发起新通话;同好友对 / 同群已有进行中通话直接抛错(群场景应改走 joinCall) */ -export const inviteCall = (data: ImRtcCallInviteReqVO) => { - return request.post({ url: '/im/rtc/invite', data }) +// 创建新通话;私聊或群聊根据 conversationType 区分 +export const createCall = (data: ImRtcCallCreateReqVO) => { + return request.post({ url: '/im/rtc/create', data }) } -/** 加入已有群通话;用于胶囊条「加入」按钮 */ +// 通话中追加邀请;仅群通话可用 +export const inviteCall = (data: ImRtcCallInviteReqVO) => { + return request.post({ url: '/im/rtc/invite', data }) +} + +// 加入已有群通话;用于胶囊条「加入」按钮 export const joinCall = (room: string) => { return request.post({ url: '/im/rtc/join', params: { room } }) } -/** 通话中添加成员;仅群通话可用 */ -export const inviteMoreCall = (data: ImRtcCallInviteMoreReqVO) => { - return request.post({ url: '/im/rtc/invite-more', data }) -} - -/** 接听通话 */ +// 接听通话 export const acceptCall = (room: string) => { return request.post({ url: '/im/rtc/accept', params: { room } }) } -/** 拒绝通话 */ +// 拒绝通话 export const rejectCall = (room: string) => { return request.post({ url: '/im/rtc/reject', params: { room } }) } -/** 取消邀请;主叫接通前调用 */ +// 取消邀请;主叫接通前调用 export const cancelCall = (room: string) => { return request.post({ url: '/im/rtc/cancel', params: { room } }) } -/** 离开通话;接通后调用 */ +// 离开通话;接通后调用 export const leaveCall = (room: string) => { return request.post({ url: '/im/rtc/leave', params: { room } }) } -/** 重新签发 Token;客户端重连或 Token 过期续期 */ +// 重新签发 Token;客户端重连或 Token 过期续期 export const refreshCallToken = (room: string) => { return request.get({ url: '/im/rtc/refresh-token', params: { room } }) } -/** 查询当前进行中的通话;目前仅群聊场景(胶囊条),后端 API 已留扩展点;返回 null 表示无活跃通话 */ +// 查询当前进行中的通话;目前仅群聊场景(胶囊条),返回 null 表示无活跃通话 export const getActiveCall = (groupId: number) => { return request.get({ url: '/im/rtc/get-active-call', diff --git a/src/api/im/manager/face/item/index.ts b/src/api/im/manager/face/item/index.ts index 70ebecbc0..4d2d9718e 100644 --- a/src/api/im/manager/face/item/index.ts +++ b/src/api/im/manager/face/item/index.ts @@ -12,32 +12,32 @@ export interface ImManagerFacePackItemVO { createTime?: Date } -/** 获得表情分页 */ +// 获得表情分页 export const getManagerFacePackItemPage = (params: PageParam) => { return request.get({ url: '/im/manager/face-pack-item/page', params }) } -/** 获得表情详情 */ +// 获得表情详情 export const getManagerFacePackItem = (id: number) => { return request.get({ url: '/im/manager/face-pack-item/get?id=' + id }) } -/** 新增表情 */ +// 新增表情 export const createManagerFacePackItem = (data: ImManagerFacePackItemVO) => { return request.post({ url: '/im/manager/face-pack-item/create', data }) } -/** 修改表情 */ +// 修改表情 export const updateManagerFacePackItem = (data: ImManagerFacePackItemVO) => { return request.put({ url: '/im/manager/face-pack-item/update', data }) } -/** 删除表情 */ +// 删除表情 export const deleteManagerFacePackItem = (id: number) => { return request.delete({ url: '/im/manager/face-pack-item/delete?id=' + id }) } -/** 批量删除表情 */ +// 批量删除表情 export const deleteManagerFacePackItemList = (ids: number[]) => { return request.delete({ url: '/im/manager/face-pack-item/delete-list', diff --git a/src/api/im/manager/face/pack/index.ts b/src/api/im/manager/face/pack/index.ts index b87ee8a81..5c221941c 100644 --- a/src/api/im/manager/face/pack/index.ts +++ b/src/api/im/manager/face/pack/index.ts @@ -9,32 +9,32 @@ export interface ImManagerFacePackVO { createTime?: Date } -/** 获得表情包分页 */ +// 获得表情包分页 export const getManagerFacePackPage = (params: PageParam) => { return request.get({ url: '/im/manager/face-pack/page', params }) } -/** 获得表情包详情 */ +// 获得表情包详情 export const getManagerFacePack = (id: number) => { return request.get({ url: '/im/manager/face-pack/get?id=' + id }) } -/** 新增表情包 */ +// 新增表情包 export const createManagerFacePack = (data: ImManagerFacePackVO) => { return request.post({ url: '/im/manager/face-pack/create', data }) } -/** 修改表情包 */ +// 修改表情包 export const updateManagerFacePack = (data: ImManagerFacePackVO) => { return request.put({ url: '/im/manager/face-pack/update', data }) } -/** 删除表情包 */ +// 删除表情包 export const deleteManagerFacePack = (id: number) => { return request.delete({ url: '/im/manager/face-pack/delete?id=' + id }) } -/** 批量删除表情包 */ +// 批量删除表情包 export const deleteManagerFacePackList = (ids: number[]) => { return request.delete({ url: '/im/manager/face-pack/delete-list', diff --git a/src/api/im/manager/face/userItem/index.ts b/src/api/im/manager/face/userItem/index.ts index fe351bbbb..e7d6aebbc 100644 --- a/src/api/im/manager/face/userItem/index.ts +++ b/src/api/im/manager/face/userItem/index.ts @@ -11,12 +11,12 @@ export interface ImManagerFaceUserItemVO { createTime?: Date } -/** 获得用户表情分页 */ +// 获得用户表情分页 export const getManagerFaceUserItemPage = (params: PageParam) => { return request.get({ url: '/im/manager/face-user-item/page', params }) } -/** 删除用户表情 */ +// 删除用户表情 export const deleteManagerFaceUserItem = (id: number) => { return request.delete({ url: '/im/manager/face-user-item/delete?id=' + id }) }