Files
2026-10-26 16:28:14 +08:00

55 lines
1.4 KiB
Go

package configser
import (
"context"
"videoweb/app/api/proto"
"videoweb/pub/common/log"
"videoweb/pub/common/netutil"
"videoweb/pub/models/videocreatermod"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
)
func updateCreateCache(ctx context.Context) {
// 更新作者相关缓存
createList, err := videocreatermod.FindManyVideoCreaterInfos(ctx, bson.M{
videocreatermod.FN.VideoCreaterInfo.Status: true,
}, options.Find().SetLimit(200).SetSort(bson.M{videocreatermod.FN.VideoCreaterInfo.Sort: -1}))
if err != nil {
log.Warn("updateCreateCache FindManyVideoCreaterIinfos", log.E(err))
return
}
tempCreateMaps := make(map[int64]*videocreatermod.VideoCreaterInfo)
for _, createInfo := range createList {
tempCreateMaps[createInfo.Id] = createInfo
}
CacheMgr.Lock.Lock()
CacheMgr.CreateInfo = tempCreateMaps
CacheMgr.Lock.Unlock()
}
func GetCreateInfo(createId int64, imageCdn string) proto.PostCreateInfo {
if createId <= 0 {
return proto.PostCreateInfo{}
}
CacheMgr.Lock.RLock()
defer CacheMgr.Lock.RUnlock()
v, ok := CacheMgr.CreateInfo[createId]
if !ok {
return proto.PostCreateInfo{}
}
return proto.PostCreateInfo{
Id: v.Id,
Name: v.Name,
Slug: v.Slug,
Image: netutil.MergeURL(imageCdn, v.Image),
Works: v.Works,
CreateType: v.CreateType,
Desc: v.Desc,
Background: v.Background,
CreatedAt: v.CreatedAt,
SeoInfo: v.SeoInfo,
}
}