feat(invite): 好友列表已比价状态 + DEV 造虚拟好友接口; fix(deploy): 每日兑换定时器锁北京时区 #104

Merged
marco merged 2 commits from 7-1ljh into main 2026-07-03 14:42:51 +08:00
Member

改动概述

本 PR 含两个主题(关联 7-1 邀请页 / 兑换时区工作)。

1. 邀请好友列表「已比价」状态

  • get_invitees 返回新增 is_compared 字段(= compare_reward_granted)。
    客户端据此区分好友列表「去提醒 / 邀请成功」、在途列表只取未比价、算在途好友数与在途收益。
  • 新增开发接口 POST/DELETE /invite/seed-fake(仅非生产, is_prod 挡 404):
    造未比价 + 已比价虚拟好友, 已比价者走真实入账发 2 元邀请奖励金,
    方便真机联调在途 / 好友列表 UI; 清理时原路退回, 不留脏账。

2. 每日兑换定时器时区修复

  • deploy/daily-exchange.service / .timer 锁定 Asia/Shanghai,
    避免按服务器本地时区在错误时刻触发每日兑换(此前隐患: worker 已用 cn_today,
    但 systemd timer 仍按服务器本地时区)。
  • 新增 test_daily_exchange_timezone 覆盖同一北京日内幂等。

测试

  • 邀请 + 兑换时区相关用例全过(28 passed)。
  • 说明: 仓库预存的 3 个 proxy 转发测试(test_compare_proxy / test_coupon_proxy)失败,
    已在干净 HEAD 上复现确认与本改动无关, 不在本 PR 处理范围。

🤖 Generated with Claude Code

## 改动概述 本 PR 含两个主题(关联 7-1 邀请页 / 兑换时区工作)。 ### 1. 邀请好友列表「已比价」状态 - `get_invitees` 返回新增 `is_compared` 字段(= `compare_reward_granted`)。 客户端据此区分好友列表「去提醒 / 邀请成功」、在途列表只取未比价、算在途好友数与在途收益。 - 新增开发接口 `POST/DELETE /invite/seed-fake`(仅非生产, `is_prod` 挡 404): 造未比价 + 已比价虚拟好友, 已比价者走真实入账发 2 元邀请奖励金, 方便真机联调在途 / 好友列表 UI; 清理时原路退回, 不留脏账。 ### 2. 每日兑换定时器时区修复 - `deploy/daily-exchange.service` / `.timer` 锁定 `Asia/Shanghai`, 避免按服务器本地时区在错误时刻触发每日兑换(此前隐患: worker 已用 cn_today, 但 systemd timer 仍按服务器本地时区)。 - 新增 `test_daily_exchange_timezone` 覆盖同一北京日内幂等。 ## 测试 - 邀请 + 兑换时区相关用例全过(`28 passed`)。 - 说明: 仓库预存的 3 个 proxy 转发测试(`test_compare_proxy` / `test_coupon_proxy`)失败, 已在干净 HEAD 上复现确认与本改动无关, 不在本 PR 处理范围。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
liujiahui added 1 commit 2026-07-01 22:26:29 +08:00
邀请:
- get_invitees 返回增加 is_compared 字段(= compare_reward_granted),
  客户端据此区分好友列表"去提醒/邀请成功"、在途列表只取未比价、算在途好友数与收益。
- 新增 POST/DELETE /invite/seed-fake 开发接口(仅非生产, is_prod 挡):造未比价+已比价虚拟好友,
  已比价的走真实入账发 2 元邀请奖励金, 便于真机联调在途/好友列表 UI; 清理原路退回不留脏账。

兑换时区:
- daily-exchange.service/.timer 锁定 Asia/Shanghai, 避免按服务器本地时区在错误时刻触发每日兑换。
- 新增 test_daily_exchange_timezone 覆盖同一北京日内幂等。

测试: 邀请 + 兑换时区相关用例全过(28 passed)。
(仓库预存的 3 个 proxy 转发测试失败与本改动无关, 已在干净 HEAD 上复现确认。)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
liujiahui added 1 commit 2026-07-02 22:16:00 +08:00
- 发奖触发点从「比价成功上报」(compare/record)挪到「实际下单上报」
  (order/report):被邀请人完成比价并真实下单才给邀请人发 2 元邀请奖励金
  (冰 2026-07-02 拍板);仅完成比价不再发奖。幂等闸 compare_reward_granted 不变。
- 新增 POST /api/v1/invite/dev-reset:把固定测试号(TEST_ACCOUNT_PHONE)打回
  出厂态(清邀请关系/奖励金/savings/流水 + 刷 created_at 骗过 72h 新用户闸),
  便于反复当新用户测发奖。双门控:生产 404 + 只认配置的测试号,无鉴权。
- 测试:8 例改为下单驱动 + 新增 2 例覆盖 dev-reset(可反复邀请 / 开关关闭 400)。
marco merged commit 2229dfaf04 into main 2026-07-03 14:42:51 +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#104