fix(marquee): 首页轮播脱敏名改为按 user_id 恒定 + 去 Faker 依赖 #49

Merged
marco merged 3 commits from fix/marquee-mask-deterministic into main 2026-06-13 23:44:58 +08:00
No description provided.
Ghost added 3 commits 2026-06-13 23:38:31 +08:00
- _mask_real 无昵称分支用 random.Random(user_id) 播种合成假名 → 同一用户每次展示恒定
  (刷新/翻页不变脸)、不同用户各异;修复原全局 _rng 导致同一用户每请求换名(像假数据)的问题
- 去掉 faker 依赖,改用本地姓池(~100)×名字字池(~120)组合真名 + 中英网络昵称语料,组合空间上万、
  同屏几乎不撞名;_synth_full_name/_synth_masked_name 串入 rng 参数,种子/兜底仍用全局 _rng 出多样
- 同步 docs/api/platform-savings-feed.md、docs/database/ops_marquee_seed.md 脱敏描述
  (去手机尾号/Faker 表述,补 user_id 恒定 + JOIN user 仅活跃用户记录说明)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 看视频奖励 LT 因子(因子2)按「账号累计第 N 次看视频」递减,不再按天重置:
  ad_reward 新增 _granted_cumulative、ad_feed_reward 单位序号去掉当天过滤、
  rewards 形参 today_count_after_this → count_after_this;每日次数上限/冷却仍按当日统计
- 广告金币审计:加 only_mismatch 筛选只看 ✗ 行;total/mismatch_count 改全量统计
  (不受 limit/筛选影响、截断前算)+ 新增 truncated 标记展示集是否被截断
- admin 用户金币/现金接口加 mode=delta|set:set=设为目标值(读余额算差值、仍写一笔流水,
  沿用原子/审计/扣负保护);新增 admin-user-cash 文档 + 更新 API 索引/coins 等文档 + 补 admin read/write 测试
list_users 由 keyset 游标改为 offset 分页以支持任意列排序:
- 排序:sort_by ∈ {id, created_at, last_login_at} + sort_order(白名单,非法回落 id;同值 id 同向兜底)
- 筛选:新增 nickname 模糊、注册/最近登录时间范围(register_channel 本就支持,这次在 UI/文档补齐)
- 文档 admin-users-list.md 与 test_admin_read 同步(排序/渠道/昵称/时间范围/非法 sort_by 422)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
marco merged commit cce3a01de1 into main 2026-06-13 23:44:58 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WonderableAI/shaguabijia-app-server#49