From ecfb85ba4823e18958d4af95ec95f72061479c4c Mon Sep 17 00:00:00 2001 From: Sydonian <794346190@qq.com> Date: Tue, 2 Jul 2024 16:35:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=B0=83=E8=AF=95=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/pkgs/db/object.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/pkgs/db/object.go b/common/pkgs/db/object.go index 036620d..83b30ac 100644 --- a/common/pkgs/db/object.go +++ b/common/pkgs/db/object.go @@ -2,11 +2,13 @@ package db import ( "fmt" + "strings" "time" "github.com/jmoiron/sqlx" "github.com/samber/lo" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" + "gitlink.org.cn/cloudream/common/utils/sort2" stgmod "gitlink.org.cn/cloudream/storage/common/models" "gitlink.org.cn/cloudream/storage/common/pkgs/db/model" coormq "gitlink.org.cn/cloudream/storage/common/pkgs/mq/coordinator" @@ -201,6 +203,11 @@ func (db *ObjectDB) BatchAdd(ctx SQLContext, packageID cdssdk.PackageID, adds [] if err != nil { return nil, fmt.Errorf("batch get object ids: %w", err) } + + // 所有需要按索引来一一对应的数据都需要进行排序 + adds = sort2.Sort(adds, func(l, r coormq.AddObjectEntry) int { return strings.Compare(l.Path, r.Path) }) + addedObjs = sort2.Sort(addedObjs, func(l, r cdssdk.Object) int { return strings.Compare(l.Path, r.Path) }) + addedObjIDs := make([]cdssdk.ObjectID, len(addedObjs)) for i := range addedObjs { addedObjIDs[i] = addedObjs[i].ObjectID