🐛 Fix get the posts repeatly

This commit is contained in:
LittleSheep 2025-06-13 00:36:12 +08:00
parent 34902d0486
commit 8af2dddb45
3 changed files with 15 additions and 17 deletions

View File

@ -1,6 +1,4 @@
using DysonNetwork.Sphere.Account;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using NodaTime; using NodaTime;
using NodaTime.Text; using NodaTime.Text;
@ -24,7 +22,8 @@ public class ActivityController(
/// Besides, when users are logged in, it will also mix the other kinds of data and who're plying to them. /// Besides, when users are logged in, it will also mix the other kinds of data and who're plying to them.
/// </summary> /// </summary>
[HttpGet] [HttpGet]
public async Task<ActionResult<List<Activity>>> ListActivities([FromQuery] string? cursor, [FromQuery] int take = 20) public async Task<ActionResult<List<Activity>>> ListActivities([FromQuery] string? cursor,
[FromQuery] int take = 20)
{ {
Instant? cursorTimestamp = null; Instant? cursorTimestamp = null;
if (!string.IsNullOrEmpty(cursor)) if (!string.IsNullOrEmpty(cursor))
@ -41,9 +40,8 @@ public class ActivityController(
HttpContext.Items.TryGetValue("CurrentUser", out var currentUserValue); HttpContext.Items.TryGetValue("CurrentUser", out var currentUserValue);
if (currentUserValue is not Account.Account currentUser) return currentUserValue is not Account.Account currentUser
return Ok(await acts.GetActivitiesForAnyone(take, cursorTimestamp)); ? Ok(await acts.GetActivitiesForAnyone(take, cursorTimestamp))
: Ok(await acts.GetActivities(take, cursorTimestamp, currentUser));
return Ok(await acts.GetActivities(take, cursorTimestamp, currentUser));
} }
} }

View File

@ -18,7 +18,7 @@ public class ActivityService(AppDatabase db, RelationshipService rels, PostServi
.Include(e => e.Categories) .Include(e => e.Categories)
.Include(e => e.Tags) .Include(e => e.Tags)
.Where(e => e.RepliedPostId == null) .Where(e => e.RepliedPostId == null)
.Where(p => cursor == null || cursor > p.CreatedAt) .Where(p => cursor == null || p.PublishedAt < cursor)
.OrderByDescending(p => p.PublishedAt) .OrderByDescending(p => p.PublishedAt)
.FilterWithVisibility(null, [], isListing: true) .FilterWithVisibility(null, [], isListing: true)
.Take(take) .Take(take)
@ -54,7 +54,7 @@ public class ActivityService(AppDatabase db, RelationshipService rels, PostServi
.Include(e => e.Categories) .Include(e => e.Categories)
.Include(e => e.Tags) .Include(e => e.Tags)
.Where(e => e.RepliedPostId == null) .Where(e => e.RepliedPostId == null)
.Where(p => cursor == null || p.CreatedAt > cursor) .Where(p => cursor == null || p.PublishedAt < cursor)
.OrderByDescending(p => p.PublishedAt) .OrderByDescending(p => p.PublishedAt)
.FilterWithVisibility(currentUser, userFriends, isListing: true) .FilterWithVisibility(currentUser, userFriends, isListing: true)
.Take(take) .Take(take)

View File

@ -73,7 +73,7 @@ public class Post : ModelBase, IIdentifiedResource, IActivity
{ {
return new Activity.Activity() return new Activity.Activity()
{ {
CreatedAt = CreatedAt, CreatedAt = PublishedAt ?? CreatedAt,
UpdatedAt = UpdatedAt, UpdatedAt = UpdatedAt,
DeletedAt = DeletedAt, DeletedAt = DeletedAt,
Id = Id, Id = Id,