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/manager/statistics/index.ts |   88 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/src/api/im/manager/statistics/index.ts b/src/api/im/manager/statistics/index.ts
new file mode 100644
index 0000000..fb4a040
--- /dev/null
+++ b/src/api/im/manager/statistics/index.ts
@@ -0,0 +1,88 @@
+import { requestClient } from '#/api/request';
+
+export namespace ImManagerStatisticsApi {
+  /** 缁熻姒傝 */
+  export interface Overview {
+    totalUser: number;
+    newUserToday: number;
+    totalGroup: number;
+    newGroupToday: number;
+    activeUserDaily: number;
+    activeUserWeekly: number;
+    activeUserMonthly: number;
+    privateMessageToday: number;
+    groupMessageToday: number;
+    privateMessageYesterday: number;
+    groupMessageYesterday: number;
+  }
+
+  /** 瓒嬪娍鏁版嵁 */
+  export interface Trend {
+    dates: string[];
+    series: Record<string, number[]>;
+  }
+
+  /** 娑堟伅绫诲瀷鍒嗗竷 */
+  export interface MessageType {
+    type: number; // 鍙傝 ImContentTypeEnum 鏋氫妇绫伙紝鐢卞墠绔寜 DICT_TYPE.IM_CONTENT_TYPE 缈昏瘧
+    value: number;
+  }
+
+  /** 缇よ妯″垎甯� */
+  export interface GroupSize {
+    range: string;
+    count: number;
+  }
+
+  /** 娑堟伅鍙戦�佹帓琛� */
+  export interface TopSender {
+    userId: number;
+    nickname: string;
+    messageCount: number;
+  }
+}
+
+
+/** 鑾峰緱 KPI 姒傝 */
+export function getStatisticsOverview() {
+  return requestClient.get<ImManagerStatisticsApi.Overview>(
+    '/im/manager/statistics/overview',
+  );
+}
+
+/** 鑾峰緱娑堟伅瓒嬪娍锛堢鑱� + 缇よ亰鍙岀嚎锛� */
+export function getMessageTrend(days: number) {
+  return requestClient.get<ImManagerStatisticsApi.Trend>(
+    '/im/manager/statistics/message-trend',
+    { params: { days } },
+  );
+}
+
+/** 鑾峰緱鐢ㄦ埛瓒嬪娍锛堟柊澧炴敞鍐� + 鏃ユ椿鍙岀嚎锛� */
+export function getUserTrend(days: number) {
+  return requestClient.get<ImManagerStatisticsApi.Trend>(
+    '/im/manager/statistics/user-trend',
+    { params: { days } },
+  );
+}
+
+/** 鑾峰緱鍐呭绫诲瀷鍒嗗竷锛堟渶杩� 30 澶╋級 */
+export function getMessageTypeDistribution() {
+  return requestClient.get<ImManagerStatisticsApi.MessageType[]>(
+    '/im/manager/statistics/message-type-distribution',
+  );
+}
+
+/** 鑾峰緱缇よ妯″垎甯� */
+export function getGroupSizeDistribution() {
+  return requestClient.get<ImManagerStatisticsApi.GroupSize[]>(
+    '/im/manager/statistics/group-size-distribution',
+  );
+}
+
+/** 鑾峰緱娑堟伅 TOP 鍙戦�佽�咃紙鏈�杩� 30 澶╋級 */
+export function getTopSenders() {
+  return requestClient.get<ImManagerStatisticsApi.TopSender[]>(
+    '/im/manager/statistics/top-senders',
+  );
+}

--
Gitblit v1.9.3