Commit Graph

20 Commits

Author SHA1 Message Date
bujinyuan
19979da59e feat(phase2c): 群聊与已读回执功能完整实现
Phase 2c 全部 14 个 Task 完成,包含:

后端(Go):
- MinIO 文件存储服务集成(Docker + Go SDK + 通用上传 API)
- Group 模块完整实现(DAO + Service + Controller + Router + Wire)
  - 18 个群管理 REST API + 11 个 WS 群事件推送
  - 群创建/解散/邀请/踢人/退出/转让群主/设管理员/禁言/全体禁言/群公告/群昵称/免打扰/搜索
- IM Service 扩展(群消息发送/撤回 + @提醒 + 管理员无时限撤回)
- 已读回执后端(单聊会话级 last_read_msg_id + 群聊消息级 im_message_reads)
- 管理端群组管理(列表/详情/解散)
- 数据库迁移(3 张新表 + 2 张表字段扩展)

前端(uni-app):
- 群聊 Store + API 封装 + 11 个 WS 事件监听
- 已读回执 UI(单聊已读/未读标记 + 群聊 X人已读 + 已读详情页)
- 7 个群聊页面(对话/创建/设置/成员/邀请/审批/搜索)
- 会话列表改造(全部/单聊/群聊 Tab + @标记 + 免打扰标识)

管理端(Vue 3 + Element Plus):
- 群组列表页(搜索/分页/详情弹窗/解散群聊)
- 侧边栏群组管理入口

文档同步:进度/架构/设计/API/规范文档全部更新

Made-with: Cursor
2026-03-04 14:58:23 +08:00
bujinyuan
13d26ca43a docs: Phase 2c 规划同步到全局文档
- system-architecture.md: 新增 group/file 模块,admin 模块扩展群聊管理
- echochat-system-design.md: Phase 2c 开发分期详情 + 19 个新 API + 4 个管理端 API
- api/README.md: 新增 group.md 导航(前台+管理端)
- frontend-backend-integration.md: 更新最后修改时间

Made-with: Cursor
2026-03-04 10:43:33 +08:00
bujinyuan
9399f86a19 feat:单聊页面bug修复+后台管理端好友页面bug修复+项目进度、记忆文件更新 2026-03-04 10:03:16 +08:00
bujinyuan
2c59500e27 fix(phase2a): 代码审查修复 - 8项关键/重要问题
安全修复:
- WebSocket Token 增加 Redis 有效性校验(已登出用户无法建立 WS)

功能修复:
- GetRecommendFriends 改为批量查询,正确返回用户名/昵称/头像
- 上下线通知:OnlineService 通过接口注入获取好友列表推送状态变更
- 管理端在线用户 API 补充用户名信息

代码质量:
- 所有 json.Marshal/Redis 错误增加检查与日志
- ContactController 13 个 endpoint 统一走 handleError 业务错误映射
- 管理端 Controller 补全包注释、函数注释和结构化日志
- 前端 5 个联系人页面 avatar 工具函数抽取到 utils/avatar.js

Made-with: Cursor
2026-03-02 18:48:28 +08:00
bujinyuan
8ec0261427 docs: 同步全部项目文档至 Phase 2a 完成状态
- 架构设计文档:更新模块职责表(ws/contact 标记已完成)、路由架构、分层图
- 总体系统设计:联系人 API 扩展至 17 个、管理端 API 补充在线监控和好友管理
- Phase 2a 设计文档:状态标记为已完成
- API README:导航表 + 目录结构 + 联系人模块错误码
- 开发规范:新增 WebSocket 事件联动规范(第 8 节)
- 项目规则:新增「文档自动同步规则」,每个 Task 完成后自动检查更新文档

Made-with: Cursor
2026-03-02 17:53:46 +08:00
bujinyuan
883598d5fa docs: Phase 1 完成 — 同步更新全部文档至最新进度
- system-architecture.md: 标注 Docker 部署架构实现状态
- phase1-foundation-and-auth.md: 添加 Phase 1 完成标记
- api/README.md: 添加各模块实现状态标注(Phase 1/2/3)
- api/admin/user.md: 修正角色分配权限、补充创建用户响应示例
- project-context.mdc: 更新当前进度为 Phase 1 完成

