From 2b072190460530cda44cba4ebbff1c6537781b83 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 4 Mar 2026 07:29:12 -0800 Subject: [PATCH] =?UTF-8?q?fix(mining-app):=20sellRestrictionProvider=20?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=94=A8=E6=88=B7=E8=BA=AB=E4=BB=BD=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E8=B7=A8=E8=B4=A6=E5=8F=B7=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E6=B1=A1=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [问题] sellRestrictionProvider 未绑定用户身份。若先用预种账号(isRestricted=true) 测试,再切换为正式认种账号,Riverpod keepAlive 缓存会在 2 分钟内残留上一个用户 的 true 值,导致正式认种用户错误看到预种卖出限制提示。 [修复] 在 provider 内 watch userNotifierProvider.select((s) => s.accountSequence), accountSequence 变化(登录/切换账号)时 provider 自动失效并重新请求。 Co-Authored-By: Claude Sonnet 4.6 --- .../lib/presentation/providers/trading_providers.dart | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/mining-app/lib/presentation/providers/trading_providers.dart b/frontend/mining-app/lib/presentation/providers/trading_providers.dart index ea6991e7..f3635be6 100644 --- a/frontend/mining-app/lib/presentation/providers/trading_providers.dart +++ b/frontend/mining-app/lib/presentation/providers/trading_providers.dart @@ -8,6 +8,7 @@ import '../../domain/entities/kline.dart'; import '../../domain/repositories/trading_repository.dart'; import '../../data/models/trade_order_model.dart'; import '../../core/di/injection.dart'; +import 'user_providers.dart'; // Repository Provider final tradingRepositoryProvider = Provider((ref) { @@ -32,7 +33,11 @@ final buyEnabledProvider = FutureProvider((ref) async { }); // 预种卖出限制状态 Provider (2分钟缓存,fail-open) +// 依赖当前用户 accountSequence,账号切换时自动重新请求,避免跨账号缓存污染 final sellRestrictionProvider = FutureProvider((ref) async { + // 绑定用户身份:accountSequence 变化(登录/切换账号)时自动失效重新请求 + ref.watch(userNotifierProvider.select((s) => s.accountSequence)); + final repository = ref.watch(tradingRepositoryProvider); final result = await repository.getSellRestriction();