package com.example.firstapp.ui.home
|
|
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 com.example.firstapp.model.FinanceGroup
|
import com.example.firstapp.model.FinancePackage
|
import kotlinx.coroutines.launch
|
|
class HomeViewModel : ViewModel() {
|
|
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 {
|
// 初始化时加载包裹列表数据
|
loadExpressData()
|
// 初始化时不加载财务列表数据 0317
|
// loadFinanceData()
|
}
|
|
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(
|
id = code.id, //ID
|
company = code.secondLevel, //快递公司
|
trackingNumber = code.code, // 取件码
|
createTime = code.createTime //快递时间
|
)
|
}
|
ExpressGroup(
|
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)
|
}
|
}
|
|
}
|