Made-with: Cursor
2026-03-02 11:42:45 +08:00
bujinyuan
4d03215fe4 feat: Phase 1 完成 — 基础设施 + 用户认证 + 管理端 + 端到端验证
Phase 1 (基础设施与用户认证) 全部 11 个 Task 开发完成:

后端 (Go):
- Auth 模块: 注册/登录/JWT(有状态)/Profile/密码修改
- Admin 模块: 用户列表/详情/禁用/启用/角色分配/创建用户
- 中间件: JWT认证 + RBAC角色权限 + 请求日志 + CORS + Panic恢复
- Dockerfile 多阶段构建 + Docker Compose 全栈部署

前台 (uni-app):
- 登录/注册页面 + 自定义 TabBar + 个人中心
- 请求封装 + 状态管理 (Pinia)

管理端 (Vue 3 + Element Plus):
- 登录/仪表盘/用户列表/用户详情
- Axios 封装 + 路由守卫 + Pinia 状态管理

验证:
- 全流程 API 端到端测试通过
- Playwright 页面自动化验证通过
- code-reviewer 代码审查通过

Made-with: Cursor
2026-03-02 11:31:24 +08:00
bujinyuan
e9bd4dd204 fix: 时间精度精确到秒 + 同步全部文档到最新状态
时间字段修正:
- init.sql: 所有 TIMESTAMP 改为 TIMESTAMP(0),精确到秒
- GORM 模型: 所有时间字段添加 type:timestamp(0) tag
- 已有数据库表通过 ALTER TABLE 修正列类型

文档同步(架构设计 + 实施步骤):
- system-architecture.md:
  - auth 模块描述更新为"有状态 JWT Token 管理(Redis 存储)"
  - 开发环境端口 8080 → 8085
- phase1-foundation-and-auth.md:
  - Go 版本 1.22+ → 1.23+
  - 常量命名更新为驼峰风格(UserStatusActive / RoleUser 等)
  - Task 4 完整重写:增加 token_store.go、TokenValidator 接口、有状态 JWT
  - Task 5 端口号 8080 → 8085,测试命令增加登出失效验证
  - 依赖版本选择原则说明

Made-with: Cursor
2026-02-28 17:04:47 +08:00
bujinyuan
4d3d486902 refactor(middleware): 精简请求日志 — 采用社区标准分层策略
- 移除 Request Body 记录(交由 Controller 层以结构化参数形式记录)
- 移除正常响应 Body 的 DEBUG 记录(减少日志量)
- 保留 HTTP 元信息:method/path/handler/status/latency/ip/query
- 保留错误响应(4xx/5xx)的 Response Body 记录
- 导出 IsSensitivePath 供 Controller 层调用
- 重写架构文档 8.6 节:分层日志架构表、字段说明、分级策略
- 更新 phase1 实施计划中间件描述

Made-with: Cursor
2026-02-28 16:10:07 +08:00
bujinyuan
a6ef49a3e0 feat(middleware): 请求日志新增 handler 字段定位实际处理函数
- 通过 c.HandlerName() 获取处理请求的 handler 函数名
- 解决 caller 始终指向中间件文件无法定位业务代码的问题
- 同步更新架构文档日志示例,补充 caller/handler 说明

Made-with: Cursor
2026-02-28 15:56:32 +08:00
bujinyuan
99c2f4f86a docs: 同步更新请求日志中间件文档(请求参数 + 响应数据记录策略)
- system-architecture.md 8.6: 完整记录策略表、状态码分级、日志输出示例
- phase1 实施计划 Task 2: 更新 logger 中间件描述

