rwadurian/frontend/mobile-app/lib/core/services
hailin 8f8a9230d0 fix(mobile-app): 修复多账号切换数据串号问题,完善存储隔离与状态重置
问题:
多账号切换时,前一个账号的推荐码、种植省市、缓存数据等会串到下一个账号,
同时定时器(钱包轮询、通知刷新、遥测上传)未正确停止/重启,
导致旧账号的 API 请求混入新账号上下文。

修复内容:

1. StorageKeys 补充种植省市常量(storage_keys.dart)
   - 新增 plantingProvinceName/Code、plantingCityName/Code 4个常量
   - 将硬编码的 key 统一收口,确保隔离列表引用一致

2. MultiAccountService 补全隔离列表(multi_account_service.dart)
   - _accountSecureKeys 新增 inviterReferralCode(修复邀请码串号)
   - _accountLocalKeys 新增 4个种植省市key + cachedAppAssets +
     cachedCustomerServiceContacts(修复种植/缓存数据串号)
   - switchToAccount() 新增 onBeforeRestore 回调参数,用于在
     storage清空后、恢复新数据前 停止定时器

3. AccountSwitchPage 三层状态重置(account_switch_page.dart)
   - _switchToAccount: onBeforeRestore 内停止 walletStatus 轮询、
     pendingAction 轮询、telemetry 上传;返回后 invalidate
     authProvider/walletStatusProvider/notificationBadgeProvider,
     最后 resumeAfterLogin 恢复遥测
   - _addNewAccount: 退出前停止定时器,退出后 invalidate Provider

4. ProfilePage 退出登录补全清理(profile_page.dart)
   - _performLogout: 退出前停止 walletStatus/pendingAction 轮询,
     退出后 invalidate 三个 Provider

5. 页面 key 统一引用 StorageKeys 常量
   - planting_location_page.dart 和 authorization_apply_page.dart
     将硬编码 key 替换为 StorageKeys.plantingXxx 常量

关键时序(switchToAccount 内部):
  save → clear → onBeforeRestore(停timer) → restore → 返回
  → invalidate Provider(此时storage已恢复新数据)→ resume telemetry → navigate

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 06:13:05 -08:00
..
account_service.dart fix(mobile-app): 修复头像更新未同步到账号列表的问题 2025-12-27 10:25:19 -08:00
app_asset_service.dart fix(app-assets): 修复公开API路径双重前缀 + Kong网关路由缺失 2026-02-05 04:36:53 -08:00
auth_event_service.dart feat(auth): 实现修改密码API和Token过期自动跳转登录 2025-12-23 20:25:56 -08:00
authorization_service.dart fix(mobile): 改进用户详情页风格和火柴人进度计算 2025-12-24 01:41:41 -08:00
contract_check_service.dart chore: temporarily disable KYC and contract check logs 2026-01-02 20:51:13 -08:00
contract_signing_service.dart feat(mobile-app): 增强合同PDF下载可靠性和用户体验 2026-01-09 07:12:21 -08:00
customer_service_contact_service.dart feat(customer-service): 客服联系方式从硬编码改为后台可配置 2026-02-05 05:00:25 -08:00
deposit_service.dart fix(mobile-app): always fetch deposit address from server in deposit_service 2026-01-04 10:17:41 -08:00
leaderboard_service.dart fix(mobile-app): correct leaderboard status API path 2026-01-04 03:45:55 -08:00
maintenance_service.dart feat(mobile-app,admin): 添加系统维护功能和通知徽章功能 2025-12-27 23:26:01 -08:00
multi_account_service.dart fix(mobile-app): 修复多账号切换数据串号问题,完善存储隔离与状态重置 2026-02-25 06:13:05 -08:00
notification_service.dart fix(notification): 修复通知中心API路径 2025-12-24 01:20:43 -08:00
pending_action_check_service.dart feat(pending-actions): add user pending actions system 2026-01-02 18:22:51 -08:00
pending_action_polling_service.dart feat(mobile-app): 添加待办操作轮询机制 2026-01-05 05:36:18 -08:00
pending_action_service.dart feat(pending-actions): add special deduction feature for admin-created user actions 2026-01-03 07:04:46 -08:00
planting_service.dart fix(mobile-app): 修复认种订单解析和状态检查问题 2026-01-09 02:49:31 -08:00
pre_planting_service.dart feat(pre-planting): Mobile App 预种计划 Service 层 2026-02-18 05:31:39 -08:00
referral_service.dart feat(profile): 添加我的伞下功能 - 展示下级用户树形结构 2025-12-14 10:34:56 -08:00
reward_service.dart feat(ledger): add detailed ledger entry views with source tracking 2026-01-03 20:09:17 -08:00
system_config_service.dart fix(app-assets): 修复公开API路径双重前缀 + Kong网关路由缺失 2026-02-05 04:36:53 -08:00
transfer_service.dart feat(transfer): 树转让功能全量实现(纯新增,零侵入) 2026-02-19 03:44:02 -08:00
wallet_service.dart feat(wallet-service): add offline settlement deduction feature 2026-01-04 06:56:39 -08:00