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核查与闭环测试计划
3.2 KiB
3.2 KiB
目标
- 新用户列表增加:积分余额、资产、道具卡、优惠券、称号、上一次在线时间
- 实时抽奖动态展示:用户 | 活动 | 奖品
- 待办事项改为:未抽奖用户列表
后端改动
新用户列表扩展 GET /api/admin/dashboard/new_users
- 文件:
internal/api/admin/dashboard_admin.go - 在
DashboardNewUsers()为每个用户追加:couponCount:user_coupons有效/未使用计数titleCount:user_titles数量(或仅活跃状态)lastOnlineAt:近似“最后活跃时间”,取多个行为表的最大时间:activity_draw_logs.created_atorders.updated_at或paid_atuser_points_ledger.created_atuser_item_cards.updated_atuser_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等)
确认后我将按上述文件路径逐项实现并联调。