diff --git a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetController.java b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetController.java index 4cd3c00e..36455090 100644 --- a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetController.java +++ b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetController.java @@ -128,8 +128,7 @@ public class AllNetController { case "SDEY": return "http://" + HOST + ":" + PORT + "/MaimaiServlet/"; case "SDEZ": - // This leads to http://HOST+PORT/Maimai2Servlet/ - return HOST + ":" + PORT + "/"; + return "http://" + HOST + ":" + PORT + "/"; default: return "http://" + HOST + ":" + PORT + "/"; } diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UpsertUserAllHandler.java index 5c6f75ed..55cc2894 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UpsertUserAllHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UpsertUserAllHandler.java @@ -45,8 +45,9 @@ public class UpsertUserAllHandler implements BaseHandler { private final UserFavoriteRepository userFavoriteRepository; private final UserUdemaeRepository userUdemaeRepository; private final UserGeneralDataRepository userGeneralDataRepository; + private final UserCourseRepository userCourseRepository; - public UpsertUserAllHandler(BasicMapper mapper, CardService cardService, UserDataRepository userDataRepository, UserExtendRepository userExtendRepository, UserOptionRepository userOptionRepository, UserItemRepository userItemRepository, UserMusicDetailRepository userMusicDetailRepository, UserActRepository userActRepository, UserCharacterRepository userCharacterRepository, UserMapRepository userMapRepository, UserLoginBonusRepository userLoginBonusRepository, UserFavoriteRepository userFavoriteRepository, UserUdemaeRepository userUdemaeRepository, UserGeneralDataRepository userGeneralDataRepository) { + public UpsertUserAllHandler(BasicMapper mapper, CardService cardService, UserDataRepository userDataRepository, UserExtendRepository userExtendRepository, UserOptionRepository userOptionRepository, UserItemRepository userItemRepository, UserMusicDetailRepository userMusicDetailRepository, UserActRepository userActRepository, UserCharacterRepository userCharacterRepository, UserMapRepository userMapRepository, UserLoginBonusRepository userLoginBonusRepository, UserFavoriteRepository userFavoriteRepository, UserUdemaeRepository userUdemaeRepository, UserGeneralDataRepository userGeneralDataRepository, UserCourseRepository userCourseRepository) { this.mapper = mapper; this.cardService = cardService; this.userDataRepository = userDataRepository; @@ -61,6 +62,7 @@ public class UpsertUserAllHandler implements BaseHandler { this.userFavoriteRepository = userFavoriteRepository; this.userUdemaeRepository = userUdemaeRepository; this.userGeneralDataRepository = userGeneralDataRepository; + this.userCourseRepository = userCourseRepository; } @Override @@ -248,6 +250,24 @@ public class UpsertUserAllHandler implements BaseHandler { userMusicDetailRepository.saveAll(newUserMusicDetailList); } + // UserCourseList + if (userAll.getUserCourseList() != null) { + List userCourseList = userAll.getUserCourseList(); + List newUserCourseList = new ArrayList<>(); + + for (UserCourse newUserCourse : userCourseList) { + int courseId = newUserCourse.getCourseId(); + + Optional userCourseOptional = userCourseRepository.findByUserAndCourseId(newUserData, courseId); + UserCourse userCourse = userCourseOptional.orElseGet(() -> new UserCourse(newUserData)); + + newUserCourse.setId(userCourse.getId()); + newUserCourse.setUser(newUserData); + newUserCourseList.add(newUserCourse); + } + userCourseRepository.saveAll(newUserCourseList); + } + // UserFavoriteList if (userAll.getUserFavoriteList() != null) { List userFavoriteList = userAll.getUserFavoriteList(); diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/request/data/UserAll.java b/src/main/java/icu/samnyan/aqua/sega/maimai2/model/request/data/UserAll.java index 617697b4..05db15e3 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/request/data/UserAll.java +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/model/request/data/UserAll.java @@ -32,7 +32,7 @@ public class UserAll implements Serializable { private List userChargeList; private List userFavoriteList; private List userActivityList; - private Map userGamePlaylogList; + private List> userGamePlaylogList; private String isNewCharacterList; private String isNewMapList; private String isNewLoginBonusList; diff --git a/src/main/resources/db/migration/mysql/V63__fix_maimai2_spp_table.sql b/src/main/resources/db/migration/mysql/V63__fix_maimai2_spp_table.sql new file mode 100644 index 00000000..0eab7067 --- /dev/null +++ b/src/main/resources/db/migration/mysql/V63__fix_maimai2_spp_table.sql @@ -0,0 +1,2 @@ +ALTER TABLE `maimai2_user_course` + RENAME COLUMN `total_rest_life` TO `total_restlife`; \ No newline at end of file diff --git a/src/main/resources/db/migration/sqlite/V63__fix_maimai2_spp_table.sql b/src/main/resources/db/migration/sqlite/V63__fix_maimai2_spp_table.sql new file mode 100644 index 00000000..044bdb8a --- /dev/null +++ b/src/main/resources/db/migration/sqlite/V63__fix_maimai2_spp_table.sql @@ -0,0 +1,24 @@ +-- I got zero bug report about this before so.. just assume that user never used this table and API. + +DROP TABLE `maimai2_user_course`; + +CREATE TABLE `maimai2_user_course` ( + id INTEGER, + course_id INTEGER, + is_last_clear BOOLEAN, + total_restlife INTEGER, + total_achievement INTEGER, + total_deluxscore INTEGER, + play_count INTEGER, + clear_date VARCHAR (255), + last_play_date VARCHAR (255), + best_achievement INTEGER, + best_achievement_date VARCHAR (255), + best_deluxscore INTEGER, + best_deluxscore_date VARCHAR (255), + user_id BIGINT REFERENCES maimai2_user_detail (id), + PRIMARY KEY ( + id + ) +); +