Made-with: Cursor
2026-02-28 15:51:27 +08:00
bujinyuan
2d9bc10c6d docs: 新增路由架构设计(模块自包含 + 主路由汇总)
- system-architecture.md: 3.2.1 路由架构(目录结构、调用关系、命名规范)
- system-architecture.md: 5.1 更新微服务预留规则(模块自包含路由)
- phase1 实施计划: Task 5 更新文件清单和步骤说明

Made-with: Cursor
2026-02-28 15:31:46 +08:00
bujinyuan
323232d875 docs: 同步更新日志系统文档(文件轮转 + 分级存储)
- system-architecture.md: 更新环境日志策略表,新增文件输出和轮转策略说明
- phase1 实施计划: 更新 LogConfig 结构体定义,补充 LogFileConfig

Made-with: Cursor
2026-02-28 15:18:20 +08:00
bujinyuan
7dc8a27c89 docs: 记录 RBAC 权限扩展规划
- 设计文档:在角色表后添加细粒度权限点扩展规划(预留表结构、权限点示例、中间件扩展方式)
- 架构文档:auth 模块说明标注当前粗粒度 + 预留扩展

当前 MVP 使用 3 角色(user/admin/super_admin),后期按需引入权限点机制。

Made-with: Cursor
2026-02-28 10:14:06 +08:00
bujinyuan
ee6a07ca64 docs: 日志时间格式去掉毫秒,统一到秒
日志示例中的时间从 yyyy-MM-dd HH:mm:ss.SSS 修正为 yyyy-MM-dd HH:mm:ss

Made-with: Cursor
2026-02-28 10:03:19 +08:00
bujinyuan
1e53df7539 docs: 文档一致性检查修复
- 架构文档日志格式示例时间改为亚洲格式 yyyy-MM-dd HH:mm:ss.SSS
- 实施计划日志格式示例同步修正
- 修复 Task 2 中 Step 编号重复(两个 Step 9 → Step 9/10/11)

Made-with: Cursor
2026-02-28 09:59:41 +08:00
bujinyuan
44fa5a3830 docs: 统一时间格式为亚洲友好的日期时间字符串
所有文档中的时间字段统一为 yyyy-MM-dd HH:mm:ss 格式(Asia/Shanghai):
- 移除 ISO 8601 格式(2026-02-27T10:00:00Z)
- 移除 Unix 时间戳(1740700000)
- 响应字段从 timestamp(int64) 改为 time(string)
- API README 新增「时间格式规范」章节
- 涉及 10 个文档文件

Made-with: Cursor
2026-02-28 09:47:42 +08:00
bujinyuan
8bed227060 docs: 补充完善日志系统与链路追踪设计
- 架构文档新增第八节:日志系统与链路追踪设计
  - Trace ID 全链路追踪(HTTP/WebSocket/跨服务)
  - 日志级别规范(DEBUG/INFO/WARN/ERROR/FATAL)
  - 结构化日志格式(开发文本/生产JSON)
  - 函数级日志规范(入口/出口模式)
  - WebSocket 日志追踪
  - Go ↔ mediasoup Node 跨服务链路关联
  - 敏感信息脱敏规则
  - 前端错误上报机制
- 实施计划 Task 2 补充日志系统详细实现步骤

Made-with: Cursor
2026-02-27 16:36:57 +08:00
bujinyuan
8361275e70 docs: PostgreSQL 版本从 16 升级为 17
所有文档统一更新 PostgreSQL 版本号为 17,
17 版本已发布超过一年,足够稳定且性能更优。

Made-with: Cursor
2026-02-27 16:31:36 +08:00
bujinyuan
4458f40025 docs: 完善项目文档体系
- 数据库 SQL 所有字段添加 COMMENT 注释,枚举字段详细标注各值含义
- 新增 docs/architecture/ 系统架构文档(分层架构、数据流、演进路径)
- API 文档按模块拆分为 8 个独立文档(auth/contact/im/meeting/notify/admin/websocket)
- 补充 README.md 项目说明(技术栈、架构、快速开始、功能规划、文档导航)

Made-with: Cursor
2026-02-27 16:27:07 +08:00