Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(抽奖动态): 修复抽奖动态未渲染问题并优化文案展示 fix(用户概览): 修复用户概览无数据显示问题 feat(新用户列表): 在新用户列表显示称号明细 refactor(待办事项): 移除代办模块并全宽展示实时动态 feat(批量操作): 限制为单用户操作并在批量时提醒 fix(称号分配): 防重复分配称号的改造计划 perf(接口性能): 优化新用户和抽奖动态接口性能 feat(订单漏斗): 优化订单转化漏斗指标计算 docs(测试计划): 完善盲盒运营API核查与闭环测试计划
55 lines
3.2 KiB
Markdown
55 lines
3.2 KiB
Markdown
## 目标
|
||
- 新用户列表增加:积分余额、资产、道具卡、优惠券、称号、上一次在线时间
|
||
- 实时抽奖动态展示:用户 | 活动 | 奖品
|
||
- 待办事项改为:未抽奖用户列表
|
||
|
||
## 后端改动
|
||
### 新用户列表扩展 `GET /api/admin/dashboard/new_users`
|
||
- 文件:`internal/api/admin/dashboard_admin.go`
|
||
- 在 `DashboardNewUsers()` 为每个用户追加:
|
||
- `couponCount`:`user_coupons` 有效/未使用计数
|
||
- `titleCount`:`user_titles` 数量(或仅活跃状态)
|
||
- `lastOnlineAt`:近似“最后活跃时间”,取多个行为表的最大时间:
|
||
- `activity_draw_logs.created_at`
|
||
- `orders.updated_at` 或 `paid_at`
|
||
- `user_points_ledger.created_at`
|
||
- `user_item_cards.updated_at`
|
||
- `user_inventory.updated_at`
|
||
- 注:当前日志表 `log_request` 未记录 `user_id`,无法精确映射在线时间;后续可优化为日志写入 `user_id` 字段。
|
||
- 返回结构:在 `newUserItem` 增加 `couponCount:number`、`titleCount:number`、`lastOnlineAt:string`
|
||
|
||
### 抽奖动态增强 `GET /api/admin/dashboard/draw_stream`
|
||
- 已新增字段:`activityName`、`issueNumber`、`prizeName`
|
||
- 保持现有结构,前端按“用户 | 活动 | 奖品”展示即可(`dynamic-stats.vue` 已适配)
|
||
|
||
### 待办事项改为未抽奖用户 `GET /api/admin/dashboard/todos`
|
||
- 文件:`internal/api/admin/dashboard_admin.go`
|
||
- 原“绑定手机号/加入公会”规则改为:
|
||
- 查询 `users`,过滤 `NOT EXISTS activity_draw_logs WHERE user_id=users.id`
|
||
- 返回字段:`userId/nickname/avatar`,`taskType` 固定为 `undrawn`,文案 `taskLabel='从未参与抽奖'`
|
||
- 保持分页/limit 与安全校验一致
|
||
|
||
## 前端改动
|
||
### 新用户模块 `web/admin/src/views/dashboard/console/modules/new-user.vue`
|
||
- 表格新增列:优惠券数、称号数、上一次在线时间
|
||
- 数据源类型:更新 `web/admin/src/api/dashboard.ts` 的 `NewUserItem` 接口,增加上述3字段;`fetchNewUsers` 返回保持一致
|
||
|
||
### 抽奖动态 `web/admin/src/views/dashboard/console/modules/dynamic-stats.vue`
|
||
- 已展示“活动名-期号”和中奖奖品名;文案保持“用户 | 活动 | 奖品”格式
|
||
|
||
### 待办事项 `web/admin/src/views/dashboard/console/modules/todo-list.vue`
|
||
- 调整列表文案与标签:从“绑定手机号/加入公会”改为“从未参与抽奖”的用户清单(调用同名接口)
|
||
|
||
## 验证
|
||
- 后端:`go build ./...` 通过;
|
||
- 接口验证:
|
||
- 新用户:`curl -H 'Authorization: <token>' 'http://localhost:8000/api/admin/dashboard/new_users?page=1&page_size=20'`
|
||
- 抽奖动态:`curl -H 'Authorization: <token>' 'http://localhost:8000/api/admin/dashboard/draw_stream?limit=50'`
|
||
- 待办(未抽奖用户):`curl -H 'Authorization: <token>' 'http://localhost:8000/api/admin/dashboard/todos?limit=50'`
|
||
- 前端:工作台“新用户”、“抽奖动态”、“待办事项”模块显示对应数据
|
||
|
||
## 后续可选优化
|
||
- 在 `log_request` 增加 `user_id` 字段,并在中间件从会话写入;将“上一次在线时间”改为日志精准口径
|
||
- 为关联查询增加必要索引以保证统计性能(`activity_draw_logs.user_id/issue_id`、`orders.user_id/status` 等)
|
||
|
||
确认后我将按上述文件路径逐项实现并联调。 |