👔 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,13 +787,24 @@ 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,
SocialCredits = e.Value
}).ToList();
if (records.Any())
{ {
PostId = e.Key, db.PostFeaturedRecords.AddRange(records);
SocialCredits = e.Value await db.SaveChangesAsync();
}).ToList(); }
db.PostFeaturedRecords.AddRange(records);
await db.SaveChangesAsync();
} }
var posts = await db.Posts var posts = await db.Posts