[O] Auto optimize

This commit is contained in:
Azalea
2025-10-25 08:14:15 +08:00
parent e90123389c
commit 7e90aec55d
31 changed files with 103 additions and 122 deletions

View File

@@ -5,9 +5,7 @@ import icu.samnyan.aqua.sega.diva.model.common.PassStat
import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.common.Result
import icu.samnyan.aqua.sega.diva.model.request.card.ChangePasswdRequest import icu.samnyan.aqua.sega.diva.model.request.card.ChangePasswdRequest
import icu.samnyan.aqua.sega.diva.model.response.card.ChangePasswdResponse import icu.samnyan.aqua.sega.diva.model.response.card.ChangePasswdResponse
import icu.samnyan.aqua.sega.diva.util.SessionNotFoundException
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.util.function.Supplier
/** /**
* @author samnyan (privateamusement@protonmail.com) * @author samnyan (privateamusement@protonmail.com)

View File

@@ -1,9 +1,9 @@
package icu.samnyan.aqua.sega.diva.handler.card package icu.samnyan.aqua.sega.diva.handler.card
import icu.samnyan.aqua.sega.diva.PlayerProfileService
import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.common.Result
import icu.samnyan.aqua.sega.diva.model.request.card.RegistrationRequest import icu.samnyan.aqua.sega.diva.model.request.card.RegistrationRequest
import icu.samnyan.aqua.sega.diva.model.response.card.RegistrationResponse import icu.samnyan.aqua.sega.diva.model.response.card.RegistrationResponse
import icu.samnyan.aqua.sega.diva.PlayerProfileService
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
/** /**

View File

@@ -3,8 +3,6 @@ package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.PstdHCtrlResponse import icu.samnyan.aqua.sega.diva.model.response.databank.PstdHCtrlResponse
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.time.LocalDateTime import java.time.LocalDateTime

View File

@@ -3,8 +3,6 @@ package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.PvDefChrLstResponse import icu.samnyan.aqua.sega.diva.model.response.databank.PvDefChrLstResponse
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.time.LocalDateTime import java.time.LocalDateTime

View File

@@ -4,10 +4,7 @@ import icu.samnyan.aqua.sega.diva.DivaRepos
import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.common.Result
import icu.samnyan.aqua.sega.diva.model.request.ingame.BuyCstmzItmRequest import icu.samnyan.aqua.sega.diva.model.request.ingame.BuyCstmzItmRequest
import icu.samnyan.aqua.sega.diva.model.response.ingame.BuyCstmzItmResponse import icu.samnyan.aqua.sega.diva.model.response.ingame.BuyCstmzItmResponse
import icu.samnyan.aqua.sega.diva.util.ProfileNotFoundException
import icu.samnyan.aqua.sega.diva.util.SessionNotFoundException
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.util.function.Supplier
/** /**
* @author samnyan (privateamusement@protonmail.com) * @author samnyan (privateamusement@protonmail.com)

View File

@@ -7,8 +7,6 @@ import icu.samnyan.aqua.sega.diva.model.request.ingame.StageResultRequest
import icu.samnyan.aqua.sega.diva.model.response.ingame.StageResultResponse import icu.samnyan.aqua.sega.diva.model.response.ingame.StageResultResponse
import icu.samnyan.aqua.sega.diva.model.userdata.* import icu.samnyan.aqua.sega.diva.model.userdata.*
import icu.samnyan.aqua.sega.diva.util.DivaCalculator import icu.samnyan.aqua.sega.diva.util.DivaCalculator
import icu.samnyan.aqua.sega.diva.util.ProfileNotFoundException
import icu.samnyan.aqua.sega.diva.util.SessionNotFoundException
import org.apache.commons.lang3.StringUtils import org.apache.commons.lang3.StringUtils
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.lang.String import java.lang.String
@@ -31,7 +29,6 @@ class StageResultHandler(val db: DivaRepos, val calc: DivaCalculator) {
val logger = logger() val logger = logger()
fun handle(request: StageResultRequest): Any { fun handle(request: StageResultRequest): Any {
val response: StageResultResponse?
if (request.getPd_id() != -1L) { if (request.getPd_id() != -1L) {
val (profile, session) = db.session(request.pd_id) val (profile, session) = db.session(request.pd_id)

View File

@@ -10,8 +10,6 @@ import icu.samnyan.aqua.sega.diva.model.request.ingame.StageResultRequest
import icu.samnyan.aqua.sega.diva.model.response.BaseResponse import icu.samnyan.aqua.sega.diva.model.response.BaseResponse
import icu.samnyan.aqua.sega.diva.model.userdata.PlayerContest import icu.samnyan.aqua.sega.diva.model.userdata.PlayerContest
import icu.samnyan.aqua.sega.diva.util.DivaStringUtils import icu.samnyan.aqua.sega.diva.util.DivaStringUtils
import icu.samnyan.aqua.sega.diva.util.ProfileNotFoundException
import icu.samnyan.aqua.sega.diva.util.SessionNotFoundException
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.lang.String import java.lang.String
import java.time.LocalDateTime import java.time.LocalDateTime

View File

@@ -3,14 +3,12 @@ package icu.samnyan.aqua.sega.diva.handler.user
import icu.samnyan.aqua.sega.diva.DivaRepos import icu.samnyan.aqua.sega.diva.DivaRepos
import icu.samnyan.aqua.sega.diva.model.request.user.PdUnlockRequest import icu.samnyan.aqua.sega.diva.model.request.user.PdUnlockRequest
import icu.samnyan.aqua.sega.diva.model.response.BaseResponse import icu.samnyan.aqua.sega.diva.model.response.BaseResponse
import icu.samnyan.aqua.sega.diva.util.SessionNotFoundException
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.util.function.Supplier
@Component @Component
class PdUnlockHandler(val db: DivaRepos) { class PdUnlockHandler(val db: DivaRepos) {
fun handle(request: PdUnlockRequest): Any { fun handle(request: PdUnlockRequest): Any {
val (profile, session) = db.session(request.pd_id) val (_, session) = db.session(request.pd_id)
db.gameSession.delete(session) db.gameSession.delete(session)

View File

@@ -1,12 +1,9 @@
package icu.samnyan.aqua.sega.diva.handler.user package icu.samnyan.aqua.sega.diva.handler.user
import icu.samnyan.aqua.sega.diva.DivaRepos import icu.samnyan.aqua.sega.diva.DivaRepos
import icu.samnyan.aqua.sega.diva.util.ProfileNotFoundException
import icu.samnyan.aqua.sega.diva.model.request.user.SpendCreditRequest import icu.samnyan.aqua.sega.diva.model.request.user.SpendCreditRequest
import icu.samnyan.aqua.sega.diva.model.response.user.SpendCreditResponse import icu.samnyan.aqua.sega.diva.model.response.user.SpendCreditResponse
import icu.samnyan.aqua.sega.diva.PlayerProfileService
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.util.function.Supplier
/** /**
* @author samnyan (privateamusement@protonmail.com) * @author samnyan (privateamusement@protonmail.com)

View File

@@ -14,7 +14,7 @@ public enum ChallengeKind {
COMPLETED(4); COMPLETED(4);
private int value; private final int value;
ChallengeKind(int i) { ChallengeKind(int i) {
this.value = i; this.value = i;
@@ -22,7 +22,7 @@ public enum ChallengeKind {
public static ChallengeKind fromValue(int i) { public static ChallengeKind fromValue(int i) {
for (ChallengeKind challengeKind : for (ChallengeKind challengeKind :
ChallengeKind.values()) { ChallengeKind.values()) {
if (challengeKind.getValue() == i) return challengeKind; if (challengeKind.getValue() == i) return challengeKind;
} }
return ChallengeKind.UNDEFINED; return ChallengeKind.UNDEFINED;

View File

@@ -15,7 +15,7 @@ public enum ClearResult implements ValueEnum {
PERFECT(5); PERFECT(5);
private int value; private final int value;
ClearResult(int i) { ClearResult(int i) {
this.value = i; this.value = i;
@@ -23,7 +23,7 @@ public enum ClearResult implements ValueEnum {
public static ClearResult fromValue(int i) { public static ClearResult fromValue(int i) {
for (ClearResult clearResult : for (ClearResult clearResult :
ClearResult.values()) { ClearResult.values()) {
if (clearResult.getValue() == i) return clearResult; if (clearResult.getValue() == i) return clearResult;
} }
return ClearResult.NO_CLEAR; return ClearResult.NO_CLEAR;

View File

@@ -12,7 +12,7 @@ public enum ContestBorder {
GOLD(2); GOLD(2);
private int value; private final int value;
ContestBorder(int i) { ContestBorder(int i) {
this.value = i; this.value = i;

View File

@@ -12,7 +12,7 @@ public enum ContestLeague {
PROFESSIONAL(3); PROFESSIONAL(3);
private int value; private final int value;
ContestLeague(int i) { ContestLeague(int i) {
this.value = i; this.value = i;

View File

@@ -11,7 +11,7 @@ public enum ContestNormaType {
COOL_PERCENTAGE(2); COOL_PERCENTAGE(2);
private int value; private final int value;
ContestNormaType(int i) { ContestNormaType(int i) {
this.value = i; this.value = i;

View File

@@ -10,7 +10,7 @@ public enum ContestStageLimit {
LIMITED(1); LIMITED(1);
private int value; private final int value;
ContestStageLimit(int i) { ContestStageLimit(int i) {
this.value = i; this.value = i;

View File

@@ -13,7 +13,7 @@ public enum Difficulty {
EXTREME(3); EXTREME(3);
private int value; private final int value;
Difficulty(int i) { Difficulty(int i) {
this.value = i; this.value = i;
@@ -21,7 +21,7 @@ public enum Difficulty {
public static Difficulty fromValue(int i) { public static Difficulty fromValue(int i) {
for (Difficulty difficulty : for (Difficulty difficulty :
Difficulty.values()) { Difficulty.values()) {
if (difficulty.getValue() == i) return difficulty; if (difficulty.getValue() == i) return difficulty;
} }
return Difficulty.UNDEFINED; return Difficulty.UNDEFINED;

View File

@@ -10,7 +10,7 @@ public enum Edition {
EXTRA(1); EXTRA(1);
private int value; private final int value;
Edition(int i) { Edition(int i) {
this.value = i; this.value = i;
@@ -18,7 +18,7 @@ public enum Edition {
public static Edition fromValue(int i) { public static Edition fromValue(int i) {
for (Edition edition : for (Edition edition :
Edition.values()) { Edition.values()) {
if (edition.getValue() == i) return edition; if (edition.getValue() == i) return edition;
} }
return Edition.ORIGINAL; return Edition.ORIGINAL;

View File

@@ -10,7 +10,7 @@ public enum FestaKind {
GREEN_FESTA(1); GREEN_FESTA(1);
private int value; private final int value;
FestaKind(int i) { FestaKind(int i) {
this.value = i; this.value = i;

View File

@@ -12,7 +12,7 @@ public enum PassStat {
REISSUE(3); REISSUE(3);
private int value; private final int value;
PassStat(int i) { PassStat(int i) {
this.value = i; this.value = i;

View File

@@ -14,7 +14,7 @@ public enum PreStartResult {
CARD_BANNED(-4); CARD_BANNED(-4);
private int value; private final int value;
PreStartResult(int i) { PreStartResult(int i) {
this.value = i; this.value = i;

View File

@@ -10,7 +10,7 @@ public enum Result {
SUCCESS(1); SUCCESS(1);
private int value; private final int value;
Result(int i) { Result(int i) {
this.value = i; this.value = i;

View File

@@ -14,7 +14,7 @@ public enum SortMode {
MY_LIST_C(5); MY_LIST_C(5);
private int value; private final int value;
SortMode(int i) { SortMode(int i) {
this.value = i; this.value = i;
@@ -22,7 +22,7 @@ public enum SortMode {
public static SortMode fromValue(int i) { public static SortMode fromValue(int i) {
for (SortMode sortMode : for (SortMode sortMode :
SortMode.values()) { SortMode.values()) {
if (sortMode.getValue() == i) return sortMode; if (sortMode.getValue() == i) return sortMode;
} }
return SortMode.RELEASE_DATE; return SortMode.RELEASE_DATE;

View File

@@ -19,76 +19,76 @@ public class GameBalanceParameter implements Internalizable {
private int name_change_price = 100; private int name_change_price = 100;
private GameBalanceTrialBidSet easy_trials = new GameBalanceTrialBidSet( private GameBalanceTrialBidSet easy_trials = new GameBalanceTrialBidSet(
new GameBalanceTrialBid(5, 10), new GameBalanceTrialBid(5, 10),
new GameBalanceTrialBid(10, 25), new GameBalanceTrialBid(10, 25),
new GameBalanceTrialBid(20, 50), new GameBalanceTrialBid(20, 50),
new GameBalanceTrialBid(30, 90) new GameBalanceTrialBid(30, 90)
); );
private GameBalanceTrialBidSet normal_trials = new GameBalanceTrialBidSet( private GameBalanceTrialBidSet normal_trials = new GameBalanceTrialBidSet(
new GameBalanceTrialBid(5, 10), new GameBalanceTrialBid(5, 10),
new GameBalanceTrialBid(10, 25), new GameBalanceTrialBid(10, 25),
new GameBalanceTrialBid(20, 50), new GameBalanceTrialBid(20, 50),
new GameBalanceTrialBid(30, 90) new GameBalanceTrialBid(30, 90)
); );
private GameBalanceTrialBidSet hard_trials = new GameBalanceTrialBidSet( private GameBalanceTrialBidSet hard_trials = new GameBalanceTrialBidSet(
new GameBalanceTrialBid(5, 10), new GameBalanceTrialBid(5, 10),
new GameBalanceTrialBid(10, 25), new GameBalanceTrialBid(10, 25),
new GameBalanceTrialBid(20, 50), new GameBalanceTrialBid(20, 50),
new GameBalanceTrialBid(30, 90) new GameBalanceTrialBid(30, 90)
); );
private GameBalanceTrialBidSet extreme_trials = new GameBalanceTrialBidSet( private GameBalanceTrialBidSet extreme_trials = new GameBalanceTrialBidSet(
new GameBalanceTrialBid(5, 10), new GameBalanceTrialBid(5, 10),
new GameBalanceTrialBid(10, 25), new GameBalanceTrialBid(10, 25),
new GameBalanceTrialBid(20, 50), new GameBalanceTrialBid(20, 50),
new GameBalanceTrialBid(30, 90) new GameBalanceTrialBid(30, 90)
); );
private GameBalanceTrialBidSet extra_extreme_trials = new GameBalanceTrialBidSet( private GameBalanceTrialBidSet extra_extreme_trials = new GameBalanceTrialBidSet(
new GameBalanceTrialBid(5, 10), new GameBalanceTrialBid(5, 10),
new GameBalanceTrialBid(10, 25), new GameBalanceTrialBid(10, 25),
new GameBalanceTrialBid(20, 50), new GameBalanceTrialBid(20, 50),
new GameBalanceTrialBid(30, 90) new GameBalanceTrialBid(30, 90)
); );
@Override @Override
public String toInternal() { public String toInternal() {
Integer[] arr = new Integer[]{ Integer[] arr = new Integer[]{
this.name_change_price, this.name_change_price,
0, // unkn 0, // unkn
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
2, 2,
3, 3,
4, // unkn 4, // unkn
1, 1,
1, 1,
1, 1,
3, 3,
4, 4,
5, // unkn 5, // unkn
1, 1,
1, 1,
1, 1,
4, 4,
5, 5,
6, // unkn 6, // unkn
1, 1,
1, 1,
1, 1,
5, 5,
6, 6,
7, // unkn 7, // unkn
4, 4,
4, 4,
4, 4,
9, 9,
10, 10,
14 // unkn 14 // unkn
}; };
List<Integer> list = new LinkedList<>(Arrays.asList(arr)); List<Integer> list = new LinkedList<>(Arrays.asList(arr));
list.addAll(easy_trials.getArr()); list.addAll(easy_trials.getArr());

View File

@@ -20,14 +20,14 @@ public class GameBalanceTrialBidSet {
public List<Integer> getArr() { public List<Integer> getArr() {
Integer[] arr = new Integer[]{ Integer[] arr = new Integer[]{
clear.getPay(), clear.getPay(),
clear.getWin(), clear.getWin(),
great.getPay(), great.getPay(),
great.getWin(), great.getWin(),
excellent.getPay(), excellent.getPay(),
excellent.getWin(), excellent.getWin(),
perfect.getPay(), perfect.getPay(),
perfect.getWin(), perfect.getWin(),
}; };
return new LinkedList<>(Arrays.asList(arr)); return new LinkedList<>(Arrays.asList(arr));
} }

View File

@@ -74,6 +74,6 @@ public class FestaCollection {
} }
public String getLastUpdateTime() { public String getLastUpdateTime() {
return DivaDateTimeUtil.getString(this.firstFesta.getCreateDate().compareTo(this.secondFesta.getCreateDate()) < 0 ? this.firstFesta.getCreateDate() : this.secondFesta.getCreateDate()); return DivaDateTimeUtil.getString(this.firstFesta.getCreateDate().isBefore(this.secondFesta.getCreateDate()) ? this.firstFesta.getCreateDate() : this.secondFesta.getCreateDate());
} }
} }

View File

@@ -126,18 +126,18 @@ public class Contest implements Serializable {
String[] ids = groups[i - 1].split(":"); String[] ids = groups[i - 1].split(":");
list.add(ids[0]); list.add(ids[0]);
list.add(ids[1]); list.add(ids[1]);
if(StringUtils.isBlank(pvDiffList) || !pvDiffList.contains(":")) { if (StringUtils.isBlank(pvDiffList) || !pvDiffList.contains(":")) {
list.add(this.minComplexity); list.add(this.minComplexity);
list.add(this.maxComplexity); list.add(this.maxComplexity);
list.add(-1); list.add(-1);
} else { } else {
String[] diffList = pvDiffList.split(","); String[] diffList = pvDiffList.split(",");
if(diffList.length < i) { if (diffList.length < i) {
list.add(this.minComplexity); list.add(this.minComplexity);
list.add(this.maxComplexity); list.add(this.maxComplexity);
list.add(-1); list.add(-1);
} else { } else {
String[] diff = diffList[i-1].split(":"); String[] diff = diffList[i - 1].split(":");
list.add(diff[1]); list.add(diff[1]);
list.add(diff[2]); list.add(diff[2]);
list.add(diff[0]); list.add(diff[0]);

View File

@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
* @author samnyan (privateamusement@protonmail.com) * @author samnyan (privateamusement@protonmail.com)
*/ */
@Entity(name = "DivaPvLevel") @Entity(name = "DivaPvLevel")
@Table(name = "diva_pv_info_level") @Table(name = "diva_pv_info_level")

