From cb9cd49627b65a4c0e137e08063271a8cefe1826 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 23 七月 2026 17:48:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
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