[maimai2] experimental Splash Plus Support

This commit is contained in:
Dom Eori
2021-08-19 22:51:41 +09:00
parent 2f648aea19
commit 3327f95b0b
19 changed files with 705 additions and 27 deletions

View File

@@ -0,0 +1,39 @@
package icu.samnyan.aqua.sega.maimai2.model.gamedata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2GameCharge")
@Table(name = "maimai2_game_charge")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GameCharge implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
private int orderId;
@Column(unique = true)
private int chargeId;
private int price;
private String startDate;
private String endDate;
}

View File

@@ -15,11 +15,11 @@ import java.io.Serializable;
@AllArgsConstructor
@NoArgsConstructor
public class UpsertUserAll implements Serializable {
public long userId;
public long playlogId;
@JsonProperty("isEventMode")
public boolean isEventMode;
@JsonProperty("isFreePlay")
public boolean isFreePlay;
public UserAll upsertUserAll;
private long userId;
private long playlogId;
@JsonProperty("isEventMode")
private boolean isEventMode;
@JsonProperty("isFreePlay")
private boolean isFreePlay;
private UserAll upsertUserAll;
}

View File

@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
@@ -17,22 +18,26 @@ import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
public class UserAll implements Serializable {
public List<UserDetail> userData;
public List<UserExtend> userExtend;
public List<UserOption> userOption;
public List<UserCharacter> userCharacterList;
public List<UserGhost> userGhost;
public List<UserMap> userMapList;
public List<UserLoginBonus> userLoginBonusList;
public List<UserRating> userRatingList;
public List<UserItem> userItemList;
public List<UserMusicDetail> userMusicDetailList;
public List<UserFavorite> userFavoriteList;
public List<UserActivity> userActivityList;
public String isNewCharacterList;
public String isNewMapList;
public String isNewLoginBonusList;
public String isNewItemList;
public String isNewMusicDetailList;
public String isNewFavoriteList;
private List<UserDetail> userData;
private List<UserExtend> userExtend;
private List<UserOption> userOption;
private List<UserCharacter> userCharacterList;
private List<UserGhost> userGhost;
private List<UserMap> userMapList;
private List<UserLoginBonus> userLoginBonusList;
private List<UserRating> userRatingList;
private List<UserItem> userItemList;
private List<UserMusicDetail> userMusicDetailList;
private List<UserCourse> userCourseList;
private List<UserCharge> userChargeList;
private List<UserFavorite> userFavoriteList;
private List<UserActivity> userActivityList;
private Map<String, Object> userGamePlaylogList;
private String isNewCharacterList;
private String isNewMapList;
private String isNewLoginBonusList;
private String isNewItemList;
private String isNewMusicDetailList;
private String isNewCourseList;
private String isNewFavoriteList;
}

View File

@@ -0,0 +1,47 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserCharge")
@Table(name = "maimai2_user_charge", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "charge_id"})})
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonPropertyOrder({"chargeId", "stock", "purchaseDate", "validDate"})
public class UserCharge implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
@Column(name = "charge_id")
private int chargeId;
private int stock;
private String purchaseDate;
private String validDate;
public UserCharge(UserDetail user) {
this.user = user;
}
}

View File

@@ -0,0 +1,51 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "MaiMai2UserCourse")
@Table(name = "maimai2_user_course")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserCourse implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private int courseId;
@JsonProperty("isLastClear")
private boolean isLastClear;
private int totalRestlife;
private int totalAchievement;
private int totalDeluxscore;
private int playCount;
private String clearDate;
private String lastPlayDate;
private int bestAchievement;
private String bestAchievementDate;
private int bestDeluxscore;
private String bestDeluxscoreDate;
public UserCourse(UserDetail user) {
this.user = user;
}
}

View File

@@ -52,6 +52,8 @@ public class UserDetail implements Serializable {
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
@@ -67,6 +69,8 @@ public class UserDetail implements Serializable {
private String lastDataVersion;
private String lastLoginDate;
private String lastPlayDate;
private int lastPlayCredit;
private int lastPlayMode;
private int lastPlaceId;
private String lastPlaceName;
private int lastAllNetId;
@@ -74,12 +78,17 @@ public class UserDetail implements Serializable {
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 int playVsCount;
private int playSyncCount;
private int winCount;

View File

@@ -34,7 +34,7 @@ public class UserFavorite implements Serializable {
@JoinColumn(name = "user_id")
private UserDetail user;
@JsonProperty("id")
@JsonProperty("userId")
private long favUserId;
private int itemKind;

View File

@@ -19,6 +19,9 @@ public class UserGhost {
private int titleId;
private int rate;
private int udemaeRate;
private int courseRank;
private int classRank;
private int classValue;
private String playDatetime;
private int shopId;
private int regionCode;

View File

@@ -58,6 +58,7 @@ public class UserOption implements Serializable {
private int dispJudgePos;
private int dispJudgeTouchPos;
private int adjustTiming;
private int judgeTiming;
private int ansVolume;
private int tapHoldVolume;
private int criticalSe;

View File

@@ -32,6 +32,8 @@ public class UserUdemae implements Serializable {
private int rate;
private int maxRate;
private int classValue;
private int maxClassValue;
private int totalWinNum;
private int totalLoseNum;
private int maxWinNum;