# 钱包模块 ## 模块职责 `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 和积分兑换表单均不落盘。