View File

@@ -41,10 +41,10 @@ public class DivaCustomize implements Serializable, Internalizable {
@Override @Override
public String toInternal() { public String toInternal() {
return id + ",0," + return id + ",0," +
URIEncoder.encode(name) + "," + URIEncoder.encode(name) + "," +
price + "," + price + "," +
DivaDateTimeUtil.format(releaseDate) + "," + DivaDateTimeUtil.format(releaseDate) + "," +
DivaDateTimeUtil.format(endDate) + "," + DivaDateTimeUtil.format(endDate) + "," +
sortOrder; sortOrder;
} }
} }

View File

@@ -41,10 +41,10 @@ public class DivaModule implements Serializable, Internalizable {
@Override @Override
public String toInternal() { public String toInternal() {
return id + ",0," + return id + ",0," +
URIEncoder.encode(name) + "," + URIEncoder.encode(name) + "," +
price + "," + price + "," +
DivaDateTimeUtil.format(releaseDate) + "," + DivaDateTimeUtil.format(releaseDate) + "," +
DivaDateTimeUtil.format(endDate) + "," + DivaDateTimeUtil.format(endDate) + "," +
sortOrder; sortOrder;
} }
} }

View File

@@ -9,15 +9,14 @@ import java.io.Serializable;
import java.util.Map; import java.util.Map;
/** /**
* @author samnyan (privateamusement@protonmail.com) * @author samnyan (privateamusement@protonmail.com)
*/ */
@Entity(name = "DivaPvInfo") @Entity(name = "DivaPvInfo")
@Table(name = "diva_pv_info") @Table(name = "diva_pv_info")
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class Pv implements Serializable public class Pv implements Serializable {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Id @Id

View File

@@ -23,6 +23,7 @@ object DivaDateTimeUtil {
@JvmStatic @JvmStatic
fun getString(time: LocalDateTime) = fun getString(time: LocalDateTime) =
URIEncoder.encode(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0").format(time)) URIEncoder.encode(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0").format(time))
@JvmStatic @JvmStatic
fun format(time: LocalDateTime) = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0").format(time) fun format(time: LocalDateTime) = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0").format(time)
} }