mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-15 12:10:21 +00:00
[AB-272] improving leaderboard performance
fixing leaderboard returning wrong pages making template cache update duration longer
This commit is contained in:
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.experience.model.template;
|
||||
import dev.sheldan.abstracto.experience.model.database.AUserExperience;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -15,13 +16,14 @@ import java.io.Serializable;
|
||||
@Getter
|
||||
@Builder
|
||||
public class LeaderBoardEntryModel implements Serializable {
|
||||
/**
|
||||
* The {@link AUserExperience experience} for this particular user in the server
|
||||
*/
|
||||
private AUserExperience experience;
|
||||
private Long experience;
|
||||
private Long messageCount;
|
||||
private Long userId;
|
||||
private Integer level;
|
||||
/**
|
||||
* The {@link Member member} associated wit this user experience, might be null if the user left he server.
|
||||
*/
|
||||
@Setter
|
||||
private transient Member member;
|
||||
/**
|
||||
* The position this {@link dev.sheldan.abstracto.core.models.database.AUserInAServer user} in this server has, ordered by experience {@link AUserExperience#experience}
|
||||
|
||||
@@ -52,11 +52,11 @@ public interface UserExperienceManagementService {
|
||||
/**
|
||||
* Retrieves a list of {@link AUserExperience} ordered by {@link AUserExperience#experience} and only returns the positions between {@code start} and @{code end}.
|
||||
* @param server The {@link AServer} to retrieve the users for
|
||||
* @param start The start index in the complete ordered list to return the {@link AUserExperience} elements for
|
||||
* @param end The end index for which to return a sublist of {@link AUserExperience} elements for
|
||||
* @param page The page to retrieve
|
||||
* @param size The size of each page
|
||||
* @return A list desc ordered by {@link AUserExperience#experience} only containing the elements between {@code start} and @{code end}
|
||||
*/
|
||||
List<AUserExperience> findLeaderBoardUsersPaginated(AServer server, Integer start, Integer end);
|
||||
List<AUserExperience> findLeaderBoardUsersPaginated(AServer server, Integer page, Integer size);
|
||||
|
||||
/**
|
||||
* Returns the {@link LeaderBoardEntryResult} of the given {@link AUserExperience}.
|
||||
|
||||
Reference in New Issue
Block a user