This commit is contained in:
xing 2022-10-10 22:46:04 +08:00
parent a24352d043
commit 52d3b89d27
2 changed files with 16 additions and 6 deletions

View File

@ -27,18 +27,28 @@ func recentComments(...any) (r []models.WpComments, err error) {
} }
func PostComments(ctx context.Context, Id uint64) ([]models.WpComments, error) { func PostComments(ctx context.Context, Id uint64) ([]models.WpComments, error) {
return postCommentCaches.GetCache(ctx, Id, time.Second, Id) ids, err := postCommentCaches.GetCache(ctx, Id, time.Second, Id)
if err != nil {
return nil, err
}
return GetCommentByIds(ctx, ids)
} }
func postComments(args ...any) ([]models.WpComments, error) { func postComments(args ...any) ([]uint64, error) {
postId := args[0].(uint64) postId := args[0].(uint64)
return models.Find[models.WpComments](models.SqlBuilder{ r, err := models.Find[models.WpComments](models.SqlBuilder{
{"comment_approved", "1"}, {"comment_approved", "1"},
{"comment_post_ID", "=", strconv.FormatUint(postId, 10), "int"}, {"comment_post_ID", "=", strconv.FormatUint(postId, 10), "int"},
}, "*", "", models.SqlBuilder{ }, "comment_ID", "", models.SqlBuilder{
{"comment_date_gmt", "asc"}, {"comment_date_gmt", "asc"},
{"comment_ID", "asc"}, {"comment_ID", "asc"},
}, nil, 0) }, nil, 0)
if err != nil {
return nil, err
}
return helper.SliceMap(r, func(t models.WpComments) uint64 {
return t.CommentId
}), err
} }
func GetCommentById(ctx context.Context, id uint64) (models.WpComments, error) { func GetCommentById(ctx context.Context, id uint64) (models.WpComments, error) {

View File

@ -16,7 +16,7 @@ var archivesCaches *Arch
var categoryCaches *cache.SliceCache[models.WpTermsMy] var categoryCaches *cache.SliceCache[models.WpTermsMy]
var recentPostsCaches *cache.SliceCache[models.WpPosts] var recentPostsCaches *cache.SliceCache[models.WpPosts]
var recentCommentsCaches *cache.SliceCache[models.WpComments] var recentCommentsCaches *cache.SliceCache[models.WpComments]
var postCommentCaches *cache.MapCache[uint64, []models.WpComments] var postCommentCaches *cache.MapCache[uint64, []uint64]
var postsCache *cache.MapCache[uint64, models.WpPosts] var postsCache *cache.MapCache[uint64, models.WpPosts]
var monthPostsCache *cache.MapCache[string, []uint64] var monthPostsCache *cache.MapCache[string, []uint64]
var postListIdsCache *cache.MapCache[string, PostIds] var postListIdsCache *cache.MapCache[string, PostIds]
@ -48,7 +48,7 @@ func InitActionsCommonCache() {
recentCommentsCaches = cache.NewSliceCache[models.WpComments](recentComments, vars.Conf.RecentCommentsCacheTime) recentCommentsCaches = cache.NewSliceCache[models.WpComments](recentComments, vars.Conf.RecentCommentsCacheTime)
postCommentCaches = cache.NewMapCacheByFn[uint64, []models.WpComments](postComments, vars.Conf.PostCommentsCacheTime) postCommentCaches = cache.NewMapCacheByFn[uint64, []uint64](postComments, vars.Conf.PostCommentsCacheTime)
maxPostIdCache = cache.NewSliceCache[uint64](getMaxPostId, vars.Conf.MaxPostIdCacheTime) maxPostIdCache = cache.NewSliceCache[uint64](getMaxPostId, vars.Conf.MaxPostIdCacheTime)