fix(c2c): 我的订单显示用户角色视角,修复详情页缓存

1. "我的"列表根据用户是maker/taker判断实际角色,
   接买单(taker)时显示"卖出"而非"买入"
2. 订单详情 provider 改为 autoDispose,每次进入详情页
   都从API获取最新数据,避免显示旧的数量和状态

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-31 21:02:04 -08:00
parent f1c99949ad
commit f9835c388e
2 changed files with 15 additions and 9 deletions

View File

@ -100,7 +100,7 @@ class _C2cMarketPageState extends ConsumerState<C2cMarketPage>
children: [
_buildOrderList(context, 'SELL'), //
_buildOrderList(context, 'BUY'), //
_buildMyOrderList(context),
_buildMyOrderList(context, accountSequence),
],
),
),
@ -233,7 +233,7 @@ class _C2cMarketPageState extends ConsumerState<C2cMarketPage>
);
}
Widget _buildMyOrderList(BuildContext context) {
Widget _buildMyOrderList(BuildContext context, String accountSequence) {
final ordersAsync = ref.watch(myC2cOrdersProvider);
return ordersAsync.when(
@ -277,7 +277,7 @@ class _C2cMarketPageState extends ConsumerState<C2cMarketPage>
itemCount: orders.length,
itemBuilder: (context, index) {
final order = orders[index];
return _buildMyOrderCard(context, order);
return _buildMyOrderCard(context, order, accountSequence);
},
),
);
@ -439,8 +439,14 @@ class _C2cMarketPageState extends ConsumerState<C2cMarketPage>
);
}
Widget _buildMyOrderCard(BuildContext context, C2cOrderModel order) {
Widget _buildMyOrderCard(BuildContext context, C2cOrderModel order, String accountSequence) {
final isDark = AppColors.isDark(context);
// /
// maker : BUYmaker是买方, SELLmaker是卖方
// taker : BUYtaker是卖方, SELLtaker是买方
final isMaker = order.makerAccountSequence == accountSequence;
final isUserBuying = (isMaker && order.isBuy) || (!isMaker && order.isSell);
return GestureDetector(
onTap: () => context.push(Routes.c2cOrderDetail, extra: order.orderNo),
child: Container(
@ -462,15 +468,15 @@ class _C2cMarketPageState extends ConsumerState<C2cMarketPage>
Container(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: (order.isBuy ? _green : _red).withOpacity(isDark ? 0.2 : 0.1),
color: (isUserBuying ? _green : _red).withOpacity(isDark ? 0.2 : 0.1),
borderRadius: BorderRadius.circular(4),
),
child: Text(
order.typeText,
isUserBuying ? '买入' : '卖出',
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.bold,
color: order.isBuy ? _green : _red,
color: isUserBuying ? _green : _red,
),
),
),

View File

@ -36,8 +36,8 @@ final myC2cOrdersProvider = FutureProvider<C2cOrdersPageModel>(
},
);
/// C2C订单详情 Provider
final c2cOrderDetailProvider = FutureProvider.family<C2cOrderModel, String>(
/// C2C订单详情 ProviderautoDispose:
final c2cOrderDetailProvider = FutureProvider.autoDispose.family<C2cOrderModel, String>(
(ref, orderNo) async {
final dataSource = getIt<TradingRemoteDataSource>();
return dataSource.getC2cOrderDetail(orderNo);