feat: add bought check

This commit is contained in:
Rogee
2025-05-06 16:33:46 +08:00
parent 5fafdd9d69
commit dd5e1e86d8
2 changed files with 31 additions and 0 deletions

View File

@@ -51,6 +51,11 @@ func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *Li
postIds := lo.Map(pager.Items.([]model.Posts), func(item model.Posts, _ int) int64 { return item.ID })
if len(postIds) > 0 {
userBoughtIds, err := models.Users.BatchCheckHasBought(ctx.Context(), user.ID, postIds)
if err != nil {
log.WithError(err).Errorf("BatchCheckHasBought err: %v", err)
}
items := lo.FilterMap(pager.Items.([]model.Posts), func(item model.Posts, _ int) (PostItem, bool) {
medias, err := models.Posts.GetMediaByIds(ctx.Context(), item.HeadImages.Data)
if err != nil {
@@ -67,6 +72,8 @@ func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *Li
return url, true
})
_, bought := userBoughtIds[item.ID]
return PostItem{
ID: item.ID,
Title: item.Title,
@@ -77,6 +84,7 @@ func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *Li
Likes: item.Likes,
Tags: item.Tags.Data,
HeadImages: mediaUrls,
Bought: bought,
}, true
})