离线消息

This commit is contained in:
itgaojian163 2024-11-12 09:52:09 +08:00
parent e03d68e55f
commit dc85509a33
4 changed files with 27 additions and 12 deletions

View File

@ -22,7 +22,7 @@ interface MsgCategoryDao {
/**
* 根据发送人ID获取
*/
@Query("SELECT * FROM db_category WHERE senderId=:senderId OR receiverId=:senderId AND loginUserId != :userId")
@Query("SELECT * FROM db_category WHERE loginUserId = :userId AND senderId=:senderId OR receiverId=:senderId")
suspend fun getCategoryBySenderId(userId: String, senderId: String): MsgCategoryBean?
/**
@ -58,7 +58,7 @@ interface MsgCategoryDao {
/**
* 清空与某个人的聊天记录
*/
@Query("DELETE FROM db_category WHERE loginUserId=:userId AND `senderId`=(:from) AND receiverId=(:to) OR `senderId`=(:to) AND receiverId=(:from)")
@Query("DELETE FROM db_category WHERE loginUserId=:userId AND (senderId=:from AND receiverId=:to) OR (senderId=:to AND receiverId=:from)")
suspend fun delChatHistory(userId: String, from: String?, to: String?)
//删除聊天
@ -98,6 +98,7 @@ interface MsgCategoryDao {
* 根据发送人的ID插入或者更新
*/
suspend fun updateOrInsert(senderId: String, msgBean: MsgBean) {
//判断消息是否存在
val bean = getCategoryBySenderId(msgBean.loginUserId!!, senderId)
if (bean == null) {
//需要转换成MsgCategoryBean
@ -127,6 +128,11 @@ interface MsgCategoryDao {
/**
* 根据messageId 更新头像和名称
*/
@Query("UPDATE db_category SET userNickName=:nickName,avatar=:avatar WHERE messageId=:messageId")
suspend fun updateInfoByMessageId(nickName: String, avatar: String, messageId: String)
@Query("UPDATE db_category SET userNickName=:nickName,avatar=:avatar WHERE messageId=:messageId AND loginUserId=:loginUserId")
suspend fun updateInfoByMessageId(
nickName: String,
avatar: String,
messageId: String,
loginUserId: String
)
}

View File

@ -87,7 +87,7 @@ interface MsgDao {
/**
* 清空与某个人的聊天记录
*/
@Query("DELETE FROM db_msg WHERE loginUserId=:userId AND senderId=:from AND receiverId=:to OR senderId=:from AND senderId=:to")
@Query("DELETE FROM db_msg WHERE loginUserId=:userId AND (senderId=:from AND receiverId=:to) OR (senderId=:from AND senderId=:to)")
suspend fun delChatHistory(userId: String, from: String, to: String)
/**
@ -128,8 +128,13 @@ interface MsgDao {
/**
* 更新 头像和名称
*/
@Query("UPDATE db_msg SET userNickName=:nickName,avatar=:avatar WHERE messageId=:messageId")
suspend fun updateUserInfoByMessageId(nickName: String, avatar: String, messageId: String)
@Query("UPDATE db_msg SET userNickName=:nickName,avatar=:avatar WHERE messageId=:messageId AND loginUserId=:loginUserId")
suspend fun updateUserInfoByMessageId(
nickName: String,
avatar: String,
messageId: String,
loginUserId: String
)
/**
* 搜索聊天内容

View File

@ -115,7 +115,7 @@ class ChatPageViewModel(
Log.e("ChatPageViewModel", "getList:${fromId}\n${toId}");
return withContext(Dispatchers.IO) {
val msgDao = DbManager.db.msgDao()
return@withContext msgDao.getMsgByFromOrToPage(SpUtils.getId(),fromId, toId)
return@withContext msgDao.getMsgByFromOrToPage(SpUtils.getId(), fromId, toId)
}
}
@ -429,12 +429,14 @@ class ChatPageViewModel(
cDao.updateInfoByMessageId(
userInfoBean.nickname,
userInfoBean.avatar,
messageId
messageId,
SpUtils.getId()
)
mDao.updateUserInfoByMessageId(
userInfoBean.nickname,
userInfoBean.avatar,
messageId
messageId,
SpUtils.getId()
)
}
refresh()

View File

@ -150,12 +150,14 @@ class MsgViewModel(val context: Context) : BaseViewModel() {
cDao.updateInfoByMessageId(
userInfoBean.nickname,
userInfoBean.avatar,
messageId
messageId,
SpUtils.getId()
)
mDao.updateUserInfoByMessageId(
userInfoBean.nickname,
userInfoBean.avatar,
messageId
messageId,
SpUtils.getId()
)
}
refresh()