diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v2/ApiChuniV2PlayerDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v2/ApiChuniV2PlayerDataController.java index 188ba783..9195f4eb 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v2/ApiChuniV2PlayerDataController.java +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v2/ApiChuniV2PlayerDataController.java @@ -479,7 +479,7 @@ public class ApiChuniV2PlayerDataController { userItemList.forEach(x -> x.setUser(userData)); userItemService.saveAll(userItemList); - List userMapList = data.getUserMapList(); + List userMapList = data.getUserMapList(); userMapList.forEach(x -> x.setUser(userData)); userMapAreaService.saveAll(userMapList); diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt index aba39d6c..6a88ae0e 100644 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt +++ b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt @@ -13,12 +13,11 @@ data class Chu3DataExport( var userCourseList: List, var userDuelList: List, var userItemList: List, - var userMapList: List, + var userMapList: List, var userMusicDetailList: List, var userPlaylogList: List, - var userLoginBonusList: List, ): IExportClass { constructor() : this("SDHD", - Chu3UserData(), UserGameOption(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList()) + Chu3UserData(), UserGameOption(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList()) } diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java index 8b9f366d..dfe2db53 100644 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java +++ b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java @@ -24,7 +24,7 @@ public class ChuniDataImport { private List userDuelList; private UserGameOption userGameOption; private List userItemList; - private List userMapList; + private List userMapList; private List userMusicDetailList; private List userPlaylogList; } diff --git a/src/main/java/icu/samnyan/aqua/net/games/ImportController.kt b/src/main/java/icu/samnyan/aqua/net/games/ImportController.kt index 56a58bac..f44ff0d9 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/ImportController.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/ImportController.kt @@ -20,7 +20,7 @@ import kotlin.reflect.KClass data class ImportClass( val type: KClass, val renames: Map? = null, - val name: String = type.simpleName!!.removePrefix("Mai2").lowercase() + val name: String = type.simpleName!!.removePrefix("Mai2").removePrefix("Chu3").lowercase() ) interface IUserEntity { diff --git a/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt b/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt index 1eb5229d..29a20edf 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt @@ -19,9 +19,7 @@ class Chu3Import( ) : ImportController( "SDHD", Chu3DataExport::class, exportFields = Chu3DataExport::class.vars().associateBy { - var name = it.name - if (name == "userMapList") name = "userMapAreaList" - name.replace("List", "").lowercase() + it.name.replace("List", "").lowercase() }, exportRepos = Chu3DataExport::class.vars() .filter { f -> f.name !in setOf("gameId", "userData") } @@ -34,8 +32,8 @@ class Chu3Import( "chuni_item_character" to ImportClass(UserCharacter::class), "chuni_item_duel" to ImportClass(UserDuel::class), "chuni_item_item" to ImportClass(UserItem::class, mapOf("isValid" to "valid")), - "chuni_item_login_bonus" to ImportClass(UserLoginBonus::class, mapOf("isWatched" to "watched")), - "chuni_item_map_area" to ImportClass(UserMapArea::class), +// "chuni_item_login_bonus" to ImportClass(UserLoginBonus::class, mapOf("isWatched" to "watched")), + "chuni_item_map_area" to ImportClass(UserMap::class), "chuni_profile_activity" to ImportClass(UserActivity::class, mapOf("activityId" to "id")), "chuni_profile_charge" to ImportClass(UserCharge::class), "chuni_profile_data" to ImportClass(Chu3UserData::class, mapOf("user" to null, "version" to null, "isNetMember" to null)), diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java index 7d1f995e..6e31c087 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.handler; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.chusan.model.userdata.UserMapArea; +import icu.samnyan.aqua.sega.chusan.model.userdata.UserMap; import icu.samnyan.aqua.sega.chusan.service.UserMapAreaService; import icu.samnyan.aqua.sega.util.jackson.StringMapper; import org.slf4j.Logger; @@ -37,7 +37,7 @@ public class GetUserMapAreaHandler implements BaseHandler { public String handle(Map request) throws JsonProcessingException { String userId = (String) request.get("userId"); - List userMapAreaList = userMapAreaService.getByUserId(userId); + List userMapAreaList = userMapAreaService.getByUserId(userId); Map resultMap = new LinkedHashMap<>(); resultMap.put("userId", userId); diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserAllHandler.java index d59da683..e7ad8d2a 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserAllHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserAllHandler.java @@ -102,14 +102,14 @@ public class UpsertUserAllHandler implements BaseHandler { // userMapList if (upsertUserAll.getUserMapAreaList() != null) { - List userMapList = upsertUserAll.getUserMapAreaList(); - Map newUserMapMap = new HashMap<>(); + List userMapList = upsertUserAll.getUserMapAreaList(); + Map newUserMapMap = new HashMap<>(); userMapList.forEach(newUserMap -> { int mapId = newUserMap.getMapAreaId(); - UserMapArea userMap; - Optional userMapOptional = userMapService.getByUserAndMapAreaId(newUserData, mapId); - userMap = userMapOptional.orElseGet(() -> new UserMapArea(newUserData)); + UserMap userMap; + Optional userMapOptional = userMapService.getByUserAndMapAreaId(newUserData, mapId); + userMap = userMapOptional.orElseGet(() -> new UserMap(newUserData)); newUserMap.setId(userMap.getId()); newUserMap.setUser(userMap.getUser()); diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt index 65615974..c1bfc1cf 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt @@ -24,7 +24,9 @@ interface Chu3UserLinked : IUserRepo { } -interface Chu3UserLoginBonusRepo : Chu3UserLinked { +// This repo cannot be generalized as UserLinked because the entity stores user as an int +// TODO: Find a way to generalize this +interface Chu3UserLoginBonusRepo : JpaRepository { @Query( value = "select * from chusan_user_login_bonus where user = ?1 and version = ?2 and is_finished = ?3 order by last_update_date desc", nativeQuery = true @@ -88,8 +90,8 @@ interface Chu3UserItemRepo : Chu3UserLinked { fun findAllByUser_Card_ExtIdAndItemKind(extId: Long, itemKind: Int): List } -interface Chu3UserMapAreaRepo : Chu3UserLinked { - fun findTopByUserAndMapAreaIdOrderByIdDesc(user: Chu3UserData, mapAreaId: Int): Optional +interface Chu3UserMapRepo : Chu3UserLinked { + fun findTopByUserAndMapAreaIdOrderByIdDesc(user: Chu3UserData, mapAreaId: Int): Optional } interface Chu3UserMusicDetailRepo : Chu3UserLinked { @@ -98,7 +100,7 @@ interface Chu3UserMusicDetailRepo : Chu3UserLinked { fun findByUser_Card_ExtIdAndMusicId(extId: Long, musicId: Int): List } -interface Chu3UserPlaylogRepo : GenericPlaylogRepo { +interface Chu3UserPlaylogRepo : GenericPlaylogRepo, Chu3UserLinked { fun findByUser_Card_ExtIdAndLevelNot(extId: Long, levelNot: Int, page: Pageable): List fun findByUser_Card_ExtIdAndMusicIdAndLevel(extId: Long, musicId: Int, level: Int): List @@ -170,7 +172,7 @@ class Chu3Repos( val userGameOption: Chu3UserGameOptionRepo, val userGeneralData: Chu3UserGeneralDataRepo, val userItem: Chu3UserItemRepo, - val userMapArea: Chu3UserMapAreaRepo, + val userMap: Chu3UserMapRepo, val userMusicDetail: Chu3UserMusicDetailRepo, val userPlaylog: Chu3UserPlaylogRepo, val gameAvatarAcc: Chu3GameAvatarAccRepo, diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.java b/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.java index 9268e2dd..9dea991c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.java @@ -69,7 +69,7 @@ public class UpsertUserAll implements Serializable { private List> userLoginBonusList; @Nullable - private List userMapAreaList; + private List userMapAreaList; @Nullable private List> userOverPowerList; diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserMapArea.java b/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserMap.java similarity index 93% rename from src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserMapArea.java rename to src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserMap.java index b473af78..172c55de 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserMapArea.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserMap.java @@ -27,7 +27,7 @@ import java.io.Serializable; "remainGridCount", "isLocked" }) -public class UserMapArea implements Serializable { +public class UserMap implements Serializable { private static final long serialVersionUID = 1L; @@ -58,7 +58,7 @@ public class UserMapArea implements Serializable { @JsonProperty("isLocked") private boolean isLocked; - public UserMapArea(Chu3UserData userData) { + public UserMap(Chu3UserData userData) { user = userData; } } diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/service/UserMapAreaService.java b/src/main/java/icu/samnyan/aqua/sega/chusan/service/UserMapAreaService.java index f747422a..d8d836a8 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/service/UserMapAreaService.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/service/UserMapAreaService.java @@ -1,8 +1,8 @@ package icu.samnyan.aqua.sega.chusan.service; -import icu.samnyan.aqua.sega.chusan.model.Chu3UserMapAreaRepo; +import icu.samnyan.aqua.sega.chusan.model.Chu3UserMapRepo; import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData; -import icu.samnyan.aqua.sega.chusan.model.userdata.UserMapArea; +import icu.samnyan.aqua.sega.chusan.model.userdata.UserMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,30 +15,30 @@ import java.util.Optional; @Service("ChusanUserMapAreaService") public class UserMapAreaService { - private final Chu3UserMapAreaRepo userMapRepository; + private final Chu3UserMapRepo userMapRepository; @Autowired - public UserMapAreaService(Chu3UserMapAreaRepo userMapRepository) { + public UserMapAreaService(Chu3UserMapRepo userMapRepository) { this.userMapRepository = userMapRepository; } - public UserMapArea save(UserMapArea userMap) { + public UserMap save(UserMap userMap) { return userMapRepository.save(userMap); } - public List saveAll(Iterable userMap) { + public List saveAll(Iterable userMap) { return userMapRepository.saveAll(userMap); } - public List getByUser(Chu3UserData user) { + public List getByUser(Chu3UserData user) { return userMapRepository.findByUser(user); } - public List getByUserId(String userId) { + public List getByUserId(String userId) { return userMapRepository.findByUser_Card_ExtId(Long.parseLong(userId)); } - public Optional getByUserAndMapAreaId(Chu3UserData user, int mapId) { + public Optional getByUserAndMapAreaId(Chu3UserData user, int mapId) { return userMapRepository.findTopByUserAndMapAreaIdOrderByIdDesc(user, mapId); } }