From ca8bc638ba9cbca3f5f6a4d497d45f92e70064f3 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 16 四月 2025 08:44:15 +0800
Subject: [PATCH] add: 火车票和航班处理

---
 app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt |   46 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt b/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt
index 0601ec9..45b5b0a 100644
--- a/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt
+++ b/app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt
@@ -21,20 +21,24 @@
 import kotlinx.coroutines.launch
 import com.example.firstapp.database.repository.ReminderRecordRepository
 import com.example.firstapp.database.entity.ReminderRecord
+import com.example.firstapp.model.TrainGroup
+import com.example.firstapp.model.TrainPackage
+import com.example.firstapp.model.FlightGroup
+import com.example.firstapp.model.FlightPackage
 
 class HomeViewModel : ViewModel() {
 
     private val _expressItems = MutableLiveData<List<ExpressGroup>>()
     private val _financeItems = MutableLiveData<List<FinanceGroup>>()
     private val _incomeItems = MutableLiveData<List<IncomeGroup>>()
-    private val _flightItems = MutableLiveData<List<FinanceGroup>>()
-    private val _trainItems = MutableLiveData<List<FinanceGroup>>()
+    private val _flightItems = MutableLiveData<List<FlightGroup>>()
+    private val _trainItems = MutableLiveData<List<TrainGroup>>()
     
     val expressItems: LiveData<List<ExpressGroup>> = _expressItems
     val financeItems: LiveData<List<FinanceGroup>> = _financeItems
     val incomeItems: LiveData<List<IncomeGroup>> = _incomeItems
-    val flightItems: LiveData<List<FinanceGroup>> = _flightItems
-    val trainItems: LiveData<List<FinanceGroup>> = _trainItems
+    val flightItems: LiveData<List<FlightGroup>> = _flightItems
+    val trainItems: LiveData<List<TrainGroup>> = _trainItems
 
     private val _categories = MutableLiveData<List<CategoryConfig>>()
     val categories: LiveData<List<CategoryConfig>> = _categories
@@ -105,8 +109,38 @@
                         }
                         _incomeItems.postValue(groups)
                     }
+                    "火车票" -> {
+                        // 处理火车票类型
+                        val groups = stations.map { station ->
+                            val packages = Core.code.getPackagesByTypeAndStation(type, station.stationName).map { code ->
+                                TrainPackage(
+                                    id = code.id,
+                                    company = code.secondLevel,
+                                    trackingNumber = code.code,
+                                    createTime = code.createTime
+                                )
+                            }
+                            TrainGroup(stationName = station.stationName, packages = packages)
+                        }
+                        _trainItems.postValue(groups)
+                    }
+                    "航班" -> {
+                        // 处理航班类型
+                        val groups = stations.map { station ->
+                            val packages = Core.code.getPackagesByTypeAndStation(type, station.stationName).map { code ->
+                                FlightPackage(
+                                    id = code.id,
+                                    company = code.secondLevel,
+                                    trackingNumber = code.code,
+                                    createTime = code.createTime
+                                )
+                            }
+                            FlightGroup(stationName = station.stationName, packages = packages)
+                        }
+                        _flightItems.postValue(groups)
+                    }
                     else -> {
-                        // 处理其他类型(还款、航班、火车票)
+                        // 处理其他类型(还款)
                         val groups = stations.map { station ->
                             val packages = Core.code.getPackagesByTypeAndStation(type, station.stationName).map { code ->
                                 FinancePackage(
@@ -122,8 +156,6 @@
                         // 根据类型更新对应的 LiveData
                         when (type) {
                             "还款" -> _financeItems.postValue(groups)
-                            "航班" -> _flightItems.postValue(groups)
-                            "火车票" -> _trainItems.postValue(groups)
                         }
                     }
                 }

--
Gitblit v1.9.3