用户昵称,头像,本地缓存与更新规则

This commit is contained in:
2022-02-09 09:34:11 +08:00
parent 56c212d9ad
commit fbf9d7db31
6 changed files with 45 additions and 18 deletions

View File

@@ -108,8 +108,8 @@
onLoad(e) { onLoad(e) {
this.targetId = e.targetId this.targetId = e.targetId
getFriendInfo(e.targetId).then(res => { getFriendInfo(e.targetId).then(res => {
this.userInfo = res this.userInfo = res
// 获取到用户信息之后,去检查一下要不要更新 // 获取到用户信息之后,去检查一下要不要更新
this.$store.dispatch('updateFriend', res) this.$store.dispatch('updateFriend', res)
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: res.name title: res.name
@@ -143,7 +143,7 @@
}, },
toPrivate() { toPrivate() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/im/private/chat?conversationType=1&targetId=' + this.targetId url: '/pages/im/private/chat?targetId=' + this.targetId
}); });
}, },
setRemark() { setRemark() {

View File

@@ -44,7 +44,7 @@
</view> </view>
<view class="content u-border-bottom"> <view class="content u-border-bottom">
<view class="header"> <view class="header">
<view class="name">{{ friend(item.targetId).name || '未知用户' }}</view> <view class="name">{{ friend(item.targetId).name }}</view>
<view class="time">{{ item.sentTime|timeCustomCN }}</view> <view class="time">{{ item.sentTime|timeCustomCN }}</view>
</view> </view>
<message-preview class="preview" :msg="item.latestMessage" /> <message-preview class="preview" :msg="item.latestMessage" />
@@ -218,8 +218,7 @@
toDetail(item) { toDetail(item) {
this.hidePop() this.hidePop()
uni.navigateTo({ uni.navigateTo({
url: '/pages/im/private/chat?targetId=' + item.targetId + '&conversationType=' + item url: '/pages/im/private/chat?targetId=' + item.targetId
.conversationType
}) })
}, },
toFriend(targetId) { toFriend(targetId) {

View File

@@ -87,16 +87,12 @@
}, },
onLoad(e) { onLoad(e) {
this.targetId = e.targetId this.targetId = e.targetId
this.conversationType = e.conversationType // 会话类型
this.userInfo = this.$store.getters.userInfo(this.targetId) this.userInfo = this.$store.getters.userInfo(this.targetId)
console.log(this.userInfo);
// 获取消息列表
this.initMessageList()
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: this.userInfo.name title: this.userInfo.name
}) })
// 获取消息列表
this.initMessageList()
// 监听消息已读状态 // 监听消息已读状态
uni.$on('onReadReceiptReceived', (data) => { uni.$on('onReadReceiptReceived', (data) => {
if (data.targetId == this.targetId) { if (data.targetId == this.targetId) {

View File

@@ -58,6 +58,7 @@ export default {
model.find('userId=' + userInfo.userId, (err, result) => { model.find('userId=' + userInfo.userId, (err, result) => {
if (userInfo.hash != result[0].hash) { if (userInfo.hash != result[0].hash) {
commit('updateFriendInfo', userInfo) commit('updateFriendInfo', userInfo)
console.log(userInfo);
if (userInfo.portraitUrl && userInfo.portraitUrl != result[0].portraitUrl) { if (userInfo.portraitUrl && userInfo.portraitUrl != result[0].portraitUrl) {
saveAvatar(userInfo, (savedFilePath) => { saveAvatar(userInfo, (savedFilePath) => {
const info = { const info = {
@@ -67,7 +68,9 @@ export default {
portraitUrl: userInfo.portraitUrl, portraitUrl: userInfo.portraitUrl,
localAvatar: savedFilePath localAvatar: savedFilePath
} }
model.update('userId=' + userInfo.userId, info) model.update('userId=' + userInfo.userId, info, (err, res) => {
console.log('保存结果', err, res);
})
commit('updateFriendInfo', info) commit('updateFriendInfo', info)
}) })
} else { } else {
@@ -76,9 +79,11 @@ export default {
name: userInfo.name, name: userInfo.name,
hash: userInfo.hash, hash: userInfo.hash,
portraitUrl: userInfo.portraitUrl, portraitUrl: userInfo.portraitUrl,
localAvatar: '' localAvatar: result[0].localAvatar
} }
model.update('userId=' + userInfo.userId, info) model.update('userId=' + userInfo.userId, info, (err, res) => {
console.log('保存结果', err, res);
})
} }
} else { } else {
console.log('不用更新的用户', userInfo.userId, userInfo.name); console.log('不用更新的用户', userInfo.userId, userInfo.name);
@@ -102,7 +107,9 @@ export default {
portraitUrl: userInfo.portraitUrl, portraitUrl: userInfo.portraitUrl,
localAvatar: savedFilePath localAvatar: savedFilePath
} }
model.insert(info) model.insert(info, (err, res) => {
console.log('保存结果', err, res);
})
// 保存头像后,更新信息 // 保存头像后,更新信息
commit('updateFriendInfo', info) commit('updateFriendInfo', info)
}) })
@@ -115,7 +122,9 @@ export default {
portraitUrl: userInfo.portraitUrl, portraitUrl: userInfo.portraitUrl,
localAvatar: '' localAvatar: ''
} }
model.insert(info) model.insert(info, (err, res) => {
console.log('保存结果', err, res);
})
} }
} }
} }

View File

@@ -136,8 +136,11 @@ const addListeners = () => {
console.log('收到消息', res.data.message); console.log('收到消息', res.data.message);
const message = res.data.message const message = res.data.message
if (inArray(message.objectName, notifyMsgTypes)) { if (inArray(message.objectName, notifyMsgTypes)) {
console.log('new Message'); console.log('通知并计数的消息');
newMessage(message) newMessage(message)
} else if (message.objectName === 'RC:ProfileNtf') {
console.log('更新资料消息', JSON.parse(message.content.data));
store.dispatch('updateFriend', JSON.parse(message.content.data))
} }
}) })

View File

@@ -0,0 +1,20 @@
{
"objectName": "RC:ProfileNtf",
"receivedTime": 1644312766084,
"extra": "",
"messageUId": "BUR2-MQHQ-SMIO-I32D",
"conversationType": 6,
"messageDirection": 2,
"senderUserId": "10047",
"content": {
"extra": "",
"operation": "Update",
"objectName": "RC:ProfileNtf",
"data": "{\"a\":2,\"m\":\"修改用户信息\"}"
},
"targetId": "10047",
"sentTime": 1644312766699,
"messageId": 26,
"receivedStatus": 0,
"sentStatus": 30
}