复制项目

This commit is contained in:
kim.dev.6789
2026-01-14 22:16:44 +08:00
parent e2577b8cee
commit e50142a3b9
691 changed files with 97009 additions and 1 deletions

267
docs/statistics-api.md Normal file
View File

@@ -0,0 +1,267 @@
# 统计接口文档
## 接口列表
### 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、通知