diff --git a/frontend/mobile-app/lib/core/services/planting_service.dart b/frontend/mobile-app/lib/core/services/planting_service.dart index 64b026e4..e03a39f5 100644 --- a/frontend/mobile-app/lib/core/services/planting_service.dart +++ b/frontend/mobile-app/lib/core/services/planting_service.dart @@ -8,6 +8,7 @@ enum PlantingOrderStatus { provinceCityConfirmed, // 已确认省市 paid, // 已支付 fundAllocated, // 资金已分配 + miningEnabled, // 挖矿已启用 cancelled, // 已取消 } @@ -73,6 +74,8 @@ class PlantingOrder { return PlantingOrderStatus.paid; case 'FUND_ALLOCATED': return PlantingOrderStatus.fundAllocated; + case 'MINING_ENABLED': + return PlantingOrderStatus.miningEnabled; case 'CANCELLED': return PlantingOrderStatus.cancelled; default: @@ -312,9 +315,17 @@ class PlantingService { ); if (response.statusCode == 200) { - final data = response.data as Map; - final items = data['items'] as List? ?? []; - return items.map((e) => PlantingOrder.fromJson(e)).toList(); + // 兼容两种格式:直接数组 [...] 或包装格式 {items: [...]} + List items; + if (response.data is List) { + items = response.data as List; + } else if (response.data is Map) { + final data = response.data as Map; + items = data['items'] as List? ?? []; + } else { + items = []; + } + return items.map((e) => PlantingOrder.fromJson(e as Map)).toList(); } throw Exception('获取订单列表失败: ${response.statusCode}'); diff --git a/frontend/mobile-app/lib/features/pending_actions/presentation/pages/pending_actions_page.dart b/frontend/mobile-app/lib/features/pending_actions/presentation/pages/pending_actions_page.dart index 170e1718..3c9b3c9f 100644 --- a/frontend/mobile-app/lib/features/pending_actions/presentation/pages/pending_actions_page.dart +++ b/frontend/mobile-app/lib/features/pending_actions/presentation/pages/pending_actions_page.dart @@ -288,14 +288,15 @@ class _PendingActionsPageState extends ConsumerState { case 'ADOPTION_WIZARD': // 检查用户是否有已完成支付的认种订单 - // 通过检查订单状态(PAID/FUND_ALLOCATED)来判断 + // 通过检查订单状态(PAID/FUND_ALLOCATED/MINING_ENABLED)来判断 final plantingService = ref.read(plantingServiceProvider); try { final orders = await plantingService.getMyOrders(page: 1, pageSize: 10); for (final order in orders) { - // 检查订单是否已支付或资金已分配 + // 检查订单是否已支付、资金已分配或挖矿已启用 final isCompleted = order.status == PlantingOrderStatus.paid || - order.status == PlantingOrderStatus.fundAllocated; + order.status == PlantingOrderStatus.fundAllocated || + order.status == PlantingOrderStatus.miningEnabled; if (isCompleted) { // 检查订单是否在待办操作创建之后创建的 // 这样可以支持用户多次执行认种向导