[maimai2] Add Universe support

This commit is contained in:
Dom Eori
2022-02-14 22:15:54 +09:00
parent 3f0059c0f4
commit 803017bab6
13 changed files with 1052 additions and 2 deletions

View File

@@ -0,0 +1,42 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component("Maimai2GetGameNgMusicHandler")
public class GetGameNgMusicIdHandler implements BaseHandler {
private static final Logger logger = LoggerFactory.getLogger(GetGameNgMusicIdHandler.class);
private final StringMapper mapper;
public GetGameNgMusicIdHandler(StringMapper mapper) {
this.mapper = mapper;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
List<Object> musicIdList = new ArrayList<>();
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("length", 0);
resultMap.put("musicIdList", musicIdList);
String json = mapper.write(resultMap);
logger.info("Response: " + json);
return json;
}
}

View File

@@ -0,0 +1,57 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserFriendSeasonRankingRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserFriendSeasonRanking;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component("Maimai2GetUserFriendSeasonRankingHandler")
public class GetUserFriendSeasonRankingHandler implements BaseHandler {
private static final Logger logger = LoggerFactory.getLogger(GetUserFriendSeasonRankingHandler.class);
private final BasicMapper mapper;
private final UserFriendSeasonRankingRepository userFriendSeasonRankingRepository;
public GetUserFriendSeasonRankingHandler(BasicMapper mapper, UserFriendSeasonRankingRepository userFriendSeasonRankingRepository) {
this.mapper = mapper;
this.userFriendSeasonRankingRepository = userFriendSeasonRankingRepository;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
int nextIndexVal = ((Number) request.get("nextIndex")).intValue();
int maxCount = 20;
int pageNum = nextIndexVal / maxCount;
Page<UserFriendSeasonRanking> dbPage = userFriendSeasonRankingRepository.findByUser_Card_ExtId(userId, PageRequest.of(pageNum, maxCount));
long currentIndex = maxCount * pageNum + dbPage.getNumberOfElements();
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
resultMap.put("nextIndex", dbPage.getNumberOfElements() < maxCount ? 0 : currentIndex);
resultMap.put("userFriendSeasonRankingList", dbPage.getContent());
String json = mapper.write(resultMap);
logger.info("Response: " + json);
return json;
}
}

View File

@@ -46,8 +46,9 @@ public class UpsertUserAllHandler implements BaseHandler {
private final UserUdemaeRepository userUdemaeRepository;
private final UserGeneralDataRepository userGeneralDataRepository;
private final UserCourseRepository userCourseRepository;
private final UserFriendSeasonRankingRepository userFriendSeasonRankingRepository;
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) {
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, UserFriendSeasonRankingRepository userFriendSeasonRankingRepository) {
this.mapper = mapper;
this.cardService = cardService;
this.userDataRepository = userDataRepository;
@@ -63,6 +64,7 @@ public class UpsertUserAllHandler implements BaseHandler {
this.userUdemaeRepository = userUdemaeRepository;
this.userGeneralDataRepository = userGeneralDataRepository;
this.userCourseRepository = userCourseRepository;
this.userFriendSeasonRankingRepository = userFriendSeasonRankingRepository;
}
@Override
@@ -268,6 +270,24 @@ public class UpsertUserAllHandler implements BaseHandler {
userCourseRepository.saveAll(newUserCourseList);
}
// UserFriendSeasonRankingList
if (userAll.getUserFriendSeasonRankingList() != null) {
List<UserFriendSeasonRanking> userFriendSeasonRankingList = userAll.getUserFriendSeasonRankingList();
List<UserFriendSeasonRanking> newUserFriendSeasonRankingList = new ArrayList<>();
for (UserFriendSeasonRanking newUserFriendSeasonRanking : userFriendSeasonRankingList) {
int seasonId = newUserFriendSeasonRanking.getSeasonId();
Optional<UserFriendSeasonRanking> userFriendSeasonRankingOptional = userFriendSeasonRankingRepository.findByUserAndSeasonId(newUserData, seasonId);
UserFriendSeasonRanking userFriendSeasonRanking = userFriendSeasonRankingOptional.orElseGet(() -> new UserFriendSeasonRanking(newUserData));
newUserFriendSeasonRanking.setId(userFriendSeasonRanking.getId());
newUserFriendSeasonRanking.setUser(newUserData);
newUserFriendSeasonRankingList.add(newUserFriendSeasonRanking);
}
userFriendSeasonRankingRepository.saveAll(newUserFriendSeasonRankingList);
}
// UserFavoriteList
if (userAll.getUserFavoriteList() != null) {
List<UserFavorite> userFavoriteList = userAll.getUserFavoriteList();