From 990f21805146adf5b81b9f3bba15151dbeaf1415 Mon Sep 17 00:00:00 2001 From: hailin Date: Fri, 9 Jan 2026 02:49:31 -0800 Subject: [PATCH] =?UTF-8?q?fix(mobile-app):=20=E4=BF=AE=E5=A4=8D=E8=AE=A4?= =?UTF-8?q?=E7=A7=8D=E8=AE=A2=E5=8D=95=E8=A7=A3=E6=9E=90=E5=92=8C=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=A3=80=E6=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 修复 getMyOrders 解析:兼容后端直接返回数组格式 2. 添加 MINING_ENABLED 订单状态枚举和解析 3. 在 ADOPTION_WIZARD 完成检查中包含 miningEnabled 状态 问题原因: - 后端返回订单列表格式是直接数组 [...],前端期望的是 {items: [...]} - 后端返回的 MINING_ENABLED 状态未在前端枚举中定义 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../lib/core/services/planting_service.dart | 17 ++++++++++++++--- .../pages/pending_actions_page.dart | 7 ++++--- 2 files changed, 18 insertions(+), 6 deletions(-) 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) { // 检查订单是否在待办操作创建之后创建的 // 这样可以支持用户多次执行认种向导