package cn.flightfeather.thirdappmodule.module.common
|
|
import android.arch.lifecycle.MutableLiveData
|
import cn.flightfeather.thirdappmodule.DCPreference
|
import cn.flightfeather.thirdappmodule.bean.entity.Userinfo
|
import cn.flightfeather.thirdappmodule.common.net.ResultCallBack
|
import cn.flightfeather.thirdappmodule.module.base.BaseViewModel
|
import cn.flightfeather.thirdappmodule.repository.UserInfoRepository
|
|
/**
|
* @author riku
|
* Date: 2021/7/21
|
*/
|
class UserInfoViewModel : BaseViewModel() {
|
|
private val userInfoRepository = UserInfoRepository.instance
|
|
// 用户账户
|
val aName = MutableLiveData<String>()
|
|
val userList = MutableLiveData<List<Userinfo>>().apply { value = mutableListOf() }
|
|
/**
|
* 自动创建或获取场景账户
|
*/
|
fun createAccount(sceneId: String) {
|
userInfoRepository.createAccount(sceneId, object : ResultCallBack<Userinfo> {
|
override fun onSuccess(result: Userinfo?) {
|
aName.value = result?.acountname
|
}
|
|
override fun onFailure() {
|
aName.value = null
|
}
|
})
|
}
|
|
fun getByScene(sceneId: String) {
|
userInfoRepository.getByScene(sceneId, object : ResultCallBack<Userinfo?> {
|
override fun onSuccess(result: Userinfo?) {
|
aName.value = result?.acountname
|
}
|
|
override fun onFailure() {
|
aName.value = null
|
}
|
})
|
}
|
|
fun getUsersByType(userTypeId: Int = 1) {
|
userInfoRepository.getUsersByType(userTypeId, object : ResultCallBack<List<Userinfo>> {
|
override fun onSuccess(result: List<Userinfo>?) {
|
result?.let {
|
userList.value = it.sortedBy {user ->
|
try {
|
user.workno.toInt()
|
} catch (e: Exception) {
|
e.printStackTrace()
|
0
|
}
|
}
|
}
|
}
|
|
override fun onFailure() {
|
|
}
|
})
|
}
|
|
/**
|
* 获取最近一次本地记录的组长
|
*/
|
fun getLastLeaders(s: (triple: Triple<String, String, String>) -> Unit) {
|
s(Triple(
|
DCPreference("leader_id", "").get(),
|
DCPreference("leader_user_name", "").get(),
|
DCPreference("leader_real_name", "").get()
|
))
|
}
|
|
/**
|
* 保存最新的组长选择记录至本地
|
*/
|
fun saveLeaders(triple: Triple<String, String, String>) {
|
DCPreference("leader_id", "").set(triple.first)
|
DCPreference("leader_user_name", "").set(triple.second)
|
DCPreference("leader_real_name", "").set(triple.third)
|
}
|
|
/**
|
* 获取最近一次本地记录的组员
|
*/
|
fun getLastMembers(s: (triple: Triple<String, String, String>) -> Unit) {
|
s(Triple(
|
DCPreference("member_id", "").get(),
|
DCPreference("member_user_name", "").get(),
|
DCPreference("member_real_name", "").get()
|
))
|
}
|
|
/**
|
* 保存最新的组员选择记录至本地
|
*/
|
fun saveMembers(triple: Triple<String, String, String>) {
|
DCPreference("member_id", "").set(triple.first)
|
DCPreference("member_user_name", "").set(triple.second)
|
DCPreference("member_real_name", "").set(triple.third)
|
}
|
}
|