From 368eeed0d0e76cf829a68198cb31d5697ec805e7 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Tue, 23 May 2023 14:33:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8D=E5=90=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=88=97=E8=A1=A8id?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/modules/sync/server/syncList.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/modules/sync/server/syncList.ts b/src/main/modules/sync/server/syncList.ts index 7e723088..82248c8b 100644 --- a/src/main/modules/sync/server/syncList.ts +++ b/src/main/modules/sync/server/syncList.ts @@ -110,10 +110,10 @@ const setRemotelList = async(socket: LX.Sync.Server.Socket, listData: LX.Sync.Li }) }) -type UserDataObj = Record +type UserDataObj = Map const createUserListDataObj = (listData: LX.Sync.ListData): UserDataObj => { - const userListDataObj: UserDataObj = {} - for (const list of listData.userList) userListDataObj[list.id] = list + const userListDataObj: UserDataObj = new Map() + for (const list of listData.userList) userListDataObj.set(list.id, list) return userListDataObj } @@ -171,7 +171,7 @@ const mergeList = (sourceListData: LX.Sync.ListData, targetListData: LX.Sync.Lis targetListData.userList.forEach((list, index) => { const targetUpdateTime = list?.locationUpdateTime ?? 0 - const sourceList = userListDataObj[list.id] + const sourceList = userListDataObj.get(list.id) if (sourceList) { sourceList.list = handleMergeList(sourceList.list, list.list, addMusicLocationType) @@ -205,7 +205,7 @@ const overwriteList = (sourceListData: LX.Sync.ListData, targetListData: LX.Sync newListData.userList = [...sourceListData.userList] targetListData.userList.forEach((list, index) => { - if (userListDataObj[list.id]) return + if (userListDataObj.has(list.id)) return if (list?.locationUpdateTime) { newListData.userList.splice(index, 0, list) } else { @@ -367,10 +367,10 @@ const handleMergeListDataFromSnapshot = async(socket: LX.Sync.Server.Socket, sna let newUserList: LX.List.UserListInfoFull[] = [] for (const list of localListData.userList) { if (removedListIds.has(list.id)) continue - const remoteList = remoteUserListData[list.id] + const remoteList = remoteUserListData.get(list.id) let newList: LX.List.UserListInfoFull if (remoteList) { - newList = { ...list, list: mergeListDataFromSnapshot(list.list, remoteList.list, snapshotUserListData[list.id].list, addMusicLocationType) } + newList = { ...list, list: mergeListDataFromSnapshot(list.list, remoteList.list, snapshotUserListData.get(list.id)?.list ?? [], addMusicLocationType) } } else { newList = { ...list } } @@ -380,8 +380,8 @@ const handleMergeListDataFromSnapshot = async(socket: LX.Sync.Server.Socket, sna remoteListData.userList.forEach((list, index) => { if (removedListIds.has(list.id)) return const remoteUpdateTime = list?.locationUpdateTime ?? 0 - if (localUserListData[list.id]) { - const localUpdateTime = localUserListData[list.id]?.locationUpdateTime ?? 0 + if (localUserListData.has(list.id)) { + const localUpdateTime = localUserListData.get(list.id)?.locationUpdateTime ?? 0 if (localUpdateTime >= remoteUpdateTime) return // 调整位置 const [newList] = newUserList.splice(newUserList.findIndex(l => l.id == list.id), 1)