forked from Cookies_Github_mirror/AquaDX
[+] Generalize game trend & summary apis
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package icu.samnyan.aqua.sega.maimai2.dao.userdata
|
||||
|
||||
import icu.samnyan.aqua.net.utils.GenericUserDataRepo
|
||||
import icu.samnyan.aqua.sega.general.model.Card
|
||||
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
@@ -10,8 +11,8 @@ import java.util.*
|
||||
|
||||
|
||||
@Repository("Maimai2UserDataRepository")
|
||||
interface UserDataRepository : JpaRepository<UserDetail, Long?> {
|
||||
fun findByCard(card: Card): UserDetail?
|
||||
interface UserDataRepository : JpaRepository<UserDetail, Long>, GenericUserDataRepo {
|
||||
override fun findByCard(card: Card): UserDetail?
|
||||
|
||||
fun findByCardExtId(userId: Long): Optional<UserDetail>
|
||||
|
||||
@@ -19,5 +20,5 @@ interface UserDataRepository : JpaRepository<UserDetail, Long?> {
|
||||
fun deleteByCard(card: Card)
|
||||
|
||||
@Query("select count(*) from Maimai2UserData where playerRating > :rating")
|
||||
fun getRanking(rating: Int): Long
|
||||
override fun getRanking(rating: Int): Long
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package icu.samnyan.aqua.sega.maimai2.dao.userdata;
|
||||
|
||||
import icu.samnyan.aqua.net.utils.GenericPlaylogRepo;
|
||||
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail;
|
||||
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserPlaylog;
|
||||
|
||||
@@ -15,7 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Repository("Maimai2UserPlaylogRepository")
|
||||
public interface UserPlaylogRepository extends JpaRepository<UserPlaylog, Long> {
|
||||
public interface UserPlaylogRepository extends JpaRepository<UserPlaylog, Long>, GenericPlaylogRepo {
|
||||
|
||||
List<UserPlaylog> findByUser_Card_ExtId(long userId);
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ public class GetUserPreviewHandler implements BaseHandler {
|
||||
resp.setPartnerId(user.getPartnerId());
|
||||
resp.setFrameId(user.getFrameId());
|
||||
resp.setTotalAwake(user.getTotalAwake());
|
||||
resp.setIsNetMember(user.getIsNetMember());
|
||||
resp.setIsNetMember(user.isNetMember());
|
||||
resp.setDailyBonusDate(user.getDailyBonusDate());
|
||||
if (userOptionOptional.isPresent()) {
|
||||
UserOption option = userOptionOptional.get();
|
||||
|
||||
@@ -103,7 +103,7 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||
newUserData.setUserName(userName);
|
||||
|
||||
// Set isNetMember value to 1, which enables some in-game features.
|
||||
newUserData.setIsNetMember(1);
|
||||
newUserData.setNetMember(1);
|
||||
userDataRepository.saveAndFlush(newUserData);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,156 +0,0 @@
|
||||
package icu.samnyan.aqua.sega.maimai2.model.userdata;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
|
||||
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer;
|
||||
import icu.samnyan.aqua.sega.general.model.Card;
|
||||
import icu.samnyan.aqua.sega.maimai2.util.IntegerListConverter;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "Maimai2UserData")
|
||||
@Table(name = "maimai2_user_detail")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UserDetail implements Serializable {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@JsonIgnore
|
||||
private long id;
|
||||
|
||||
@JsonSerialize(using = AccessCodeSerializer.class)
|
||||
@JsonProperty(value = "accessCode", access = JsonProperty.Access.READ_ONLY)
|
||||
@OneToOne
|
||||
@JoinColumn(name = "aime_card_id")
|
||||
private Card card;
|
||||
|
||||
private String userName;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private String friendCode = "";
|
||||
private int isNetMember;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private int nameplateId = 0;
|
||||
private int iconId;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private int trophyId = 0;
|
||||
private int plateId;
|
||||
private int titleId;
|
||||
private int partnerId;
|
||||
private int frameId;
|
||||
private int selectMapId;
|
||||
private int totalAwake;
|
||||
private int gradeRating;
|
||||
private int musicRating;
|
||||
private int playerRating;
|
||||
private int highestRating;
|
||||
private int gradeRank;
|
||||
private int classRank;
|
||||
private int courseRank;
|
||||
|
||||
@Convert(converter = IntegerListConverter.class)
|
||||
private List<Integer> charaSlot; // Entries: 5
|
||||
|
||||
@Convert(converter = IntegerListConverter.class)
|
||||
private List<Integer> charaLockSlot; // Entries: 5
|
||||
|
||||
private long contentBit;
|
||||
private int playCount;
|
||||
private String eventWatchedDate;
|
||||
private String lastGameId;
|
||||
private String lastRomVersion;
|
||||
private String lastDataVersion;
|
||||
private String lastLoginDate;
|
||||
private String lastPlayDate;
|
||||
private int lastPlayCredit;
|
||||
private int lastPlayMode;
|
||||
private int lastPlaceId;
|
||||
private String lastPlaceName;
|
||||
private int lastAllNetId;
|
||||
private int lastRegionId;
|
||||
private String lastRegionName;
|
||||
private String lastClientId;
|
||||
private String lastCountryCode;
|
||||
private int lastSelectEMoney;
|
||||
private int lastSelectTicket;
|
||||
private int lastSelectCourse;
|
||||
private int lastCountCourse;
|
||||
private String firstGameId;
|
||||
private String firstRomVersion;
|
||||
private String firstDataVersion;
|
||||
private String firstPlayDate;
|
||||
private String compatibleCmVersion;
|
||||
private String dailyBonusDate;
|
||||
private String dailyCourseBonusDate;
|
||||
private String lastPairLoginDate;
|
||||
private String lastTrialPlayDate;
|
||||
private int playVsCount;
|
||||
private int playSyncCount;
|
||||
private int winCount;
|
||||
private int helpCount;
|
||||
private int comboCount;
|
||||
private long totalDeluxscore;
|
||||
private long totalBasicDeluxscore;
|
||||
private long totalAdvancedDeluxscore;
|
||||
private long totalExpertDeluxscore;
|
||||
private long totalMasterDeluxscore;
|
||||
private long totalReMasterDeluxscore;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private long totalHiscore = 0;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private long totalBasicHighscore = 0;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private long totalAdvancedHighscore = 0;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private long totalExpertHighscore = 0;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private long totalMasterHighscore = 0;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private long totalReMasterHighscore = 0;
|
||||
private int totalSync;
|
||||
private int totalBasicSync;
|
||||
private int totalAdvancedSync;
|
||||
private int totalExpertSync;
|
||||
private int totalMasterSync;
|
||||
private int totalReMasterSync;
|
||||
private long totalAchievement;
|
||||
private long totalBasicAchievement;
|
||||
private long totalAdvancedAchievement;
|
||||
private long totalExpertAchievement;
|
||||
private long totalMasterAchievement;
|
||||
private long totalReMasterAchievement;
|
||||
private long playerOldRating;
|
||||
private long playerNewRating;
|
||||
private int banState;
|
||||
private long dateTime;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private int cmLastEmoneyBrand = 2;
|
||||
@JsonInclude
|
||||
@Transient
|
||||
private int cmLastEmoneyCredit = 69;
|
||||
private int mapStock;
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
package icu.samnyan.aqua.sega.maimai2.model.userdata
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore
|
||||
import com.fasterxml.jackson.annotation.JsonInclude
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize
|
||||
import ext.Str
|
||||
import icu.samnyan.aqua.net.utils.IGenericUserData
|
||||
import icu.samnyan.aqua.sega.general.model.Card
|
||||
import icu.samnyan.aqua.sega.maimai2.util.IntegerListConverter
|
||||
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer
|
||||
import jakarta.persistence.*
|
||||
import java.io.Serializable
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "Maimai2UserData")
|
||||
@Table(name = "maimai2_user_detail")
|
||||
class UserDetail(
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@JsonIgnore
|
||||
var id: Long = 0,
|
||||
|
||||
@JsonSerialize(using = AccessCodeSerializer::class)
|
||||
@JsonProperty(value = "accessCode", access = JsonProperty.Access.READ_ONLY)
|
||||
@OneToOne
|
||||
@JoinColumn(name = "aime_card_id")
|
||||
var card: Card? = null,
|
||||
|
||||
override var userName: String = "",
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var friendCode: Str = "",
|
||||
var isNetMember: Int = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var nameplateId: Int = 0,
|
||||
override var iconId: Int = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var trophyId: Int = 0,
|
||||
var plateId: Int = 0,
|
||||
var titleId: Int = 0,
|
||||
var partnerId: Int = 0,
|
||||
var frameId: Int = 0,
|
||||
var selectMapId: Int = 0,
|
||||
var totalAwake: Int = 0,
|
||||
var gradeRating: Int = 0,
|
||||
var musicRating: Int = 0,
|
||||
override var playerRating: Int = 0,
|
||||
override var highestRating: Int = 0,
|
||||
var gradeRank: Int = 0,
|
||||
var classRank: Int = 0,
|
||||
var courseRank: Int = 0,
|
||||
|
||||
@Convert(converter = IntegerListConverter::class)
|
||||
var charaSlot: List<Int>? = null, // Entries: 5
|
||||
|
||||
@Convert(converter = IntegerListConverter::class)
|
||||
var charaLockSlot: List<Int>? = null, // Entries: 5
|
||||
|
||||
var contentBit: Long = 0,
|
||||
var playCount: Int = 0,
|
||||
var eventWatchedDate: String = "",
|
||||
var lastGameId: String = "",
|
||||
override var lastRomVersion: String = "",
|
||||
var lastDataVersion: String = "",
|
||||
var lastLoginDate: String = "",
|
||||
override var lastPlayDate: String = "",
|
||||
var lastPlayCredit: Int = 0,
|
||||
var lastPlayMode: Int = 0,
|
||||
var lastPlaceId: Int = 0,
|
||||
var lastPlaceName: String = "",
|
||||
var lastAllNetId: Int = 0,
|
||||
var lastRegionId: Int = 0,
|
||||
var lastRegionName: String = "",
|
||||
var lastClientId: String = "",
|
||||
var lastCountryCode: String = "",
|
||||
var lastSelectEMoney: Int = 0,
|
||||
var lastSelectTicket: Int = 0,
|
||||
var lastSelectCourse: Int = 0,
|
||||
var lastCountCourse: Int = 0,
|
||||
var firstGameId: String = "",
|
||||
var firstRomVersion: String = "",
|
||||
var firstDataVersion: String = "",
|
||||
override var firstPlayDate: String = "",
|
||||
var compatibleCmVersion: String = "",
|
||||
var dailyBonusDate: String = "",
|
||||
var dailyCourseBonusDate: String = "",
|
||||
var lastPairLoginDate: String = "",
|
||||
var lastTrialPlayDate: String = "",
|
||||
var playVsCount: Int = 0,
|
||||
var playSyncCount: Int = 0,
|
||||
var winCount: Int = 0,
|
||||
var helpCount: Int = 0,
|
||||
var comboCount: Int = 0,
|
||||
var totalDeluxscore: Long = 0,
|
||||
var totalBasicDeluxscore: Long = 0,
|
||||
var totalAdvancedDeluxscore: Long = 0,
|
||||
var totalExpertDeluxscore: Long = 0,
|
||||
var totalMasterDeluxscore: Long = 0,
|
||||
var totalReMasterDeluxscore: Long = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var totalHiscore: Long = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var totalBasicHighscore: Long = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var totalAdvancedHighscore: Long = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var totalExpertHighscore: Long = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var totalMasterHighscore: Long = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var totalReMasterHighscore: Long = 0,
|
||||
var totalSync: Int = 0,
|
||||
var totalBasicSync: Int = 0,
|
||||
var totalAdvancedSync: Int = 0,
|
||||
var totalExpertSync: Int = 0,
|
||||
var totalMasterSync: Int = 0,
|
||||
var totalReMasterSync: Int = 0,
|
||||
var totalAchievement: Long = 0,
|
||||
var totalBasicAchievement: Long = 0,
|
||||
var totalAdvancedAchievement: Long = 0,
|
||||
var totalExpertAchievement: Long = 0,
|
||||
var totalMasterAchievement: Long = 0,
|
||||
var totalReMasterAchievement: Long = 0,
|
||||
var playerOldRating: Long = 0,
|
||||
var playerNewRating: Long = 0,
|
||||
var banState: Int = 0,
|
||||
var dateTime: Long = 0,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var cmLastEmoneyBrand: Int = 2,
|
||||
|
||||
@JsonInclude
|
||||
@Transient
|
||||
var cmLastEmoneyCredit: Int = 69,
|
||||
var mapStock: Int = 0,
|
||||
) : Serializable, IGenericUserData {
|
||||
override val totalScore: Long
|
||||
get() = totalDeluxscore
|
||||
}
|
||||
@@ -2,11 +2,14 @@ package icu.samnyan.aqua.sega.maimai2.model.userdata;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import icu.samnyan.aqua.net.utils.IGenericGamePlaylog;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
@@ -17,7 +20,7 @@ import java.io.Serializable;
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class UserPlaylog implements Serializable {
|
||||
public class UserPlaylog implements Serializable, IGenericGamePlaylog {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -255,4 +258,9 @@ public class UserPlaylog implements Serializable {
|
||||
|
||||
private int extNum2;
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Object getDate() {
|
||||
return playDate;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user