feat: 在向导页添加推荐码API验证

在用户点击"继续"按钮时,调用API验证推荐码是否有效:
- 推荐码不存在或已失效时显示错误提示
- 网络错误时显示友好提示
- 验证通过后才保存并跳转到注册页

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-21 05:47:02 -08:00
parent a188d7629f
commit 2a5cb0d2ec
1 changed files with 40 additions and 13 deletions

View File

@ -343,8 +343,25 @@ class _WelcomePageContentState extends ConsumerState<_WelcomePageContent> {
Future<void> _saveReferralCodeAndProceed() async { Future<void> _saveReferralCodeAndProceed() async {
if (!_canProceed) return; if (!_canProceed) return;
//
final inviterCode = _referralCodeController.text.trim(); final inviterCode = _referralCodeController.text.trim();
// API验证推荐码是否有效
try {
final accountService = ref.read(accountServiceProvider);
final isValid = await accountService.verifyReferralCode(inviterCode);
if (!isValid) {
if (!mounted) return;
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('推荐码不存在或已失效'),
backgroundColor: Colors.redAccent,
),
);
return;
}
//
final secureStorage = ref.read(secureStorageProvider); final secureStorage = ref.read(secureStorageProvider);
await secureStorage.write( await secureStorage.write(
key: StorageKeys.inviterReferralCode, key: StorageKeys.inviterReferralCode,
@ -359,6 +376,16 @@ class _WelcomePageContentState extends ConsumerState<_WelcomePageContent> {
RoutePaths.phoneRegister, RoutePaths.phoneRegister,
extra: PhoneRegisterParams(inviterReferralCode: inviterCode), extra: PhoneRegisterParams(inviterReferralCode: inviterCode),
); );
} catch (e) {
debugPrint('[GuidePage] 验证推荐码失败: $e');
if (!mounted) return;
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('网络错误,请稍后重试'),
backgroundColor: Colors.redAccent,
),
);
}
} }
/// ///