👔 Prevent from creating duplicate featured record

This commit is contained in:
2025-08-25 13:05:34 +08:00
parent 8c748fd57a
commit 84c4df6620

View File

@@ -787,14 +787,25 @@ public partial class PostService(
await cache.SetAsync(FeaturedPostCacheKey, featuredIds, TimeSpan.FromHours(24)); await cache.SetAsync(FeaturedPostCacheKey, featuredIds, TimeSpan.FromHours(24));
// Create featured record // Create featured record
var records = reactSocialPoints.Select(e => new PostFeaturedRecord var existingFeaturedPostIds = await db.PostFeaturedRecords
.Where(r => featuredIds.Contains(r.PostId))
.Select(r => r.PostId)
.ToListAsync();
var records = reactSocialPoints
.Where(p => !existingFeaturedPostIds.Contains(p.Key))
.Select(e => new PostFeaturedRecord
{ {
PostId = e.Key, PostId = e.Key,
SocialCredits = e.Value SocialCredits = e.Value
}).ToList(); }).ToList();
if (records.Any())
{
db.PostFeaturedRecords.AddRange(records); db.PostFeaturedRecords.AddRange(records);
await db.SaveChangesAsync(); await db.SaveChangesAsync();
} }
}
var posts = await db.Posts var posts = await db.Posts
.Where(e => featuredIds.Contains(e.Id)) .Where(e => featuredIds.Contains(e.Id))