| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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', |
| | | ); |
| | | } |