# 统计接口文档 ## 接口列表 ### 1. POST /statistics/user/register **用户注册统计** **请求参数** (`UserRegisterCountReq`): ```json { "start": 0, // int64 - 开始时间(毫秒时间戳) "end": 0 // int64 - 结束时间(毫秒时间戳) } ``` **响应参数** (`UserRegisterCountResp`): ```json { "total": 0, // int64 - 总注册用户数 "before": 0, // int64 - 开始时间之前的注册用户数 "count": [] // []map[string]int64 - 时间段内每日注册用户数统计 } ``` --- ### 2. POST /statistics/user/active **活跃用户统计** **请求参数** (`GetActiveUserReq`): ```json { "start": 0, // int64 - 开始时间(毫秒时间戳) "end": 0, // int64 - 结束时间(毫秒时间戳) "group": "", // string - 群ID(选填) "ase": "", // string - 排序方式(选填) "pagination": { // Pagination - 分页参数 "pageNumber": 1, // int32 - 页码,从1开始 "showNumber": 10 // int32 - 每页数量 } } ``` **响应参数** (`GetActiveUserResp`): ```json { "msgCount": 0, // int64 - 消息总数 "userCount": 0, // int64 - 活跃用户总数 "dateCount": [], // []map[string]int64 - 每日活跃用户数统计 "users": [ // []ActiveUser - 活跃用户列表 { "user": { // UserInfo - 用户信息 "userID": "", "nickname": "", "faceURL": "", // ... 其他用户字段 }, "count": 0 // int64 - 该用户发送的消息数 } ] } ``` --- ### 3. POST /statistics/group/create **群创建统计** **请求参数** (`GroupCreateCountReq`): ```json { "start": 0, // int64 - 开始时间(毫秒时间戳) "end": 0 // int64 - 结束时间(毫秒时间戳) } ``` **响应参数** (`GroupCreateCountResp`): ```json { "total": 0, // int64 - 总创建群数 "before": 0, // int64 - 开始时间之前创建的群数 "count": [] // []map[string]int64 - 时间段内每日创建群数统计 } ``` --- ### 4. POST /statistics/group/active **活跃群统计** **请求参数** (`GetActiveGroupReq`): ```json { "start": 0, // int64 - 开始时间(毫秒时间戳) "end": 0, // int64 - 结束时间(毫秒时间戳) "ase": "", // string - 排序方式(选填) "pagination": { // Pagination - 分页参数 "pageNumber": 1, // int32 - 页码,从1开始 "showNumber": 10 // int32 - 每页数量 } } ``` **响应参数** (`GetActiveGroupResp`): ```json { "msgCount": 0, // int64 - 消息总数 "groupCount": 0, // int64 - 活跃群总数 "dateCount": [], // []map[string]int64 - 每日活跃群数统计 "groups": [ // []ActiveGroup - 活跃群列表 { "group": { // GroupInfo - 群信息 "groupID": "", "groupName": "", "faceURL": "", // ... 其他群字段 }, "count": 0 // int64 - 该群发送的消息数 } ] } ``` --- ### 5. POST /statistics/online_user_count **在线人数统计** **请求参数**: 无 **响应参数** (`OnlineUserCountResp`): ```json { "onlineCount": 0 // int64 - 当前在线用户数 } ``` --- ### 6. POST /statistics/online_user_count_trend **在线人数走势统计** **请求参数** (`OnlineUserCountTrendReq`): ```json { "startTime": 0, // int64 - 统计开始时间(毫秒时间戳),为空时默认最近24小时 "endTime": 0, // int64 - 统计结束时间(毫秒时间戳),为空时默认当前时间 "intervalMinutes": 15 // int32 - 统计间隔(分钟),仅支持15/30/60,必填 } ``` **响应参数** (`OnlineUserCountTrendResp`): ```json { "intervalMinutes": 15, // int32 - 统计间隔(分钟) "points": [ // []OnlineUserCountTrendItem - 走势数据点 { "timestamp": 0, // int64 - 区间起始时间(毫秒时间戳) "onlineCount": 0 // int64 - 区间内平均在线人数 } ] } ``` --- ### 7. POST /statistics/user_send_msg_count **用户发送消息总数统计** **请求参数** (`UserSendMsgCountReq`): 无 **响应参数** (`UserSendMsgCountResp`): ```json { "count24h": 0, // int64 - 最近24小时发送消息总数 "count7d": 0, // int64 - 最近7天发送消息总数 "count30d": 0 // int64 - 最近30天发送消息总数 } ``` --- ### 8. POST /statistics/user_send_msg_count_trend **用户发送消息走势统计** **请求参数** (`UserSendMsgCountTrendReq`): ```json { "userID": "", // string - 发送者用户ID,必填 "chatType": 1, // int32 - 聊天类型:1-单聊,2-群聊,必填 "startTime": 0, // int64 - 统计开始时间(毫秒时间戳),为空时默认最近24小时 "endTime": 0, // int64 - 统计结束时间(毫秒时间戳),为空时默认当前时间 "intervalMinutes": 15 // int32 - 统计间隔(分钟),仅支持15/30/60,必填 } ``` **响应参数** (`UserSendMsgCountTrendResp`): ```json { "userID": "", // string - 发送者用户ID "chatType": 1, // int32 - 聊天类型:1-单聊,2-群聊 "intervalMinutes": 15, // int32 - 统计间隔(分钟) "points": [ // []UserSendMsgCountTrendItem - 走势数据点 { "timestamp": 0, // int64 - 区间起始时间(毫秒时间戳) "count": 0 // int64 - 区间内发送消息数 } ] } ``` --- ### 9. POST /statistics/user_send_msg_query **用户发送消息查询** **请求参数** (`UserSendMsgQueryReq`): ```json { "userID": "", // string - 用户ID(选填) "startTime": 0, // int64 - 开始时间(毫秒时间戳,选填) "endTime": 0, // int64 - 结束时间(毫秒时间戳,选填) "content": "", // string - 内容搜索关键词(选填) "pageNumber": 1, // int32 - 页码,从1开始,默认1 "showNumber": 50 // int32 - 每页条数,默认50,最大200 } ``` **响应参数** (`UserSendMsgQueryResp`): ```json { "count": 0, // int64 - 总记录数 "pageNumber": 1, // int32 - 当前页码 "showNumber": 50, // int32 - 每页条数 "records": [ // []UserSendMsgQueryRecord - 消息记录列表 { "msgID": "", // string - 消息ID(服务端消息ID) "sendID": "", // string - 发送者ID "senderName": "", // string - 发送者昵称或名称 "recvID": "", // string - 接收者ID(群聊为群ID) "recvName": "", // string - 接收者昵称或名称(群聊为群名称) "contentType": 0, // int32 - 消息类型编号 "contentTypeName": "", // string - 消息类型名称(如:文本消息、图片消息等) "sessionType": 0, // int32 - 聊天类型编号 "chatTypeName": "", // string - 聊天类型名称(如:单聊、群聊、通知) "content": "", // string - 消息内容 "sendTime": 0 // int64 - 消息发送时间(毫秒时间戳) } ] } ``` --- ## 注意事项 1. **权限要求**: 所有统计接口都需要管理员权限(`authverify.CheckAdmin`) 2. **时间格式**: 所有时间字段均为毫秒时间戳(int64) 3. **统计间隔**: 走势统计接口的 `intervalMinutes` 仅支持 15、30、60 分钟 4. **分页参数**: - `pageNumber` 从 1 开始 - `showNumber` 默认值不同接口可能不同,最大值为 200 5. **消息类型**: - 文本消息、图片消息、语音消息、视频消息、文件消息、艾特消息、合并消息、名片消息、位置消息、自定义消息、撤回消息、Markdown消息等 6. **聊天类型**: - 单聊(1)、群聊(2)、通知