[AB-132] fixing experience job not creating user experience records in the database

fixing setup command not being considered templated
changing column name for counters
fixing liquibase configuration for creating postgres functions
fixing duration format expcetion model not available in the template
enabling builds for hotfix/bugfix branches
This commit is contained in:
Sheldan
2020-09-27 00:36:07 +02:00
parent 5081c3174f
commit 0f9a0dc143
19 changed files with 376 additions and 268 deletions

View File

@@ -15,4 +15,6 @@ public class ExperienceGainResult {
private Long newExperience;
private Integer newLevel;
private Long newMessageCount;
@Builder.Default
private boolean createUserExperience = false;
}

View File

@@ -0,0 +1,17 @@
package dev.sheldan.abstracto.experience.models;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
@Getter
@Setter
@Builder
public class ServerExperience {
private Long serverId;
@Builder.Default
private List<Long> userInServerIds = new ArrayList<>();
}

View File

@@ -7,6 +7,7 @@ import dev.sheldan.abstracto.core.utils.CompletableFutureList;
import dev.sheldan.abstracto.experience.models.LeaderBoard;
import dev.sheldan.abstracto.experience.models.LeaderBoardEntry;
import dev.sheldan.abstracto.experience.models.RoleCalculationResult;
import dev.sheldan.abstracto.experience.models.ServerExperience;
import dev.sheldan.abstracto.experience.models.database.AExperienceLevel;
import dev.sheldan.abstracto.experience.models.database.AExperienceRole;
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
@@ -35,7 +36,7 @@ public interface AUserExperienceService {
* containing a list of {@link AUserInAServer} which should gain experience in the minute used as key in the HashMap
* @return
*/
Map<Long, List<AServer>> getRuntimeExperience();
Map<Long, List<ServerExperience>> getRuntimeExperience();
/**
* Calculates the appropriate level of the given {@link AUserExperience} according to the given {@link AExperienceLevel}
@@ -64,7 +65,7 @@ public interface AUserExperienceService {
* of each user by 1.
* @param serverExp The list of {@link AServer} containing the users which get experience
*/
CompletableFuture<Void> handleExperienceGain(List<AServer> serverExp);
CompletableFuture<Void> handleExperienceGain(List<ServerExperience> serverExp);
/**
* Calculates the currently appropriate {@link AExperienceRole} for the given user and updates the role on the

View File

@@ -7,6 +7,7 @@ import dev.sheldan.abstracto.experience.models.database.LeaderBoardEntryResult;
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
import java.util.List;
import java.util.Optional;
/**
* Service used to manage the record in the {@link AUserExperience} table
@@ -19,6 +20,9 @@ public interface UserExperienceManagementService {
*/
AUserExperience findUserInServer(AUserInAServer aUserInAServer);
Optional<AUserExperience> findByUserInServerIdOptional(Long userInServerId);
AUserExperience findByUserInServerId(Long userInServerId);
/**
* Creates a {@link AUserExperience} object with the default values (0 xp, 0 messages) for the given {@link AUserInAServer} object.
* @param aUserInAServer The {@link AUserInAServer} to create the {@link AUserExperience} object for.