linkeyu
|
a286f859ee
|
修复:业务收益详情继承广告收益筛选口径 (#94)
## 修复
- 点击广告收益页用户后,详情默认继承已执行查询的日期范围
- 同步传递正式/测试环境、业务/全量代码位口径、领券/比价场景
- 传递的是上一次成功查询的快照,避免用户改了筛选但尚未点“查询”时详情口径漂移
- 文案明确 Draw eCPM 基于全部实际展示(含未发奖)
## 验证
- 已重放到最新 `main`,无冲突
- `npm run build` 通过(含 TypeScript 类型检查)
## 依赖/上线顺序
依赖 app-server 配套 PR 新增的 `app_env`、`revenue_scope`、`feed_scene` 查询参数;请先上线后端,再上线本 PR。
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #94
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-28 17:58:04 +08:00 |
|
linkeyu
|
549c9bdfad
|
修复:统一领券与比价广告数百分位口径 (#92)
## 改动说明
- 将单次领券、比价广告数从线性插值百分位改为 nearest-rank 离散百分位
- 百分位结果始终取自真实观测样本,不再出现 13.5 条这类小数广告数
- 指标展示改为整数
## 线上数据复算
2026-07-24 正式业务口径:
- 领券 P5/P50/P95:`1/7/13.5` 修正为 `1/7/15`
- 比价 P5/P50/P95:`1/2/8.3` 修正为 `1/2/9`
## 验证
- 线上数据完整分组复算通过
- 空样本、单样本边界校验通过
- `npm run build` 通过(含 TypeScript 类型检查)
---------
Co-authored-by: guke <guke@wonderable.ai>
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #92
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-28 13:50:40 +08:00 |
|
linkeyu
|
bea35fb707
|
在比价记录中展示是否下单 (#88)
## 改动说明
- 在“省”列后新增“是否下单”列
- 使用“已下单/未下单”标签展示
- 同步补充前端接口类型
## 验证
- Next.js 生产构建和类型检查通过
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #88
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-27 17:33:23 +08:00 |
|
linkeyu
|
93c3daa784
|
优化比价记录设备信息展示 (#87)
## 改动说明
- 机型优先显示可读商品名,同时保留原始设备编码
- 列表和详情展示 ROM 厂商、名称与版本
- 同步补充前端接口类型
## 验证
- Next.js 生产构建通过
- 本地页面列表与详情抽屉已检查
---------
Co-authored-by: guke <guke@wonderable.ai>
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #87
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-27 16:38:35 +08:00 |
|
linkeyu
|
63538ddee2
|
修复提现审核状态汇总与列表条数不一致 (#89)
## 问题
奖励审核页面只有待审核、打款中和打款失败显示数量,已到账、已拒绝和全部没有数字;同时两个提现审核页面的页签数字及顶部“待审核/待审核金额”收到后端全局汇总后发生混合。
## 改动
- 补充已到账、已拒绝和全部三个汇总字段类型
- 六个状态页签全部展示对应的小框数字
- 页签数字及顶部待审核数量、金额均使用当前页面的提现来源参数
## 验证
- `npm run build` 通过
- Next.js 编译、类型检查及静态页面生成全部通过
- 结合线上数据库确认普通提现和邀请提现的状态、顶部待审核数量与金额应分别展示
## 后端依赖
需配合后端 PR WonderableAI/shaguabijia-app-server#185 一起合入部署:
WonderableAI/shaguabijia-app-server#185
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #89
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-27 16:26:07 +08:00 |
|
linkeyu
|
453d1981c7
|
修复:按加权口径展示分类 eCPM (#80)
## 本次改动
- Draw 信息流优先展示后端 `draw + 历史 feed` 的加权 SDK eCPM
- 看视频优先展示 `福利视频 + 提现视频` 的加权 SDK eCPM
- 兼容服务端滚动发布:新字段缺失时仍保留旧公式回退
## 验证
TypeScript `--noEmit` 检查通过。
依赖服务端 PR:WonderableAI/shaguabijia-app-server#178。
---------
Co-authored-by: guke <guke@wonderable.ai>
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #80
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-27 16:02:32 +08:00 |
|
linkeyu
|
89dafd4886
|
完善邀请提现、其他提现与用户管理页面 (#75)
## 改动内容
- 新增邀请提现审核页,并与其他提现共用审核组件
- 完善筛选、状态统计、详情、邀请用户信息、风险提示和时间线
- 按订单状态展示微信转账单号和真实失败原因
- 支持高风险标记、取消标记和备注维护
- 优化用户管理及提现列表的列宽、固定操作列和横向滚动
- 移除提现实名、账本校验和人工处理超时订单入口
## 验证
- npm run build:通过
- npx tsc --noEmit:通过
## 说明
- 本地设计记录与 mock 数据未提交
---------
Co-authored-by: guke <guke@wonderable.ai>
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #75
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-27 14:57:48 +08:00 |
|
linkeyu
|
10b82ad564
|
优化用户反馈设备信息展示 (#85)
## 改动说明
- 反馈列表优先展示可读手机型号
- 同时展示原始硬件编码与厂商信息
- 厂商系统版本和 Android 版本分层展示
## 验证
- Next.js 生产构建通过
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #85
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-27 13:33:53 +08:00 |
|
linkeyu
|
8d7f36ddac
|
修复:展示收益明细广告网络来源 (#81)
## 本次改动
- 展开聚合收益记录时优先展示每条明细自身的 ADN
- 单条发奖明细同样读取明细级来源
- 无唯一来源证据的历史记录明确显示“未上报”
## 验证
TypeScript `--noEmit` 检查通过。
依赖服务端 PR:WonderableAI/shaguabijia-app-server#179。
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #81
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-27 10:24:12 +08:00 |
|
linkeyu
|
27ff7936a5
|
功能:新增风控监控后台页面 (#74)
## 修改内容
- 在监控审计导航中新增风控监控入口
- 新增短信、一键登录、比价三类报警汇总与分页列表
- 支持展开事实明细、忽略、封禁、解除、重置报警及规则阈值编辑
- 新增待处理 / 已封禁视图;已封禁行可直接解除并恢复业务权限
- 按事件状态约束操作按钮,避免已处理记录误触发 409
- 增加响应式布局、横向表格与操作反馈
## 后端依赖
- WonderableAI/shaguabijia-app-server#174
## 验证
- npx tsc --noEmit
- npm run build
- 本地 review:状态切换重置分页与旧数据、解除成功自动刷新
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #74
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-25 17:56:29 +08:00 |
|
zuochenyong
|
d29dce91fa
|
后台前端:新增新手引导视频配置 (#69)
配置页增加「新手引导视频」分区(GuideVideoConfig.tsx):上传 MP4、设置
生效次数、开关启停。types.ts 补齐对应类型。nginx 配置放宽该上传接口的
client_max_body_size,否则大视频在网关就被 413 挡下、到不了后端。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: guke <guke@wonderable.ai>
Co-authored-by: 左辰勇 <exinglang@gmail.com>
Reviewed-on: #69
Co-authored-by: zuochenyong <zuochenyong@wonderable.ai>
Co-committed-by: zuochenyong <zuochenyong@wonderable.ai>
|
2026-07-24 14:47:57 +08:00 |
|
linkeyu
|
2dfdc721b3
|
后台审核改用后端批量接口 (#67)
依赖 app-server PR #164。
## 改动
- 低价审核、用户反馈仅勾选待审核记录
- 批量操作改为单次请求后端 `/bulk/approve` 或 `/bulk/reject`
- 按后端逐条结果展示成功/失败;失败项保留勾选,方便重试
- 采纳/拒绝所需的统一金币、原因、内部备注和用户回复保持原有校验与二次确认
## 验证
- `npm run build`
- `git diff --check`
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #67
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-24 12:04:37 +08:00 |
|
linkeyu
|
1559d4faf0
|
修复:激励视频未完成时预估收益显示为零 (#64)
## 问题
后台明细需要与后端有效收益口径一致:激励视频提前关闭或播放时长不足时显示 0,不能继续展示原始 eCPM 折算金额。
## 修改
- 对 reward_video + closed_early/too_short 做防御性归零显示
- 更新收益口径说明和类型注释
- 顶部合计、趋势和分类统计使用后端修正后的有效收益
## 关联后端
WonderableAI/shaguabijia-app-server#160
## 验证
- npm ci --legacy-peer-deps
- npm run build:通过(包含 TypeScript 与页面构建检查)
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #64
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-22 17:38:47 +08:00 |
|
linkeyu
|
76d317d2ea
|
feat(admin): 加速比价记录页并修正耗时口径 (#55)
## 变更内容
- 列表从最多串行拉取 200 页改为仅请求当前页
- 概览改用后端聚合接口,与列表并行加载
- 主耗时五项只展示成功比价数据
- 中途退出五项在桌面端同一行展示,小屏自动换行
- 翻页不再重复请求概览
## 依赖
- 配套 Server MR #152
## 验证
- npx tsc --noEmit
- npm run build
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #55
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-22 10:42:15 +08:00 |
|
linkeyu
|
c2f49f2658
|
feat(admin): 审核菜单增加未处理数量徽标 (#57)
## 变更内容
- 提现审核菜单展示待审核 reviewing_count
- 低价审核菜单展示 pending 数量
- 用户反馈菜单展示 pending 数量(包含历史 new 状态)
- 数量为 0 时不显示徽标
- 单数字保持红色圆形,多位数按内容自动扩展为胶囊
- 侧栏收起时徽标显示在图标右上角
## 刷新与容错
- 三个汇总接口并行请求,单个失败不影响其他徽标
- 页面切换、窗口重新聚焦时刷新
- 每 30 秒自动刷新
- 仅请求当前账号有权限查看的审核页面
## 验证
- npx tsc --noEmit
- npm run build
- 本地实际验证 2、12、1234 三种数字长度均完整显示
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #57
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-22 10:25:31 +08:00 |
|
linkeyu
|
86086b1275
|
feat(admin): 优化后台看板及数据记录页(日期可选) (#50)
## 修改内容
- 数据大盘顶部日期改为可点击、可选择的日期范围控件
- 点击日期区域强制展开日历,选中后自动刷新看板
- 日期完整显示为 `YYYY-MM-DD`,禁选今日及未来日期
- 固定后台侧边栏并调整菜单顺序
- 优化数据大盘比价、领券、商业化核心指标及趋势
- 完善领券记录、比价记录、广告收益页面的筛选、统计口径和明细列
## 关键口径
- 比价完成次数:成功 + 失败,不包含中途退出
- 比价成功率:成功次数 /(发起次数 - 中途退出次数)
- 领券成功率:完成数 /(发起数 - 中途退出数)
- 比价耗时统计排除中途退出
## 验证
- `npm run build` 通过
- TypeScript、Lint、静态页面生成通过
- 旧合并请求 #49 已关闭且未合并
## 后端依赖
- 领券逐场点位成功率及逐点明细仍需接口返回相应字段
- 广告逐条明细的来源广告网络仍需 `sub_rewards` 返回 ADN 字段
---------
Co-authored-by: linkeyu <798648091@qq.com>
Reviewed-on: #50
Co-authored-by: linkeyu <linkeyu@wonderable.ai>
Co-committed-by: linkeyu <linkeyu@wonderable.ai>
|
2026-07-21 10:11:11 +08:00 |
|
guke
|
c1854da671
|
feat(comparison-records): 比价记录展示 LLM 实际成本(列表列 + 详情 + 价格快照) (#47)
- 列表「成本」列优先显示后端冻结的实际成本(当时价/绿色),无则回退前端估算(灰色)
- 详情抽屉「LLM 成本」:有 llm_cost_yuan 显示实际值 +「实际·当时价」标,无则回退估算;
另展示所用单价快照 JSON
- types.ts:ComparisonRecordListItem 加 llm_cost_yuan(详情继承)
- 顺带:InputNumber addonAfter → suffix(消 antd 弃用警告);详情 llm_calls 遍历对
input_messages 加空值防御(残缺数据不再整页白屏)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: guke <guke@autohome.com.cn>
Reviewed-on: #47
|
2026-07-13 17:35:17 +08:00 |
|
guke
|
e3ab28addc
|
feat(admin-web): 领券数据/比价记录看板新增「广告收益」列 (#45)
## 背景
后端两个看板接口新增逐行 `ad_revenue_yuan`(元),前端补上展示列。
## 改动
- `src/lib/types.ts`:`ComparisonRecordListItem` 增 `ad_revenue_yuan: number`
(`ComparisonRecordDetail` 自动继承)。
- `comparison-records/page.tsx`:「省」列后新增「广告收益」列(>0 显示绿色 ¥x.xxxx,
否则 `-`);表格 `scroll.x` 1820 → 1920。
- `coupon-data/page.tsx`:`CouponDataRow` 增字段;新增 `fmtYuan` 格式化(¥ 保留 4 位、
空/≤0 显示 `-`);主表「耗时」列后新增「广告收益」列(不动用户抽屉 RECORD_COLUMNS);
`scroll.x` 1450 → 1560。
## 说明
- 后端未更新时该字段为 undefined → 显示 `-`,无害。
- 单次广告收益很小(如 ¥0.0034),故 4 位小数。
- 领券看板默认按会话 app_env=`prod` 筛;真机测试数据在 `dev`,需切换环境才可见。
---------
Co-authored-by: guke <guke@autohome.com.cn>
Reviewed-on: #45
|
2026-07-10 22:14:14 +08:00 |
|
guke
|
03d1003c3c
|
feat(analytics-health): 新增埋点/上报成功率看板(super_admin) (#42)
功能明细
总览卡:埋点成功率、上报成功率两大率居前(<90% 标红并打「偏低」标);attempted / drop_capture / delivered / drop_undelivered 四原子量次之(drop_* > 0 橙色提示),每项带 tooltip 口径说明。
按天双折线趋势:埋点率(蓝)/ 上报率(橙),Y 轴锁 [0,1] 显示百分比。
维度下钻表:event / app_ver / oem 三档切换,后端已按上报率升序返回(最差在前),率 <90% 标红。
顶部「刷新」+「数据更新于」时间戳;日期区间支持 今天 / 近 7 天 / 近 30 天 预设。
上线依赖(部署顺序)
页面依赖后端 feat/analytics-success-rate 分支的三个只读端点 /admin/api/analytics-health/{overview,trend,breakdown}。后端须先合并部署,否则前端会 404。
---------
Co-authored-by: guke <guke@autohome.com.cn>
Reviewed-on: #42
|
2026-07-09 17:31:19 +08:00 |
|
liujiahui
|
557348bd6b
|
权限管理新增人员支持「自定义」角色(前端) (#41)
角色下拉末尾加「自定义」,选中时「可见页面」从只读矩阵切成可勾选(复用 PermEditor),提交带 pages_override;
编辑自定义用户回填已勾选页;列表里 custom 显示「自定义」,列表内切到自定义转去编辑页勾选。
AdminInfo 加 pages_override 字段。npm run build 通过。
配套后端 PR:shaguabijia-app-server#admin-custom-perms。
---------
Co-authored-by: no_gen_mu <liujianhishen@gmail.com>
Reviewed-on: #41
Co-authored-by: liujiahui <liujiahui@wonderable.ai>
Co-committed-by: liujiahui <liujiahui@wonderable.ai>
|
2026-07-09 01:11:29 +08:00 |
|
zhuzihao
|
33c80d6927
|
fix(withdraws): 提现账本校验区分现金/邀请金两本账展示 (#39)
配合后端 ledger-check 分账改造:
- 异常清单按「现金」「邀请金」分别标注(缺扣款/缺退款/重复退款/
非退款终态退款/余额差额),便于定位问题落在哪本账。
- 绿色(校验正常)时分别展示两账的余额与流水净额。
- WithdrawLedgerCheck 类型同步后端新增的 7 个 invite_* 字段。
修复现象:此前邀请奖励金提现单被误判为「缺扣款/缺退款流水」,
导致提现审核页现金账本报红。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #39
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-07-07 00:16:25 +08:00 |
|
chenshirui
|
c905e15ec9
|
大盘领券和比价广告收益卡改读服务端全量场景小计,激励视频卡改读类型小计 (#37)
Co-authored-by: 陈世睿 <2839904623@qq.com>
Reviewed-on: #37
Co-authored-by: chenshirui <chenshirui@wonderable.ai>
Co-committed-by: chenshirui <chenshirui@wonderable.ai>
|
2026-07-06 00:24:58 +08:00 |
|
zhuzihao
|
dd84d771f9
|
feat(ad-revenue): 收益报表 DAU/ARPU 随所选区间显示(今日/近7天/近30天) (#38)
- DAU/ARPU 不再写死「今日」:随查询区间显示——今日仍为「今日活跃 DAU / ARPU(今日)」,
多天为「活跃用户 / ARPU」;tooltip 标出统计区间与口径(同数据大盘:登录 + 开始比价 +
开始领券,全局去重、不随筛选变化)。
- 「核心指标」分隔线追加「· 统计区间 X」;更新 dau 类型注释与 ARPU 派生注释。
- 依赖后端把 dau 改为按区间统计(见 app-server 对应 PR):原多天返回 null 显示「-」,
现在近 7 天 / 近 30 天有值。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #38
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-07-06 00:23:26 +08:00 |
|
zhuzihao
|
b620948a71
|
运营后台前端:权限管理(RBAC)+ 系统配置 + 比价记录店/商品搜索 (#36)
一、权限管理(原「管理员」页,重命名为「权限管理」)
- 重建为 4 视图:账号列表 / 新增·编辑人员 / 角色设置(只读权限矩阵,无权限置灰)/ 角色权限勾选矩阵
- 左侧导航按当前角色的可见页过滤(拉 /me 刷新);角色显示中文名 管理员/运营/财务/技术
- 新增人员自动生成一次性密码;编辑复看已确定登录密码(只读),无留存明文的账号不显示密码
二、系统配置
- 首页数据「保存」改为保存即生效
- 首页轮播种子页加 真实/种子/混播 数据源切换
三、比价记录
- 店/商品拆两列 + 各自搜索框;整格换行不截断;搜索命中黄底高亮
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #36
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-07-05 09:46:24 +08:00 |
|
zhuzihao
|
281cfdb0e4
|
feat: 反馈加反馈类型/运营回复 + 提现加提现类型筛选 (#34)
用户反馈后台 + 提现审核后台的运营字段与筛选。
- 反馈页:新增「反馈类型」列(比价反馈/普通反馈 + 场景)、顶部「反馈类型」筛选;审核抽屉采纳/拒绝
都能填「给用户的回复」(用户端可见),并回显反馈类型/场景/运营回复。
- 提现页:新增「提现类型」列(福利页提现/邀请提现)、顶部「提现类型」筛选,详情抽屉展示提现类型。
- types.ts:Feedback 加 source/scene/admin_reply,WithdrawOrder 加 source。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #34
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-07-02 19:50:09 +08:00 |
|
zhuzihao
|
2727eaa929
|
feat(ad-revenue): 收益报表按一次比价/领券聚合展开 + 用户收益详情抽屉 (#33)
- 主表按「单次广告行为」展示:一次比价/领券聚成父行、广告类型标「N 条」,点「+」展开看该次逐条
发奖复算;信息流统一显示「Draw 信息流」,类型筛选去掉「信息流」选项。
- 新增点用户手机号弹半屏抽屉(UserAdRevenueDrawer,复用 withdraws 的 UserRewardPanel):展示该用户
看广告统计(6 项)+ 金币记录;抽屉统计区 eCPM 改「元/千」,并补微信昵称。
- 一次比价/领券行显示预估收益(row_revenue_yuan,发奖侧折算);去掉「一致」列 + 应发≠实发行标红 +
顶部对账 Alert(发奖走「所见即所得」display_coin,与公式复算本就对不上,属噪音)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #33
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-07-02 08:57:04 +08:00 |
|
chenshuobo
|
7f5dde5c2f
|
feat: 补齐数据大盘京东 CPS 与金币展示 (#29)
改了什么:数据大盘总收入/CPS 收入纳入京东 CPS;京东 CPS 卡片展示有效/无效订单;刷新按钮改为同步全部 CPS 订单;ARPU 展示产品确认的昨日活跃用户分母;激励视频金币展示真实值并标注已计入领券奖励。
验证方式:npx tsc --noEmit;浏览器验证 /dashboard 已显示京东 CPS、ARPU 分母和激励视频金币。
---------
Co-authored-by: lowmaster-chen <1119780489@qq.com>
Reviewed-on: #29
Co-authored-by: chenshuobo <chenshuobo@wonderable.ai>
Co-committed-by: chenshuobo <chenshuobo@wonderable.ai>
|
2026-06-30 21:56:55 +08:00 |
|
zhuzihao
|
c8293d57b3
|
调现金弹窗:目标账户选择 + 四项必填校验 + 邀请余额展示 (#30)
- 新增「目标账户」单选(金币兑现金账户 / 邀请账户),默认不选、必选
- 操作方式改为必选无默认(原默认「增减」),进来需手动选
- 四项(目标账户/操作方式/现金变动/原因)全部必填必选:标题带红星 *,
点确定时缺项 → 字段下方红字报错并阻断提交
- 提交携带 account;弹窗顶部余额行加显「邀请奖励金」(UserOverview 新字段)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #30
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-30 12:02:52 +08:00 |
|
marco
|
6a3ce5d340
|
fix(types): 同步 DashboardOverview/AdRevenueReport 类型, 修数据大盘页编译失败
新版数据大盘页(dashboard/page.tsx, #24)引用的后端字段在 types.ts 未同步,
next build 类型检查失败致 admin-web main 无法构建/部署(0.2.6 发车 deploy 卡在此步):
- DashboardOverview 补 period 嵌套结构(date_from/to + users/comparison/coins/cash/trend),
对齐已部署后端 app/admin/schemas/dashboard.py 的 DashboardPeriod
- AdRevenueReport 补可选 by_ad_type(按广告类型富小计含金币明细);后端当前不下发,
页面用 ?. 探测、缺失时按 items 现算兜底, 此处仅补类型声明让其编译通过
均为类型声明同步, 不改任何运行逻辑;本地 next build 已通过。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-30 02:39:21 +08:00 |
|
zhuzihao
|
98cea13d51
|
用户反馈/低价审核 admin 页改版(重命名+二维码挪位+统计修复+列增强) (#28)
- 重命名:菜单与页面标题「反馈工单→用户反馈」「上报审核→低价审核」
- 反馈页「加群二维码」卡挪到系统配置页,新增「反馈二维码」tab
- 修复反馈四态统计恒为 0:对接后端新增的 /admin/api/feedbacks/summary
- 两页表格增强:用户列拆为 用户ID/手机号/用户昵称;新增 提交版本号、机型/OS版本 列;
点手机号弹抽屉看该用户全部记录,抽屉顶部汇总 提交/上报总计 + 奖励总计
- 低价审核:提交时间列可排序、审核结果与操作拆两列、顶部统计改卡片式、
Trace 列对齐比价记录页(有 trace_url 即可点)
- 修复反馈时间显示快 8 小时:反馈时间为北京 wall-clock,改用 formatWallTime
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #28
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-29 23:11:07 +08:00 |
|
chenshuobo
|
d7129186c5
|
feat: 调整后台左侧导航分组层级 (#27)
改了什么:按看板、奖励审核、数据配置重新组织左侧导航,二级入口展示在一级标题右下方;补齐主干大盘页缺失的类型字段,保证类型检查通过。
验证方式:npx tsc --noEmit;浏览器检查 /dashboard 左侧导航顺序和二级缩进。
---------
Co-authored-by: lowmaster-chen <1119780489@qq.com>
Reviewed-on: #27
Co-authored-by: chenshuobo <chenshuobo@wonderable.ai>
Co-committed-by: chenshuobo <chenshuobo@wonderable.ai>
|
2026-06-29 14:52:46 +08:00 |
|
zhuzihao
|
a1d9923f33
|
feat(ad-revenue): 收益报表大盘展示穿山甲后台收益(预估/收益API/趋势线) (#26)
- 核心指标新增「穿山甲后台收益(T+1)」区:穿山甲预估收益、收益API、客户端预估偏差;
按天趋势图加一条绿色「穿山甲后台收益」线(数据来自后端 daily[].pangle_*)。
- 仅在全量视图(未按用户/类型/场景筛选)展示;非全量或未同步时显示「-」并提示。
- 收益口径说明补充穿山甲后台收益来源;types.ts 同步新增 total_pangle_revenue_yuan /
total_pangle_api_revenue_yuan / pangle_revenue_available / daily[].pangle_*。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #26
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-29 09:53:52 +08:00 |
|
chenshuobo
|
510ce349f7
|
feat: 接入新版数据大盘与系统配置分页 (#24)
改了什么:按产品 HTML 重做数据大盘 UI,接入可确认的大盘聚合数据;将首页配置和首页轮播种子迁入系统配置页并拆分首页/福利页 Tab。
验证:npx tsc --noEmit。
---------
Co-authored-by: lowmaster-chen <1119780489@qq.com>
Reviewed-on: #24
Co-authored-by: chenshuobo <chenshuobo@wonderable.ai>
Co-committed-by: chenshuobo <chenshuobo@wonderable.ai>
|
2026-06-28 10:37:56 +08:00 |
|
zhuzihao
|
03ef222b71
|
feat(ad-revenue): 收益报表分页、eCPM 元列、场景筛选与逐行展开+ 大盘改版 (#23)
- 列:eCPM 新增「元」列;广告位ID 移到「一致」列后。
- 分页:「每页条数」接后端 offset 真分页,可翻页看当前筛选下全部数据(原仅展示截断的前 N 条)。
- 场景:「场景」下推后端作为全局筛选(随查询生效,同时影响明细/合计/趋势),移除前端仅过滤当前数据的旧逻辑与过时提示。
- 趋势:按小时趋势改用后端全量 hourly,不受分页影响。
- 展开:明细表每行左侧都有展开号——发奖行看金币复算因子,纯展示行看展示明细(eCPM/收益/ADN/底层rit/代码位/来源)。
- 文案:修正金币规则弹窗「信息流每满10秒折1条」→「一条广告=1条」。
- types 新增 AdRevenueHourly + hourly 字段。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #23
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-27 22:42:28 +08:00 |
|
zhuzihao
|
6ece274af6
|
feat(analytics): 新增「埋点日志」管理页 (#22)
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #22
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-26 23:56:25 +08:00 |
|
chenshirui
|
5f2511e7cd
|
feat(device-liveness): 运营后台设备存活监控页(卡片/筛选/掉线置顶/刷新) (#20)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: 陈世睿 <2839904623@qq.com>
Reviewed-on: #20
Co-authored-by: chenshirui <chenshirui@wonderable.ai>
Co-committed-by: chenshirui <chenshirui@wonderable.ai>
|
2026-06-26 15:28:41 +08:00 |
|
zhuzihao
|
c488513d24
|
feat(ad-revenue): 报表主表改逐条广告事件 + 用户列显示手机号 (#17)
对齐后端 /admin/api/ad-revenue-report 的逐条事件结构(每次广告一行,不再按用户折叠):
- 主表列:时间/用户/类型/应用/广告位/eCPM/收益/发奖状态/应发/实发/一致/底层ADN;
点行展开看该条金币复算因子(因子1/因子2/份数/LT)
- 「用户」列从 user_id 改为显示完整手机号(辅小字 #uid);查不到手机号显示 #uid(无手机号)
- 纯展示行(信息流逐条展示 / 无对应发奖):金币列显「-」、状态显「仅展示」、不计对账
- 统计卡「聚合组数」→「广告事件数」,提示文案 组→条
- rowKey 用后端下发的 event_key
tsc --noEmit 本次两文件零类型错误。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #17
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-24 03:54:13 +08:00 |
|
marco
|
67fc466778
|
feat(comparison-records): 展示 LLM token(入/出)与按单价估算成本
比价记录页新增 Token 列与成本列;顶部输入框配置每百万 token 单价(localStorage 持久化),仅前端估算不入库。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 17:24:57 +08:00 |
|
zhuzihao
|
65d968585e
|
feat(feedback): 反馈工单接入审核采纳/拒绝 + 历史反馈 (#16)
对接后端 approve/reject 接口,admin 反馈工单从单一「处理」改为审核双动作:
- FeedbackHandleDrawer: Segmented 采纳/拒绝 —— 采纳(发金币 1~10000 + 采纳备注)、
拒绝(填用户端可见原因 + 内部备注);抽屉内联展示该用户历史反馈辅助审核
- 列表页: 状态筛选改 审核中/已采纳/未采纳、新增「审核结果」列、操作改 审核/查看,移除旧批量标记
- types.ts: Feedback 字段对齐后端(reject_reason/reward_coins/review_note/reviewed_by_admin_id/reviewed_at)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #16
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-22 23:20:24 +08:00 |
|
zhuzihao
|
12cc6f7aa6
|
fix(media): 后台图片指向 App 后端,修线上图片 404 (#14)
线上 admin(admin-web.shaguabijia.com)的「上报审核截图 / 反馈截图 / 反馈二维码」
全部 404:NEXT_PUBLIC_MEDIA_BASE 为空时,图片被拼到不 serve /media 的 admin 域。
媒体实际由 App 后端托管,故让前端指向它:
- .env.production: NEXT_PUBLIC_MEDIA_BASE=https://app-api.shaguabijia.com
- lib/media.ts: base 去末尾斜杠,防拼出 //media
注:NEXT_PUBLIC_* 为编译期常量,合并后服务器需 npm run build + 重启服务才生效。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #14
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-21 12:09:45 +08:00 |
|
zhuzihao
|
36d00a9d68
|
feat(force-onboarding): 用户列表加「开启新手引导」一次性操作 (#13)
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #13
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-21 00:15:17 +08:00 |
|
marco
|
9afb213b50
|
feat(admin): 比价记录 debug 页
按 user_id/手机号查任意用户的全部比价记录:列表(平台/店菜/省/耗时/步数/LLM次数/重试/机型ROM/状态)
+ 详情抽屉(逐平台对比、卡在哪一步=platform_results 细分原因、设备环境、每次 LLM 调用 input/output
JSON 结构化展开、trace 可点链接、raw_payload 全量)。侧栏新增「比价记录」入口。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-17 22:33:37 +08:00 |
|
marco
|
ecbce54e70
|
feat(cps): 新建淘宝活动支持上传/选择落地页图 + 列表缩略图
- ActivityFormModal 淘宝分支加 ImagePicker(上传新图 / 选已有 / 预览),必填
- 活动列表加落地页图缩略图列
- types: CpsActivity.image_url
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-17 21:32:12 +08:00 |
|
marco
|
654aca4c40
|
feat(cps): 分发后台从仅美团扩展到美团/淘宝/京东多平台
- 群/活动支持平台多选,sid 仅美团群保留
- 活动按平台切换录入(美团 actId/pvs、淘宝淘口令、京东链接)
- 生成发群链接改批量勾选多活动(/cps/referral-links)
- 统计表加平台/复制列,淘宝/京东无对账字段显示 "-"
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-17 19:15:27 +08:00 |
|
marco
|
9134ea9255
|
feat(cps): CPS 分发与对账后台页
群/活动管理 + 生成带 sid 短链(/c/{code}) + 对账统计(点击 PV/UV + 下单/佣金)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-17 10:01:08 +08:00 |
|
ouzhou
|
f82f511b84
|
feat(ad-revenue): 广告数据报表页(替换金币审计页) (#11)
- 新增 /ad-revenue:聚合表 + 派生指标(平均 eCPM/毛利/发奖占比)+ 零依赖 SVG 趋势图
+ 行展开下钻展示明细/发奖复算明细
- 删除旧 /ad-audit 页;侧栏「金币审计」→「广告数据」
- feedbacks 由「加载更多」改 antd 页码分页(usePagedList),内容列 3 行省略可展开
- types 用 AdRevenue* 替换 AdCoinAudit*;providers 统一主题圆角/页面底色
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: OuYingJun1024 <1034284404@qq.com>
Reviewed-on: #11
Co-authored-by: ouzhou <ouzhou@wonderable.ai>
Co-committed-by: ouzhou <ouzhou@wonderable.ai>
|
2026-06-15 23:13:22 +08:00 |
|
ouzhou
|
05a1d06e61
|
fix(admin-web): 时间渲染收口到 formatUtcTime,消灭 new Date().toLocaleString (#10)
review 发现 4 处仍用 new Date(v).toLocaleString 渲染后端 UTC 口径时间戳——
正是 lib/format.ts 头注释明令消灭的反模式(SQLite 本地/非中国浏览器会差 8h,
生产靠 +00:00 偏移侥幸正确)。统一改用 formatUtcTime 按北京显示:
- admins: last_login_at
- audit-logs: created_at
- devices: completed_at
- dashboard/HomeStatsConfig: ops_stat_config.updated_at
均为 server_default now()/datetime.now(utc) 的 UTC 口径字段。
HomeStatsConfig 的「下个更新时刻」用 epoch ms + 强制 Asia/Shanghai,正确,不动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: OuYingJun1024 <1034284404@qq.com>
Reviewed-on: #10
Co-authored-by: ouzhou <ouzhou@wonderable.ai>
Co-committed-by: ouzhou <ouzhou@wonderable.ai>
|
2026-06-14 22:54:24 +08:00 |
|
ouzhou
|
94d550db9b
|
feat(admin-web): 余额设值/批量、时区与复用整顿、用户列表排序筛选 (#9)
- 调金币/现金:新增「设为指定值」模式;修 InputNumber addonAfter 废弃告警;
弹窗抽成共享组件 AdjustBalanceModals(列表页/详情页复用,内含防竞态余额拉取)
- 新增 lib/format.ts 统一金额/时间格式化:区分 UTC 字段与钱包流水(北京 wall-clock),
修正提现详情现金流水快 8 小时、用户注册时间慢 8 小时等偏差
- 提现页:账本校验(ledger-check)改按需触发,写操作后不再重算;现金流水时区修正
- 用户详情页:加载失败 Result 兜底(不再永久转圈)+ 现金流水 tab + 调金币/现金/封禁入口
- 金币审计页:加「只看不一致」过滤;截断提示改用后端精确 truncated 旗标
- 用户列表:注册/最近登录/ID 列排序 + 渠道/昵称/时间范围筛选 + 批量封禁解封/开关调试链接
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: OuYingJun1024 <1034284404@qq.com>
Reviewed-on: #9
Co-authored-by: ouzhou <ouzhou@wonderable.ai>
Co-committed-by: ouzhou <ouzhou@wonderable.ai>
|
2026-06-13 23:43:52 +08:00 |
|
marco
|
2eff4a71be
|
feat(onboarding): 删「按用户强制引导」UI + 新增设备管理页
- users 页删 force_onboarding 操作 + types 字段
- 新增设备管理页(/devices): 按设备列表 + 行内「重走引导」+「全部重设」危险操作 + 菜单项
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 00:51:51 +08:00 |
|
zhuzihao
|
c66d90a6e1
|
feat(force-onboarding): 用户列表加「开启新手引导」一次性操作 (#8)
点一下把该用户标记为未看过引导:Ta 下次打开 App 重走一遍新手引导,看完后端自动恢复(只触发这一次);未消费前显示「待重看」可撤销。operator 角色可见。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: zzhyyyyy <2685922758@qq.com>
Reviewed-on: #8
Co-authored-by: zhuzihao <zhuzihao@wonderable.ai>
Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
|
2026-06-10 22:26:41 +08:00 |
|