Files
suixinkan_ios_uikit/suixinkan_ios/Features/Wallet/Wallet.md
2026-06-26 14:33:31 +08:00

1.5 KiB

钱包模块

模块职责

Features/Wallet 承接首页 wallet 权限入口,负责个人钱包首页、收益明细、提现记录、提现申请、银行卡设置和积分兑换。

代码结构

  • WalletAPI:封装钱包、提现、银行卡、地区、积分相关接口。
  • WalletViewModel:管理钱包汇总、收益明细分页、提现记录分页和提现资格判断。
  • WithdrawApplyViewModel:管理提现信息、金额校验、短信验证码和提现提交。
  • WithdrawalSettingsViewModel:管理银行卡资料、图片上传和银行卡更新提交。
  • PointsRedemptionViewModel:管理积分概览、兑换记录和兑换申请。
  • WalletView:钱包首页和钱包内部二级路由入口。

提现资格流

点击提现后先查询实名认证:

  1. 未提交或驳回:进入已迁移的 RealNameAuthView
  2. 审核中:提示等待实名认证审核通过。
  3. 实名认证通过:查询银行卡资料。
  4. 无银行卡或银行卡驳回:进入 WithdrawalSettingsView
  5. 银行卡审核中:提示等待审核。
  6. 银行卡通过:进入 WithdrawApplyView

上传与缓存边界

银行卡正反面照片使用 PhotosPicker 选择后,通过 OSSUploadService.uploadBankCardImage 上传到 bank_card/yyyyMMdd/scenicId/... 路径,再把最终 URL 提交给服务端。

钱包数据只保存在各 ViewModel 内存中。短信验证码、OSS STS、提现表单、银行卡图片 Data 和积分兑换表单均不落盘。