From 27cd042df9aca0383a49f3514bc21958dd890912 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 29 六月 2026 15:42:23 +0800
Subject: [PATCH] 银川 1.联调产品维护页面 2.添加IM即时通讯模块

---
 src/api/im/message/group/index.ts |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 0 deletions(-)

diff --git a/src/api/im/message/group/index.ts b/src/api/im/message/group/index.ts
new file mode 100644
index 0000000..200e1c6
--- /dev/null
+++ b/src/api/im/message/group/index.ts
@@ -0,0 +1,92 @@
+import { requestClient } from '#/api/request';
+
+export namespace ImGroupMessageApi {
+  /** 缇よ亰娑堟伅 Response VO */
+  export interface GroupMessageRespVO {
+    id: number; // 娑堟伅缂栧彿
+    clientMessageId: string; // 瀹㈡埛绔秷鎭紪鍙�
+    senderId: number; // 鍙戦�佷汉缂栧彿
+    groupId: number; // 缇ょ紪鍙�
+    type: number; // 鍐呭绫诲瀷
+    content: string; // 娑堟伅鍐呭锛圝SON 鏍煎紡锛�
+    status: number; // 娑堟伅鐘舵��
+    sendTime: string; // 鍙戦�佹椂闂�
+    atUserIds?: number[]; // @ 鐩爣鐢ㄦ埛缂栧彿鍒楄〃
+    receiverUserIds?: number[]; // 瀹氬悜鎺ユ敹鐢ㄦ埛缂栧彿鍒楄〃
+    receiptStatus?: number; // 鍥炴墽鐘舵��
+    readCount?: number; // 宸茶浜烘暟锛堝洖鎵ф秷鎭�佷笖鍙戦�佷汉涓哄綋鍓嶇敤鎴锋椂鏈夊�硷級
+  }
+
+  /** 缇よ亰娑堟伅鍙戦�� Request VO */
+  export interface GroupMessageSendReqVO {
+    clientMessageId: string; // 瀹㈡埛绔秷鎭紪鍙�
+    groupId: number; // 缇ょ紪鍙�
+    type: number; // 鍐呭绫诲瀷
+    content: string; // 娑堟伅鍐呭锛圝SON 鏍煎紡锛�
+    atUserIds?: number[]; // @ 鐩爣鐢ㄦ埛缂栧彿鍒楄〃
+    receipt?: boolean; // 鏄惁闇�瑕佸洖鎵�
+  }
+
+  /** 缇よ亰鍘嗗彶娑堟伅鍒楄〃 Request VO */
+  export interface GroupMessageListReqVO {
+    groupId: number | string; // 缇ょ紪鍙�
+    maxId?: number | string; // 璧峰娑堟伅缂栧彿锛堜笉鍚級锛屼负绌哄垯浠庢渶鏂版秷鎭紑濮�
+    limit: number; // 鎷夊彇鏁伴噺锛�1 ~ 200锛�
+  }
+}
+
+
+/** 鍙戦�佺兢鑱婃秷鎭� */
+export function sendGroupMessage(data: ImGroupMessageApi.GroupMessageSendReqVO) {
+  return requestClient.post<ImGroupMessageApi.GroupMessageRespVO>(
+    '/im/message/group/send',
+    data,
+  );
+}
+
+/** 鎷夊彇缇よ亰娑堟伅锛堝閲忥級 */
+export function pullGroupMessageList(
+  params: { minId: number | string; size: number },
+  signal?: AbortSignal,
+) {
+  return requestClient.get<ImGroupMessageApi.GroupMessageRespVO[]>(
+    '/im/message/group/pull',
+    { params, signal },
+  );
+}
+
+/** 鏌ヨ缇よ亰鍘嗗彶娑堟伅 */
+export function getGroupMessageList(params: ImGroupMessageApi.GroupMessageListReqVO) {
+  return requestClient.get<ImGroupMessageApi.GroupMessageRespVO[]>(
+    '/im/message/group/list',
+    { params },
+  );
+}
+
+/** 鏍囪缇よ亰娑堟伅宸茶 */
+export function readGroupMessages(
+  groupId: number | string,
+  messageId: number | string,
+) {
+  return requestClient.put<boolean>('/im/message/group/read', undefined, {
+    params: { groupId, messageId },
+  });
+}
+
+/** 鎾ゅ洖缇よ亰娑堟伅 */
+export function recallGroupMessage(id: number | string) {
+  return requestClient.delete<ImGroupMessageApi.GroupMessageRespVO>(
+    '/im/message/group/recall',
+    { params: { id } },
+  );
+}
+
+/** 鑾峰彇缇ゆ秷鎭凡璇荤敤鎴峰垪琛� */
+export function getGroupReadUsers(params: {
+  groupId: number | string;
+  messageId: number | string;
+}) {
+  return requestClient.get<number[]>('/im/message/group/get-read-user-ids', {
+    params,
+  });
+}

--
Gitblit v1.9.3