55 lines
1.4 KiB
Go
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,
|
|
}
|
|
}
|