bindbox-game/.trae/documents/Channel Management Implementation Plan.md
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

39 lines
2.3 KiB
Markdown

# 渠道管理与用户来源统计实施计划
针对您的需求,我将把现有的“小程序二维码生成”功能升级为完整的“渠道管理”系统,并增加用户来源统计。
## 1. 数据库变更 (Schema Changes)
* **新增 `channels` 表**:
* 用于定义推广渠道。
* 字段: `id` (主键), `name` (渠道名称), `code` (唯一标识, 用于二维码参数), `type` (类型: 如抖音/微信/线下), `remarks` (备注), `created_at`, `updated_at`
* **修改 `users` 表**:
* 新增 `channel_id` (BIGINT) 字段,建立与 `channels` 表的关联。
* (注意:现有 `douyin_id` 字段保留,用于业务逻辑,但统计归因将统一使用 `channel_id`)。
## 2. 后端开发 (Backend)
* **API 开发 (`internal/api/admin`)**:
* 实现渠道管理的 CRUD 接口:`List`, `Create`, `Update`, `Delete`
* **统计逻辑**: 在 `List` 接口中,同步查询 `users` 表,统计每个 `channel_id` 下的用户数量。
* **登录/注册逻辑优化 (`internal/service/user`)**:
* 修改 `LoginWeixin` (微信登录) 逻辑。
* 除了现有的 `invite_code``douyin_id`,新增支持 `channel_code` 参数。
* 逻辑: 当用户注册时,如果检测到 `channel_code`,查找对应的 `Channel` 记录,并将 `channel.ID` 写入用户表的 `channel_id` 字段。
## 3. 前端开发 (Frontend)
* **新增页面**: `运营管理` -> `渠道管理` (`web/admin/src/views/operations/channels/index.vue`)。
* **列表页**: 展示渠道名称、唯一标识(Code)、**累计注册用户数**、创建时间。
* **操作栏**: 提供“编辑”、“删除”以及 **“查看二维码”** 功能。
* **二维码生成优化**:
* 点击“查看二维码”时,自动调用生成接口,参数中自动带上当前渠道的 `code`
* (替代原有的纯手动输入二维码生成页面,或将其保留为“自定义工具”)。
## 4. 验证计划
1. **功能验证**: 在后台创建一个测试渠道,生成二维码。
2. **流程验证**: 模拟新用户携带该渠道参数登录。
3. **数据验证**: 检查数据库 `users` 表中新用户的 `channel_id` 是否正确。
4. **统计验证**: 刷新渠道管理页面,确认“注册用户数”是否+1。