mirror of
https://github.com/TangSengDaoDao/TangSengDaoDaoWeb
synced 2025-06-04 08:08:44 +00:00
修复消息拉取的BUG
This commit is contained in:
parent
4411cadbed
commit
947ea2c130
@ -9,8 +9,8 @@ import { DataSourceModule } from '@tsdaodao/datasource';
|
|||||||
import {ContactsModule} from '@tsdaodao/contacts';
|
import {ContactsModule} from '@tsdaodao/contacts';
|
||||||
|
|
||||||
|
|
||||||
WKApp.apiClient.config.apiURL = "https://api.botgate.cn/v1/"
|
// WKApp.apiClient.config.apiURL = "https://api.botgate.cn/v1/"
|
||||||
// WKApp.apiClient.config.apiURL = "/api/v1/" // 正式环境地址 (通用打包镜像,用此相对地址)
|
WKApp.apiClient.config.apiURL = "/api/v1/" // 正式环境地址 (通用打包镜像,用此相对地址)
|
||||||
WKApp.apiClient.config.tokenCallback = ()=> {
|
WKApp.apiClient.config.tokenCallback = ()=> {
|
||||||
return WKApp.loginInfo.token
|
return WKApp.loginInfo.token
|
||||||
}
|
}
|
||||||
|
@ -746,17 +746,30 @@ export default class ConversationVM extends ProviderListener {
|
|||||||
opts.pullMode = PullMode.Up
|
opts.pullMode = PullMode.Up
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const newMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts)
|
const remoteMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts)
|
||||||
|
|
||||||
|
const newMessages = new Array<Message>()
|
||||||
|
if(remoteMessages && remoteMessages.length>0) {
|
||||||
|
remoteMessages.forEach(msg => {
|
||||||
|
if (!msg.isDeleted) {
|
||||||
|
newMessages.push(msg)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
const sendingMessages = this.getSendingMessages(this.channel)
|
const sendingMessages = this.getSendingMessages(this.channel)
|
||||||
let allMessages = [...this.toMessageWraps(newMessages), ...sendingMessages]
|
let allMessages = [...this.toMessageWraps(newMessages), ...sendingMessages]
|
||||||
allMessages = this.sortMessages(allMessages)
|
allMessages = this.sortMessages(allMessages)
|
||||||
|
|
||||||
if (newMessages && newMessages.length > 0) {
|
if (remoteMessages && remoteMessages.length > 0) {
|
||||||
if (lastRemoteMessageSeq > newMessages[newMessages.length - 1].messageSeq) {
|
if(lastRemoteMessageSeq <= 0 && remoteMessages.length >= opts.limit) {
|
||||||
|
this.pullupHasMore = true
|
||||||
|
}else if (lastRemoteMessageSeq > remoteMessages[remoteMessages.length - 1].messageSeq) {
|
||||||
this.pullupHasMore = true
|
this.pullupHasMore = true
|
||||||
} else {
|
} else {
|
||||||
this.pullupHasMore = false
|
this.pullupHasMore = false
|
||||||
}
|
}
|
||||||
|
}else {
|
||||||
|
this.pullupHasMore = false;
|
||||||
}
|
}
|
||||||
let initMessage: MessageWrap | undefined
|
let initMessage: MessageWrap | undefined
|
||||||
if (initMessageSeq && initMessageSeq > 0) {
|
if (initMessageSeq && initMessageSeq > 0) {
|
||||||
@ -819,6 +832,7 @@ export default class ConversationVM extends ProviderListener {
|
|||||||
if (minMessage == null || minMessage.messageSeq <= 0 ) { // 没有消息直接return
|
if (minMessage == null || minMessage.messageSeq <= 0 ) { // 没有消息直接return
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log("pulldownMessages--->")
|
||||||
|
|
||||||
this.loading = true
|
this.loading = true
|
||||||
const opts = new SyncMessageOptions()
|
const opts = new SyncMessageOptions()
|
||||||
@ -826,11 +840,16 @@ export default class ConversationVM extends ProviderListener {
|
|||||||
opts.pullMode = PullMode.Down
|
opts.pullMode = PullMode.Down
|
||||||
opts.startMessageSeq = minMessage.messageSeq - 1
|
opts.startMessageSeq = minMessage.messageSeq - 1
|
||||||
|
|
||||||
let newMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts)
|
let remoteMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts)
|
||||||
if (!newMessages) {
|
const newMessages = new Array<Message>()
|
||||||
newMessages = new Array<Message>()
|
if(remoteMessages && remoteMessages.length>0) {
|
||||||
|
remoteMessages.forEach(msg => {
|
||||||
|
if (!msg.isDeleted) {
|
||||||
|
newMessages.push(msg)
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (newMessages.length <= 0 || newMessages[0].messageSeq === 1) {
|
if (remoteMessages.length <= 0 || remoteMessages[0].messageSeq === 1) {
|
||||||
this.pulldownFinished = true
|
this.pulldownFinished = true
|
||||||
}
|
}
|
||||||
this.messagesOfOrigin = [...this.toMessageWraps(newMessages), ...this.messagesOfOrigin]
|
this.messagesOfOrigin = [...this.toMessageWraps(newMessages), ...this.messagesOfOrigin]
|
||||||
@ -845,19 +864,31 @@ export default class ConversationVM extends ProviderListener {
|
|||||||
this.loading = true
|
this.loading = true
|
||||||
const maxMessage = this.getMessageMax()
|
const maxMessage = this.getMessageMax()
|
||||||
if (maxMessage == null || maxMessage.messageSeq <= 0 ) { // 没有消息直接return
|
if (maxMessage == null || maxMessage.messageSeq <= 0 ) { // 没有消息直接return
|
||||||
|
console.log("没有maxMessage")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log("pullupMessages--->")
|
||||||
|
|
||||||
const opts = new SyncMessageOptions()
|
const opts = new SyncMessageOptions()
|
||||||
opts.limit = WKApp.config.pageSizeOfMessage
|
opts.limit = WKApp.config.pageSizeOfMessage
|
||||||
opts.pullMode = PullMode.Up
|
opts.pullMode = PullMode.Up
|
||||||
opts.startMessageSeq = maxMessage.messageSeq
|
opts.startMessageSeq = maxMessage.messageSeq
|
||||||
let newMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts)
|
|
||||||
if (!newMessages) {
|
let remoteMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts)
|
||||||
newMessages = new Array<Message>()
|
const newMessages = new Array<Message>()
|
||||||
|
if(remoteMessages && remoteMessages.length>0) {
|
||||||
|
remoteMessages.forEach(msg => {
|
||||||
|
if (!msg.isDeleted) {
|
||||||
|
newMessages.push(msg)
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (newMessages.length < opts.limit) {
|
if (remoteMessages.length < opts.limit) {
|
||||||
this.pullupHasMore = false
|
this.pullupHasMore = false
|
||||||
|
console.log("没有更多消息了")
|
||||||
|
}else {
|
||||||
|
this.pullupHasMore = true
|
||||||
|
console.log("还有更多消息")
|
||||||
}
|
}
|
||||||
this.messagesOfOrigin = [...this.messagesOfOrigin, ...this.toMessageWraps(newMessages)]
|
this.messagesOfOrigin = [...this.messagesOfOrigin, ...this.toMessageWraps(newMessages)]
|
||||||
this.refreshAndLocateMessages(this.messagesOfOrigin, undefined, false, () => {
|
this.refreshAndLocateMessages(this.messagesOfOrigin, undefined, false, () => {
|
||||||
|
@ -55,10 +55,8 @@ export class ConversationProvider implements IConversationProvider {
|
|||||||
const messageList = resp && resp["messages"]
|
const messageList = resp && resp["messages"]
|
||||||
if (messageList) {
|
if (messageList) {
|
||||||
messageList.forEach((msg: any) => {
|
messageList.forEach((msg: any) => {
|
||||||
if (msg && msg["message_id"] && msg["is_deleted"] === 0) {
|
const message = Convert.toMessage(msg);
|
||||||
const message = Convert.toMessage(msg);
|
messages.push(message);
|
||||||
messages.push(message);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
// if (resp.data.more === 1 && messages.length < limit && resp.data["messages"].length) {
|
// if (resp.data.more === 1 && messages.length < limit && resp.data["messages"].length) {
|
||||||
// opts.maxMessageSeq = resp.data["messages"][0].message_seq;
|
// opts.maxMessageSeq = resp.data["messages"][0].message_seq;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user