[cardmaker] Add experimental maimai2 support

This commit is contained in:
Dom Eori
2022-12-08 21:34:18 +09:00
parent 7bfd51c1bd
commit 30b9ab73da
19 changed files with 804 additions and 8 deletions

View File

@@ -0,0 +1,38 @@
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.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2GameSellingCard")
@Table(name = "maimai2_game_selling_card")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GameSellingCard implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private int id;
private int cardId;
private LocalDateTime startDate;
private LocalDateTime endDate;
private LocalDateTime noticeStartDate;
private LocalDateTime noticeEndDate;
}

View File

@@ -0,0 +1,22 @@
package icu.samnyan.aqua.sega.maimai2.model.request;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserPrintDetail;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UpsertUserPrint implements Serializable {
private long userId;
private long orderId;
private Map<String, Object> userPrintReserve;
private UserPrintDetail userPrintDetail;
}

View File

@@ -0,0 +1,44 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.*;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserCard")
@Table(name = "maimai2_user_card")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserCard implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
public int cardId;
public int cardTypeId;
public int charaId;
public int mapId;
public String startDate;
public String endDate;
public UserCard(UserDetail user) {
this.user = user;
}
}

View File

@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
@@ -31,7 +32,22 @@ public class UserCharacter implements Serializable {
private UserDetail user;
private int characterId;
@JsonInclude
@Transient
private int point = 0;
@JsonInclude
@Transient
private int count = 0;
private int level;
@JsonInclude
@Transient
private int nextAwake = 0;
@JsonInclude
@Transient
private int nextAwakePercent = 0;
@JsonInclude
@Transient
private boolean favorite = false;
private int awakening;
private int useCount;

View File

@@ -6,6 +6,7 @@ import java.util.List;
import javax.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;
@@ -39,8 +40,17 @@ public class UserDetail implements Serializable {
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;
@@ -102,6 +112,24 @@ public class UserDetail implements Serializable {
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;
@@ -118,4 +146,10 @@ public class UserDetail implements Serializable {
private long playerNewRating;
private int banState;
private long dateTime;
@JsonInclude
@Transient
private int cmLastEmoneyBrand = 2;
@JsonInclude
@Transient
private int cmLastEmoneyCredit = 69;
}

View File

@@ -0,0 +1,61 @@
package icu.samnyan.aqua.sega.maimai2.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.*;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "Maimai2UserPrintDetail")
@Table(name = "maimai2_user_print_detail")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserPrintDetail implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserDetail user;
private long orderId;
private int printNumber;
private String printDate;
private String serialId;
private int placeId;
private String clientId;
private String printerSerialId;
@ManyToOne
@JoinColumn(name = "user_card_id")
private UserCard userCard;
private int cardRomVersion;
private boolean isHolograph;
private boolean printOption1;
private boolean printOption2;
private boolean printOption3;
private boolean printOption4;
private boolean printOption5;
private boolean printOption6;
private boolean printOption7;
private boolean printOption8;
private boolean printOption9;
private boolean printOption10;
private String created;
public UserPrintDetail(UserDetail user) {
this.user = user;
}
}