Files
EchoChat/docs/api/admin/contact.md
bujinyuan a508a4cfbc feat(phase2a): 前台联系人页面 + 管理端在线监控/好友管理 + API 文档
前台联系人模块(ui-ux-pro-max 规范):
- contact/index.vue: 好友列表(搜索/在线状态/骨架屏)
- contact/request.vue: 好友申请列表(接受/拒绝/防重复提交)
- contact/detail.vue: 好友详情(备注/分组/拉黑/删除)
- contact/search.vue: 搜索添加好友 + 好友推荐
- contact/groups.vue: 好友分组管理(CRUD)
- contact/blacklist.vue: 黑名单管理

管理端前端:
- views/monitor/online.vue: 在线监控(统计卡片/用户表格/30s 自动刷新)
- views/contact/list.vue: 好友关系管理(分页表格/强制删除)
- api/monitor.js + api/contact.js: 管理端 API 封装
- 路由 + 侧边栏导航更新

API 文档(4 份):
- docs/api/frontend/contact.md: 17 个接口完整文档
- docs/api/frontend/websocket.md: 前端 WS 事件协议
- docs/api/admin/online.md: 在线监控 API
- docs/api/admin/contact.md: 好友管理 API

进度文档更新至 Phase 2a 全部完成

Made-with: Cursor
2026-03-02 17:32:52 +08:00

79 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 管理端好友关系管理 API
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
> 所有接口需要 JWT + admin/super_admin 角色权限
---
## 接口列表
| 方法 | 路径 | 权限 | 说明 |
|------|------|------|------|
| GET | /api/v1/admin/contacts | admin | 获取所有好友关系列表(分页) |
| DELETE | /api/v1/admin/contacts/:id | admin | 删除好友关系(双向解除) |
---
## 1. 获取所有好友关系列表
`GET /api/v1/admin/contacts`
**说明:** 分页查询系统中所有好友关系记录,包含双方用户名信息。
**查询参数:**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | int | 否 | 页码,默认 1 |
| page_size | int | 否 | 每页数量,默认 20 |
**成功响应:**
```json
{
"code": 0,
"message": "ok",
"data": {
"total": 150,
"list": [
{
"id": 1,
"user_id": 1,
"username": "zhangsan",
"friend_id": 2,
"friend_username": "lisi",
"remark": "同事",
"status": 1,
"created_at": "2026-03-01 10:00:00"
}
]
}
}
```
**status 状态码:**
| 值 | 说明 |
|-----|------|
| 0 | 待确认pending |
| 1 | 已通过accepted |
| 2 | 已拒绝rejected |
| 3 | 已拉黑blocked |
---
## 2. 删除好友关系
`DELETE /api/v1/admin/contacts/:id`
**路径参数:** `id` — 好友关系记录 ID
**说明:** 管理员可以强制删除任意好友关系。此操作会双向解除(同时删除 A→B 和 B→A 的关系记录)。
**成功响应:**
```json
{
"code": 0,
"message": "ok"
}
```