improve search

This commit is contained in:
2025-09-09 10:56:35 +08:00
parent c0d904e035
commit ed5843cd54

View File

@@ -430,24 +430,32 @@ func GetResourcesIdWithTag(tagID uint) ([]uint, error) {
}
func BatchGetResources(ids []uint) ([]model.Resource, error) {
idMap := make(map[uint]struct{})
uniqueIds := make([]uint, 0, len(ids))
for _, id := range ids {
if _, exists := idMap[id]; !exists {
idMap[id] = struct{}{}
uniqueIds = append(uniqueIds, id)
}
}
var resources []model.Resource
for _, id := range ids {
var r model.Resource
if err := db.
Where("id IN ?", uniqueIds).
Preload("User").
Preload("Images").
Preload("Tags").
Find(&resources).
Error; err != nil {
First(&r, id).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
continue
}
return nil, err
}
for i, tag := range r.Tags {
if tag.AliasOf != nil {
t, err := GetTagByID(*tag.AliasOf)
if err != nil {
return nil, err
} else {
r.Tags[i].Type = t.Type
}
}
}
resources = append(resources, r)
}
return resources, nil
}