From b653b90d4598ee2a65bceffa793bb75353b6d186 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 26 二月 2025 17:21:53 +0800
Subject: [PATCH] add: 快递列表展示

---
 app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt |   62 +++++++++++++++++++++++-------
 1 files changed, 47 insertions(+), 15 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 630b6af..a8b15bf 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
@@ -3,34 +3,66 @@
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
 import com.example.firstapp.core.Core
 import com.example.firstapp.database.entity.Code
+import com.example.firstapp.model.ExpressGroup
+import com.example.firstapp.model.ExpressPackage
+import kotlinx.coroutines.launch
 
 class HomeViewModel : ViewModel() {
 
-    private val _text = MutableLiveData<String>().apply {
-        value = "短信主页面"
-    }
-    val text: LiveData<String> = _text
+//    private val _text = MutableLiveData<String>().apply {
+//        value = "短信主页面"
+//    }
+//    val text: LiveData<String> = _text
+//
+//    private val _codeList = MutableLiveData<List<Code>>()
+//
+//    val codeList: LiveData<List<Code>> get() = _codeList
 
-    private val _codeList = MutableLiveData<List<Code>>()
-
-    val codeList: LiveData<List<Code>> get() = _codeList
+    private val _expressItems = MutableLiveData<List<ExpressGroup>>()
+    val expressItems: LiveData<List<ExpressGroup>> = _expressItems
 
     init {
         // 初始化时加载数据
-        loadData()
+      //  loadData()
+        loadExpressData()
     }
 
     // 加载数据的方法
-    fun loadData() {
-        // 获取数据,并更新 LiveData
-        _codeList.value = Core.code.getAllDesc() // 假设这是获取最新的 data 的方法
-    }
+//    fun loadData() {
+//        // 获取数据,并更新 LiveData
+//        _codeList.value = Core.code.getAllDesc() // 假设这是获取最新的 data 的方法
+//    }
+//
+//    // 如果需要手动更新数据,可以调用这个方法
+//    fun updateData() {
+//        _codeList.value = Core.code.getAllDesc() // 重新获取并更新数据
+//    }
 
-    // 如果需要手动更新数据,可以调用这个方法
-    fun updateData() {
-        _codeList.value = Core.code.getAllDesc() // 重新获取并更新数据
+    fun loadExpressData() {
+        viewModelScope.launch {
+            // 1. 获取所有驿站类型的提醒设置
+            val stations = Core.reminder.getByType("驿站")
+            
+            // 2. 按驿站分组获取包裹信息
+            val groups = stations.map { station ->
+                val packages = Core.code.getByKeyword(station.nickname).map { code ->
+                    ExpressPackage(
+                        company = code.name, //快递公司
+                        trackingNumber = code.code, // 取件码
+                        date = code.overtime  //时间
+                    )
+                }
+                ExpressGroup(
+                    stationName = station.nickname,
+                    packages = packages
+                )
+            }
+            
+            _expressItems.postValue(groups)
+        }
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.3