tj
2025-03-28 dde2eeddbaf07246da7c2c352e7d49ec63fddcd2
app/src/main/java/com/example/firstapp/ui/home/HomeViewModel.kt
@@ -8,62 +8,70 @@
import com.example.firstapp.database.entity.Code
import com.example.firstapp.model.ExpressGroup
import com.example.firstapp.model.ExpressPackage
import com.example.firstapp.model.FinanceGroup
import com.example.firstapp.model.FinancePackage
import kotlinx.coroutines.launch
class HomeViewModel : ViewModel() {
//    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 _expressItems = MutableLiveData<List<ExpressGroup>>()
    private val _financeItems = MutableLiveData<List<FinanceGroup>>()
    val expressItems: LiveData<List<ExpressGroup>> = _expressItems
    val financeItems: LiveData<List<FinanceGroup>> = _financeItems
    init {
        // 初始化时加载数据
      //  loadData()
        // 初始化时加载包裹列表数据
        loadExpressData()
        // 初始化时不加载财务列表数据 0317
        //  loadFinanceData()
    }
    // 加载数据的方法
//    fun loadData() {
//        // 获取数据,并更新 LiveData
//        _codeList.value = Core.code.getAllDesc() // 假设这是获取最新的 data 的方法
//    }
//
//    // 如果需要手动更新数据,可以调用这个方法
//    fun updateData() {
//        _codeList.value = Core.code.getAllDesc() // 重新获取并更新数据
//    }
    fun loadExpressData() {
        viewModelScope.launch {
            // 1. 获取所有驿站类型的提醒设置
            val stations = Core.reminder.getByType("驿站")
            val stations = Core.reminder.getByType("快递")
            // 2. 按驿站分组获取包裹信息
            val groups = stations.map { station ->
                val packages = Core.code.getByKeyword(station.nickname).map { code ->
                    ExpressPackage(
//                        id = code.id, //ID
                        company = code.name, //快递公司
                        id = code.id, //ID
                        company = code.secondLevel, //快递公司
                        trackingNumber = code.code, // 取件码
                        date = code.overtime  //时间
                        createTime = code.createTime  //快递时间
                    )
                }
                ExpressGroup(
                    stationName = station.nickname,
                    packages = packages
                    stationName = station.nickname, packages = packages
                )
            }
            _expressItems.postValue(groups)
        }
    }
    fun loadFinanceData() {
        viewModelScope.launch {
            // 1. 获取所有驿站类型的提醒设置
            val stations = Core.reminder.getByType("还款")
            // 2. 按驿站分组获取包裹信息
            val groups = stations.map { station ->
                val packages = Core.code.getByKeyword(station.nickname).map { code ->
                    FinancePackage(
                        id = code.id, //ID
                        company = code.secondLevel, //快递公司
                        trackingNumber = code.code, // 取件码
                        createTime = code.createTime  //快递时间
                    )
                }
                FinanceGroup(
                    stationName = station.nickname, packages = packages
                )
            }
            _financeItems.postValue(groups)
        }
    }
}