diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt index 6c95670..05f04c8 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt @@ -4,7 +4,9 @@ import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query +import androidx.room.RawQuery import androidx.room.Update +import androidx.sqlite.db.SupportSQLiteQuery import com.zmkg.coaloperation.db.entity.tunnel.TunnelWorkingFaceEntity //import kotlinx.coroutines.flow.Flow @@ -23,6 +25,9 @@ interface TunnelWorkingFaceDao { @Query("SELECT * FROM tunnel_working_face ORDER BY createTime DESC") fun getEntityList(): MutableList? + @RawQuery + fun getEntityListBySql(query: SupportSQLiteQuery): MutableList? + @Query("SELECT * FROM tunnel_working_face WHERE dataState = :dataState ORDER BY createTime DESC") fun getEntityListByState(dataState: String): MutableList? diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/tunnel/TunnelWorkingFaceEntity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/tunnel/TunnelWorkingFaceEntity.kt index dcdadef..ae780b8 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/tunnel/TunnelWorkingFaceEntity.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/tunnel/TunnelWorkingFaceEntity.kt @@ -22,6 +22,8 @@ class TunnelWorkingFaceEntity( @PrimaryKey var surfaceId: Long = 0, + var userId: String = "", + /** * 工作面名称 */ diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRepository.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRepository.kt index 9582a2b..73a3575 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRepository.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRepository.kt @@ -1,5 +1,6 @@ package com.zmkg.coaloperation.db.repository +import androidx.sqlite.db.SupportSQLiteQuery import com.zmkg.coaloperation.db.dao.TunnelWorkingFaceDao import com.zmkg.coaloperation.db.entity.tunnel.TunnelWorkingFaceEntity import kotlinx.coroutines.Dispatchers @@ -10,6 +11,10 @@ class TunnelWorkingFaceRepository(private val dao: TunnelWorkingFaceDao) { dao.getEntityList() } + suspend fun getEntityListBySql(query: SupportSQLiteQuery) = withContext(Dispatchers.IO) { + dao.getEntityListBySql(query) + } + suspend fun getEntityListByState(dataState: String) = withContext(Dispatchers.IO) { dao.getEntityListByState(dataState) } diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceViewModel.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceViewModel.kt index f8f1bbc..fac62fb 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceViewModel.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceViewModel.kt @@ -3,6 +3,8 @@ package com.zmkg.coaloperation.db.viewmodel import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.viewModelScope +import androidx.sqlite.db.SimpleSQLiteQuery +import androidx.sqlite.db.SupportSQLiteQuery import com.zmkg.coaloperation.db.AppDatabase import com.zmkg.coaloperation.db.entity.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.db.repository.TunnelWorkingFaceRepository @@ -22,6 +24,28 @@ class TunnelWorkingFaceViewModel(application: Application) : AndroidViewModel(ap action(list) } + fun getEntityListByUserId(userId:String, action: (MutableList?) -> Unit) = + viewModelScope.launch { + val sql = buildString { + append("SELECT * FROM tunnel_working_face WHERE 1=1 ") + if (userId.isNotBlank()) { + append(" AND userId = $userId") + } + } + val query = SimpleSQLiteQuery(sql) + val list: MutableList? = repository.getEntityListBySql(query) + action(list) + } + + fun getEntityListBySql( + query: SupportSQLiteQuery, + action: (MutableList?) -> Unit + ) = + viewModelScope.launch { + val list: MutableList? = repository.getEntityListBySql(query) + action(list) + } + fun getEntityListByState( dataState: String, action: (MutableList?) -> Unit diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/login/activity/LoginActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/login/activity/LoginActivity.kt index 0e6a5a5..7a00800 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/login/activity/LoginActivity.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/login/activity/LoginActivity.kt @@ -9,15 +9,20 @@ import com.zmkg.coaloperation.base.BaseVMBActivity import com.zmkg.coaloperation.base.viewmodel.TestViewModel import com.zmkg.coaloperation.databinding.ActivityLoginBinding import com.zmkg.coaloperation.local.DataStoreManager +import com.zmkg.coaloperation.local.DataStoreUtils import com.zmkg.coaloperation.superfuntion.loginIm +import com.zmkg.coaloperation.utils.UserUtils +import com.zmkg.coaloperation.utils.toJsonString +import com.zmkg.coaloperation.utils.toObject -class LoginActivity : BaseVMBActivity(R.layout.activity_login) { +class LoginActivity : + BaseVMBActivity(R.layout.activity_login) { override fun initView(savedInstanceState: Bundle?) { if (!TextUtils.isEmpty(DataStoreManager.getUserName())) { - loginIm(DataStoreManager.getUserName()){} - toActivity(MainActivity::class.java) - finish() + loginIm(DataStoreManager.getUserName()) {} + toActivity(MainActivity::class.java) + finish() } } @@ -31,10 +36,10 @@ class LoginActivity : BaseVMBActivity(R.layo } override fun processClick(v: View?) { - when(v?.id) { - R.id.submit->{ - val userId = mBinding.loginEtUserName.text.toString() - if (TextUtils.isEmpty(userId)) { + when (v?.id) { + R.id.submit -> { + val userName = mBinding.loginEtUserName.text.toString() + if (TextUtils.isEmpty(userName)) { showToast("请输入用户名") return } @@ -44,19 +49,20 @@ class LoginActivity : BaseVMBActivity(R.layo return } - loginIm(userId) {} - DataStoreManager.setUserName(userId) + loginIm(userName) {} + DataStoreManager.setUserName(userName) + + UserUtils.saveUserData(userName) + toActivity(MainActivity::class.java) finish() - - } } } - override fun transparentStatusBar():Boolean { - return true + override fun transparentStatusBar(): Boolean { + return true } } \ No newline at end of file diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt index 975a1c2..84b4103 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt @@ -16,6 +16,7 @@ import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceViewModel import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel import com.zmkg.coaloperation.utils.DictUtils +import com.zmkg.coaloperation.utils.SpTool import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -77,7 +78,7 @@ class TunnelingActivity : override fun initView(savedInstanceState: Bundle?) { mBinding.toolbarLay.rightText = "新增工作面" - mBinding.rvList.let { + mBinding.rvTunnelingList.let { it.layoutManager = LinearLayoutManager(this) it.adapter = workingFaceAdapter } @@ -86,9 +87,10 @@ class TunnelingActivity : @SuppressLint("NotifyDataSetChanged") override fun initData() { DictUtils.initData() - workingFaceViewModel.getEntityList { it -> + val userId = SpTool.getString(SpTool.USER_ID) + workingFaceViewModel.getEntityListByUserId(userId) { it -> if (it.isNullOrEmpty()) { - return@getEntityList + return@getEntityListByUserId } workingFaceList.clear() workingFaceList.addAll(it) @@ -99,7 +101,6 @@ class TunnelingActivity : override fun createObserve() { super.createObserve() - } diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/SpTool.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/SpTool.kt index d5033fc..2353def 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/SpTool.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/SpTool.kt @@ -6,6 +6,8 @@ import kotlin.to object SpTool { const val DICT_JSON = "dictJson" + const val USER_JSON = "userJson" + const val USER_ACCOUNT = "userAccount" val pref = MyApplication.getSharedPref()!! diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/UserUtils.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/UserUtils.kt new file mode 100644 index 0000000..3a5f906 --- /dev/null +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/UserUtils.kt @@ -0,0 +1,37 @@ +package com.zmkg.coaloperation.utils + +import com.zmkg.coaloperation.local.DataStoreManager +import com.zmkg.coaloperation.local.DataStoreUtils + +object UserUtils { + + const val USER_DATA = "userData" + + fun saveUserData(userName: String) { + var userData = DataStoreUtils.getSyncData(USER_DATA, "") + var userMap: MutableMap = mutableMapOf() + if (userData.isBlank()) { + userMap.put(userName, System.currentTimeMillis().toString()) + } else { + userMap = userData.toObject>() + val userId = userMap[userName] + if (userId.isNullOrBlank()) { + // TODO: ----------- + } + } + userData = userMap.toJsonString() + DataStoreUtils.putSyncData(USER_DATA, userData) + } + + fun getUserName() = DataStoreManager.getUserName() + + fun getUserId(userName: String = getUserName()): String? { + val userData = DataStoreUtils.getSyncData(USER_DATA, "") + if (userData.isBlank()) { + return null + } + val userMap = userData.toObject>() + return userMap[userName] + } + +} \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/layout/activity_mining.xml b/coalMiningApp/app/src/main/res/layout/activity_mining.xml index 2f2f050..7cf3bfe 100644 --- a/coalMiningApp/app/src/main/res/layout/activity_mining.xml +++ b/coalMiningApp/app/src/main/res/layout/activity_mining.xml @@ -17,7 +17,7 @@ layout="@layout/lay_title_right_bar" />