Files
suixinkan_ios_new/suixinkan/Features/Invite/Invite.md
汉秋 fb8430889b Add Projects, Schedule, and Invite modules with home routing.
Migrate project management, schedule management, and photographer invitation flows from placeholders, including project image OSS upload and shared business models.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 15:57:15 +08:00

1.3 KiB
Raw Blame History

Invite 模块业务逻辑

模块职责

Invite 模块负责首页 registration_invitationphotographer_inviteinvite_record 入口。

邀请页展示邀请码、邀请链接、二维码和规则;邀请记录页展示邀请用户和奖励记录。模块不保存业务状态到全局对象。

邀请页

PhotographerInviteViewModel 通过 InviteAPI.inviteInfo() 获取邀请信息,并使用 CoreImage 在本地生成二维码图片。二维码图片只用于当前页面展示,不落盘。

复制邀请链接时只由 View 层写入剪贴板ViewModel 不关心系统剪贴板状态。

邀请记录

InviteRecordViewModel 提供“邀请记录 / 奖励记录”分段:

  • 邀请记录来自 InviteAPI.inviteUserList
  • 奖励记录复用 WalletAPI.walletEarningDetail
  • 顶部奖励汇总复用 WalletAPI.walletSummary(type: 2)

分页状态、筛选分段和展示行只存在 ViewModel 内存中。

接口边界

InviteAPI 只封装邀请信息和邀请用户列表。钱包收益和提现入口继续由 Wallet 模块负责Invite 模块只调用其公开服务协议,不持有钱包业务状态。

缓存边界

邀请码、邀请记录、奖励记录和二维码都不落盘。后续如果需要分享图片,应在分享流程中临时生成。