[O] More simplification

This commit is contained in:
Azalea 2024-03-16 21:35:17 -04:00
parent 54b1174e1b
commit 742ea50c2c
35 changed files with 202 additions and 321 deletions

View File

@ -12,8 +12,9 @@ import icu.samnyan.aqua.api.model.resp.sega.maimai2.external.Maimai2DataImport;
import icu.samnyan.aqua.api.util.ApiMapper;
import icu.samnyan.aqua.sega.general.model.Card;
import icu.samnyan.aqua.sega.general.service.CardService;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.*;
import icu.samnyan.aqua.sega.maimai2.model.*;
import icu.samnyan.aqua.sega.maimai2.model.userdata.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@ -26,7 +27,6 @@ import org.springframework.web.bind.annotation.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ -36,16 +36,15 @@ import java.util.stream.Stream;
*/
@RestController
@RequestMapping("api/game/maimai2")
@AllArgsConstructor
public class ApiMaimai2PlayerDataController {
private final ApiMapper mapper;
private static DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0");
private final CardService cardService;
private final UserActRepository userActRepository;
private final UserCharacterRepository userCharacterRepository;
private final Mai2UserActRepo userActRepository;
private final Mai2UserCharacterRepo userCharacterRepository;
private final UserDataRepository userDataRepository;
private final UserItemRepository userItemRepository;
private final UserLoginBonusRepository userLoginBonusRepository;
@ -53,7 +52,7 @@ public class ApiMaimai2PlayerDataController {
private final UserOptionRepository userOptionRepository;
private final UserPlaylogRepository userPlaylogRepository;
private final UserGeneralDataRepository userGeneralDataRepository;
private final MapEncountNpcRepository mapEncountNpcRepository;
private final Mai2MapEncountNpcRepo mapEncountNpcRepository;
private final UserChargeRepository userChargeRepository;
private final UserCourseRepository userCourseRepository;
private final UserExtendRepository userExtendRepository;
@ -62,34 +61,6 @@ public class ApiMaimai2PlayerDataController {
private final UserMapRepository userMapRepository;
private final UserUdemaeRepository userUdemaeRepository;
public ApiMaimai2PlayerDataController(ApiMapper mapper, CardService cardService, UserActRepository userActRepository,
UserCharacterRepository userCharacterRepository, UserDataRepository userDataRepository, UserItemRepository userItemRepository,
UserLoginBonusRepository userLoginBonusRepository, UserMusicDetailRepository userMusicDetailRepository, UserOptionRepository userOptionRepository,
UserPlaylogRepository userPlaylogRepository, UserGeneralDataRepository userGeneralDataRepository, MapEncountNpcRepository mapEncountNpcRepository,
UserChargeRepository userChargeRepository, UserCourseRepository userCourseRepository, UserExtendRepository userExtendRepository,
UserFavoriteRepository userFavoriteRepository, UserFriendSeasonRankingRepository userFriendSeasonRankingRepository, UserMapRepository userMapRepository,
UserUdemaeRepository userUdemaeRepository) {
this.mapper = mapper;
this.cardService = cardService;
this.userActRepository = userActRepository;
this.userCharacterRepository = userCharacterRepository;
this.userDataRepository = userDataRepository;
this.userItemRepository = userItemRepository;
this.userLoginBonusRepository = userLoginBonusRepository;
this.userMusicDetailRepository = userMusicDetailRepository;
this.userOptionRepository = userOptionRepository;
this.userPlaylogRepository = userPlaylogRepository;
this.userGeneralDataRepository = userGeneralDataRepository;
this.mapEncountNpcRepository = mapEncountNpcRepository;
this.userChargeRepository = userChargeRepository;
this.userCourseRepository = userCourseRepository;
this.userExtendRepository = userExtendRepository;
this.userFavoriteRepository = userFavoriteRepository;
this.userFriendSeasonRankingRepository = userFriendSeasonRankingRepository;
this.userMapRepository = userMapRepository;
this.userUdemaeRepository = userUdemaeRepository;
}
@GetMapping("config/userPhoto/divMaxLength")
public long getConfigUserPhotoDivMaxLength(@Value("${game.maimai2.userPhoto.divMaxLength:32}") long divMaxLength) {
return divMaxLength;
@ -232,7 +203,7 @@ public class ApiMaimai2PlayerDataController {
public ReducedPageResponse<UserPlaylog> getRecent(@RequestParam long aimeId,
@RequestParam(required = false, defaultValue = "0") int page,
@RequestParam(required = false, defaultValue = "10") int size) {
Page<UserPlaylog> playlogs = userPlaylogRepository.findByUserCardExtId(aimeId, PageRequest.of(page, size, Sort.Direction.DESC, "id"));
Page<UserPlaylog> playlogs = userPlaylogRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size, Sort.Direction.DESC, "id"));
return new ReducedPageResponse<>(playlogs.getContent(), playlogs.getPageable().getPageNumber(), playlogs.getTotalPages(), playlogs.getTotalElements());
}
@ -249,7 +220,7 @@ public class ApiMaimai2PlayerDataController {
@GetMapping("options")
public UserOption getOptions(@RequestParam long aimeId) {
return userOptionRepository.findByUser_Card_ExtId(aimeId).orElseThrow();
return userOptionRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow();
}
@PostMapping("options")
@ -295,9 +266,9 @@ public class ApiMaimai2PlayerDataController {
try {
data.setGameId("SDEZ");
data.setUserData(userDataRepository.findByCardExtId(aimeId).orElseThrow());
data.setUserExtend(userExtendRepository.findByUser_Card_ExtId(aimeId).orElseThrow());
data.setUserOption(userOptionRepository.findByUser_Card_ExtId(aimeId).orElseThrow());
data.setUserUdemae(userUdemaeRepository.findByUser_Card_ExtId(aimeId).orElseThrow());
data.setUserExtend(userExtendRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow());
data.setUserOption(userOptionRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow());
data.setUserUdemae(userUdemaeRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow());
data.setUserCharacterList(userCharacterRepository.findByUser_Card_ExtId(aimeId));
data.setUserGeneralDataList(userGeneralDataRepository.findByUser_Card_ExtId(aimeId));
data.setUserItemList(userItemRepository.findByUser_Card_ExtId(aimeId));

View File

@ -10,6 +10,7 @@ import icu.samnyan.aqua.net.utils.SUCCESS
import icu.samnyan.aqua.sega.general.dao.CardRepository
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.general.service.CardService
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository
import org.springframework.stereotype.Service
import org.springframework.web.bind.annotation.RestController
import kotlin.jvm.optionals.getOrNull
@ -142,7 +143,7 @@ suspend fun getSummaryFor(repo: GenericUserDataRepo<*>, card: Card): Map<Str, An
@Service
class CardGameService(
val maimai2: icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository,
val maimai2: UserDataRepository,
val chusan: icu.samnyan.aqua.sega.chusan.dao.userdata.UserDataRepository,
val ongeki: icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository,
val diva: icu.samnyan.aqua.sega.diva.dao.userdata.PlayerProfileRepository,

View File

@ -5,7 +5,10 @@ import ext.RP
import ext.Str
import icu.samnyan.aqua.net.db.AquaUserServices
import icu.samnyan.aqua.net.utils.*
import icu.samnyan.aqua.sega.maimai2.dao.userdata.*
import icu.samnyan.aqua.sega.maimai2.model.*
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository
import icu.samnyan.aqua.sega.maimai2.model.UserGeneralDataRepository
import icu.samnyan.aqua.sega.maimai2.model.UserPlaylogRepository
import org.springframework.web.bind.annotation.RestController
@RestController

View File

@ -1,12 +0,0 @@
package icu.samnyan.aqua.sega.maimai2.dao.gamedata;
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameCharge;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("Maimai2GameChargeRepository")
public interface GameChargeRepository extends JpaRepository<GameCharge, Long> {
}

View File

@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.maimai2.dao.gamedata;
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameEvent;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("Maimai2GameEventRepository")
public interface GameEventRepository extends JpaRepository<GameEvent, Integer> {
List<GameEvent> findByTypeAndEnable(int type, boolean enable);
}

View File

@ -1,13 +0,0 @@
package icu.samnyan.aqua.sega.maimai2.dao.gamedata;
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameSellingCard;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("Maimai2GameSellingCardRepository")
public interface GameSellingCardRepository extends JpaRepository<GameSellingCard, Long> {
}

View File

@ -1,189 +0,0 @@
package icu.samnyan.aqua.sega.maimai2.dao.userdata
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.maimai2.model.userdata.*
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.repository.NoRepositoryBean
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Transactional
import java.util.*
@NoRepositoryBean
interface Deletable {
@Transactional
fun deleteByUser(user: UserDetail)
}
@Repository("Maimai2MapEncountNpcRepository")
interface MapEncountNpcRepository : JpaRepository<MapEncountNpc, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<MapEncountNpc>
fun findByUserAndMusicId(user: UserDetail, musicId: Int): Optional<MapEncountNpc>
fun findByUser_Card_ExtIdAndMusicId(userId: Long, musicId: Int, page: Pageable): Page<MapEncountNpc>
}
@Repository("Maimai2UserActRepository")
interface UserActRepository : JpaRepository<UserAct, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserAct>
fun findByUserAndKindAndActivityId(user: UserDetail, kind: Int, id: Int): Optional<UserAct>
fun findByUser_Card_ExtIdAndKind(userId: Long, kind: Int): List<UserAct>
}
@Repository("Maimai2UserCardRepository")
interface UserCardRepository : JpaRepository<UserCard, Long>, Deletable {
fun findByUserAndCardId(user: UserDetail, cardId: Int): Optional<UserCard>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserCard>
}
@Repository("Maimai2UserCharacterRepository")
interface UserCharacterRepository : JpaRepository<UserCharacter, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserCharacter>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserCharacter>
fun findByUserAndCharacterId(user: UserDetail, characterId: Int): Optional<UserCharacter>
}
@Repository("Maimai2UserChargeRepository")
interface UserChargeRepository : JpaRepository<UserCharge, Long>, Deletable {
fun findByUser_Card_ExtId(extId: Long): List<UserCharge>
fun findByUserAndChargeId(extId: UserDetail, chargeId: Int): Optional<UserCharge>
}
@Repository("Maimai2UserCourseRepository")
interface UserCourseRepository : JpaRepository<UserCourse, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserCourse>
fun findByUserAndCourseId(user: UserDetail, courseId: Int): Optional<UserCourse>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserCourse>
}
@Repository("Maimai2UserDataRepository")
interface UserDataRepository : GenericUserDataRepo<UserDetail> {
fun findByCardExtId(userId: Long): Optional<UserDetail>
@Transactional
fun deleteByCard(card: Card)
}
@Repository("Maimai2UserExtendRepository")
interface UserExtendRepository : JpaRepository<UserExtend, Long>, Deletable {
fun findByUser(user: UserDetail): Optional<UserExtend>
fun findByUser_Card_ExtId(extId: Long): Optional<UserExtend>
}
@Repository("Maimai2UserFavoriteRepository")
interface UserFavoriteRepository : JpaRepository<UserFavorite, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserFavorite>
fun findByUserAndItemKind(user: UserDetail, kind: Int): Optional<UserFavorite>
//Optional<UserFavorite> findByUserIdAndItemKind(long userId, int kind);
fun findByUserIdAndItemKind(userId: Long, kind: Int): List<UserFavorite>
}
@Repository("Maimai2UserFriendSeasonRankingRepository")
interface UserFriendSeasonRankingRepository : JpaRepository<UserFriendSeasonRanking, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserFriendSeasonRanking>
fun findByUserAndSeasonId(user: UserDetail, seasonId: Int): Optional<UserFriendSeasonRanking>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserFriendSeasonRanking>
}
@Repository("Maimai2UserGeneralDataRepository")
interface UserGeneralDataRepository : JpaRepository<UserGeneralData, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserGeneralData>
fun findByUserAndPropertyKey(user: UserDetail, key: String): Optional<UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional<UserGeneralData>
}
@Repository("Maimai2UserItemRepository")
interface UserItemRepository : JpaRepository<UserItem, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserItem>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserItem>
fun findByUserAndItemKindAndItemId(user: UserDetail, itemKind: Int, itemId: Int): Optional<UserItem>
fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page<UserItem>
}
@Repository("Maimai2UserLoginBonusRepository")
interface UserLoginBonusRepository : JpaRepository<UserLoginBonus, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserLoginBonus>
fun findByUserAndBonusId(user: UserDetail, bonusId: Int): Optional<UserLoginBonus>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserLoginBonus>
}
@Repository("Maimai2UserMapRepository")
interface UserMapRepository : JpaRepository<UserMap, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserMap>
fun findByUserAndMapId(user: UserDetail, mapId: Int): Optional<UserMap>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserMap>
}
@Repository("Maimai2UserMusicDetailRepository")
interface UserMusicDetailRepository : JpaRepository<UserMusicDetail, Long>, Deletable {
fun findByUser_Card_ExtId(userId: Long): List<UserMusicDetail>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<UserMusicDetail>
fun findByUser_Card_ExtIdAndMusicId(userId: Long, id: Int): List<UserMusicDetail>
fun findByUserAndMusicIdAndLevel(user: UserDetail, musicId: Int, level: Int): Optional<UserMusicDetail>
}
@Repository("Maimai2UserOptionRepository")
interface UserOptionRepository : JpaRepository<UserOption, Long>, Deletable {
fun findByUser(user: UserDetail): Optional<UserOption>
fun findByUser_Card_ExtId(extId: Long): Optional<UserOption>
}
@Repository("Maimai2UserPlaylogRepository")
interface UserPlaylogRepository : GenericPlaylogRepo<UserPlaylog>, Deletable {
fun findByUserCardExtId(userId: Long, page: Pageable): Page<UserPlaylog>
fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List<UserPlaylog>
}
@Repository("Maimai2UserPrintDetailRepository")
interface UserPrintDetailRepository : JpaRepository<UserPrintDetail, Long>
@Repository("Maimai2UserUdemaeRepository")
interface UserUdemaeRepository : JpaRepository<UserUdemae, Long>, Deletable {
fun findByUser(user: UserDetail): Optional<UserUdemae>
fun findByUser_Card_ExtId(extId: Long): Optional<UserUdemae>
}

View File

@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.gamedata.GameSellingCardRepository;
import icu.samnyan.aqua.sega.maimai2.model.GameSellingCardRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameSellingCard;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserCharacterRepository;
import icu.samnyan.aqua.sega.maimai2.model.Mai2UserCharacterRepo;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserCharacter;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
@ -23,9 +23,9 @@ public class CMGetUserCharacterHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserCharacterRepository userCharacterRepository;
private final Mai2UserCharacterRepo userCharacterRepository;
public CMGetUserCharacterHandler(BasicMapper mapper, UserCharacterRepository userCharacterRepository) {
public CMGetUserCharacterHandler(BasicMapper mapper, Mai2UserCharacterRepo userCharacterRepository) {
this.mapper = mapper;
this.userCharacterRepository = userCharacterRepository;
}

View File

@ -3,7 +3,7 @@ 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.maimai2.model.userdata.UserDetail;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.gamedata.GameChargeRepository;
import icu.samnyan.aqua.sega.maimai2.model.GameChargeRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameCharge;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.gamedata.GameEventRepository;
import icu.samnyan.aqua.sega.maimai2.model.GameEventRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameEvent;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserActRepository;
import icu.samnyan.aqua.sega.maimai2.model.Mai2UserActRepo;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserActivity;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserAct;
@ -25,9 +25,9 @@ public class GetUserActivityHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserActRepository userActRepository;
private final Mai2UserActRepo userActRepository;
public GetUserActivityHandler(BasicMapper mapper, UserActRepository userActRepository) {
public GetUserActivityHandler(BasicMapper mapper, Mai2UserActRepo userActRepository) {
this.mapper = mapper;
this.userActRepository = userActRepository;
}

View File

@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserCardRepository;
import icu.samnyan.aqua.sega.maimai2.model.Mai2UserCardRepo;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserCard;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
@ -25,9 +25,9 @@ public class GetUserCardHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserCardRepository userCardRepository;
private final Mai2UserCardRepo userCardRepository;
public GetUserCardHandler(UserCardRepository userCardRepository, BasicMapper mapper) {
public GetUserCardHandler(Mai2UserCardRepo userCardRepository, BasicMapper mapper) {
this.mapper = mapper;
this.userCardRepository = userCardRepository;
}

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserCharacterRepository;
import icu.samnyan.aqua.sega.maimai2.model.Mai2UserCharacterRepo;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserCharacter;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
@ -23,9 +23,9 @@ public class GetUserCharacterHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserCharacterRepository userCharacterRepository;
private final Mai2UserCharacterRepo userCharacterRepository;
public GetUserCharacterHandler(BasicMapper mapper, UserCharacterRepository userCharacterRepository) {
public GetUserCharacterHandler(BasicMapper mapper, Mai2UserCharacterRepo userCharacterRepository) {
this.mapper = mapper;
this.userCharacterRepository = userCharacterRepository;
}

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserChargeRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserChargeRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserCharge;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserCourseRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserCourseRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserCourse;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserExtendRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserExtendRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserExtend;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
@ -33,7 +33,7 @@ public class GetUserExtendHandler implements BaseHandler {
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
UserExtend userExtend = userExtendRepository.findByUser_Card_ExtId(userId).orElseThrow();
UserExtend userExtend = userExtendRepository.findSingleByUser_Card_ExtId(userId).orElseThrow();
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserFavoriteRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserFavoriteRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserFavorite;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserFavoriteItem;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserGeneralData;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserGeneralDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserGeneralDataRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
import java.util.LinkedHashMap;

View File

@ -1,7 +1,7 @@
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.model.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;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserItemRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserItemRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserItem;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserLoginBonusRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserLoginBonusRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserLoginBonus;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserMapRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserMapRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserMap;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserMusicDetailRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserMusicDetailRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserMusic;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserMusicDetail;

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserOptionRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserOptionRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserOption;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
@ -33,7 +33,7 @@ public class GetUserOptionHandler implements BaseHandler {
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
UserOption userOption = userOptionRepository.findByUser_Card_ExtId(userId).orElseThrow();
UserOption userOption = userOptionRepository.findSingleByUser_Card_ExtId(userId).orElseThrow();
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);

View File

@ -1,8 +1,8 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserOptionRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserOptionRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.response.GetUserPreviewResp;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail;
@ -46,7 +46,7 @@ public class GetUserPreviewHandler implements BaseHandler {
String json;
if (userDataOptional.isPresent() && userDataOptional.get().getUserName() != null) {
UserDetail user = userDataOptional.get();
Optional<UserOption> userOptionOptional = userOptionRepository.findByUser_Card_ExtId(userId);
Optional<UserOption> userOptionOptional = userOptionRepository.findSingleByUser_Card_ExtId(userId);
resp.setUserName(user.getUserName());
resp.setLogin(false);
resp.setLastGameId(user.getLastGameId());

View File

@ -2,9 +2,9 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserGeneralDataRepository;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserUdemaeRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserGeneralDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserUdemaeRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserRating;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail;
@ -89,7 +89,7 @@ public class GetUserRatingHandler implements BaseHandler {
userRating.setNextNewRatingList(emptyRating);
}
Optional<UserUdemae> optionalUserUdemae = userUdemaeRepository.findByUser_Card_ExtId(userId);
Optional<UserUdemae> optionalUserUdemae = userUdemaeRepository.findSingleByUser_Card_ExtId(userId);
if (optionalUserUdemae.isPresent()) {
UserUdemae userUdemae = optionalUserUdemae.get();
userRating.setUdemae(userUdemae);

View File

@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserRivalData;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail;
import icu.samnyan.aqua.sega.util.jackson.StringMapper;

View File

@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserMusicDetailRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserMusicDetailRepository;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserRivalMusic;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserRivalMusicDetail;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserMusicDetail;

View File

@ -1,8 +1,8 @@
package icu.samnyan.aqua.sega.maimai2.handler.impl
import ext.millis
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserPlaylogRepository
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository
import icu.samnyan.aqua.sega.maimai2.model.UserPlaylogRepository
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler
import icu.samnyan.aqua.sega.maimai2.model.request.UploadUserPlaylog
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserPlaylog

View File

@ -3,8 +3,8 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.general.model.Card;
import icu.samnyan.aqua.sega.general.service.CardService;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.*;
import icu.samnyan.aqua.sega.maimai.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.*;
import icu.samnyan.aqua.sega.maimai2.model.request.UpsertUserAll;
import icu.samnyan.aqua.sega.maimai2.model.request.data.UserAll;
import icu.samnyan.aqua.sega.maimai2.model.response.data.UserActivity;
@ -39,8 +39,8 @@ public class UpsertUserAllHandler implements BaseHandler {
private final UserOptionRepository userOptionRepository;
private final UserItemRepository userItemRepository;
private final UserMusicDetailRepository userMusicDetailRepository;
private final UserActRepository userActRepository;
private final UserCharacterRepository userCharacterRepository;
private final Mai2UserActRepo userActRepository;
private final Mai2UserCharacterRepo userCharacterRepository;
private final UserMapRepository userMapRepository;
private final UserLoginBonusRepository userLoginBonusRepository;
private final UserFavoriteRepository userFavoriteRepository;

View File

@ -2,9 +2,9 @@ package icu.samnyan.aqua.sega.maimai2.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserCardRepository;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.dao.userdata.UserPrintDetailRepository;
import icu.samnyan.aqua.sega.maimai2.model.Mai2UserCardRepo;
import icu.samnyan.aqua.sega.maimai2.model.UserDataRepository;
import icu.samnyan.aqua.sega.maimai2.model.UserPrintDetailRepository;
import icu.samnyan.aqua.sega.maimai2.handler.BaseHandler;
import icu.samnyan.aqua.sega.maimai2.model.request.UpsertUserPrint;
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserCard;
@ -29,12 +29,12 @@ public class UpsertUserPrintHandler implements BaseHandler {
private static final Logger logger = LoggerFactory.getLogger(UpsertUserPrintHandler.class);
private final BasicMapper mapper;
private final UserCardRepository userCardRepository;
private final Mai2UserCardRepo userCardRepository;
private final UserPrintDetailRepository userPrintDetailRepository;
private final UserDataRepository userDataRepository;
@Autowired
public UpsertUserPrintHandler(BasicMapper mapper, UserPrintDetailRepository userPrintDetailRepository, UserCardRepository userCardRepository, UserDataRepository userDataRepository) {
public UpsertUserPrintHandler(BasicMapper mapper, UserPrintDetailRepository userPrintDetailRepository, Mai2UserCardRepo userCardRepository, UserDataRepository userDataRepository) {
this.mapper = mapper;
this.userPrintDetailRepository = userPrintDetailRepository;
this.userCardRepository = userCardRepository;

View File

@ -0,0 +1,136 @@
@file:Suppress("FunctionName")
package icu.samnyan.aqua.sega.maimai2.model
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameCharge
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameEvent
import icu.samnyan.aqua.sega.maimai2.model.gamedata.GameSellingCard
import icu.samnyan.aqua.sega.maimai2.model.userdata.*
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.repository.NoRepositoryBean
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Transactional
import java.util.*
@NoRepositoryBean
interface UserLinked<T>: JpaRepository<T, Long> {
fun findByUser(user: UserDetail): Optional<T>
fun findByUser_Card_ExtId(userId: Long): List<T>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<T>
fun findSingleByUser_Card_ExtId(userId: Long): Optional<T>
@Transactional
fun deleteByUser(user: UserDetail)
}
@Repository("Maimai2MapEncountNpcRepository")
interface Mai2MapEncountNpcRepo : UserLinked<MapEncountNpc>
@Repository("Maimai2UserActRepository")
interface Mai2UserActRepo : UserLinked<UserAct> {
fun findByUserAndKindAndActivityId(user: UserDetail, kind: Int, id: Int): Optional<UserAct>
fun findByUser_Card_ExtIdAndKind(userId: Long, kind: Int): List<UserAct>
}
@Repository("Maimai2UserCardRepository")
interface Mai2UserCardRepo : UserLinked<UserCard> {
fun findByUserAndCardId(user: UserDetail, cardId: Int): Optional<UserCard>
}
@Repository("Maimai2UserCharacterRepository")
interface Mai2UserCharacterRepo : UserLinked<UserCharacter> {
fun findByUserAndCharacterId(user: UserDetail, characterId: Int): Optional<UserCharacter>
}
@Repository("Maimai2UserChargeRepository")
interface UserChargeRepository : UserLinked<UserCharge>
@Repository("Maimai2UserCourseRepository")
interface UserCourseRepository : UserLinked<UserCourse> {
fun findByUserAndCourseId(user: UserDetail, courseId: Int): Optional<UserCourse>
}
@Repository("Maimai2UserDataRepository")
interface UserDataRepository : GenericUserDataRepo<UserDetail> {
fun findByCardExtId(userId: Long): Optional<UserDetail>
@Transactional
fun deleteByCard(card: Card)
}
@Repository("Maimai2UserExtendRepository")
interface UserExtendRepository : UserLinked<UserExtend>
@Repository("Maimai2UserFavoriteRepository")
interface UserFavoriteRepository : UserLinked<UserFavorite> {
fun findByUserAndItemKind(user: UserDetail, kind: Int): Optional<UserFavorite>
fun findByUserIdAndItemKind(userId: Long, kind: Int): List<UserFavorite>
}
@Repository("Maimai2UserFriendSeasonRankingRepository")
interface UserFriendSeasonRankingRepository : UserLinked<UserFriendSeasonRanking> {
fun findByUserAndSeasonId(user: UserDetail, seasonId: Int): Optional<UserFriendSeasonRanking>
}
@Repository("Maimai2UserGeneralDataRepository")
interface UserGeneralDataRepository : UserLinked<UserGeneralData> {
fun findByUserAndPropertyKey(user: UserDetail, key: String): Optional<UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional<UserGeneralData>
}
@Repository("Maimai2UserItemRepository")
interface UserItemRepository : UserLinked<UserItem> {
fun findByUserAndItemKindAndItemId(user: UserDetail, itemKind: Int, itemId: Int): Optional<UserItem>
fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page<UserItem>
}
@Repository("Maimai2UserLoginBonusRepository")
interface UserLoginBonusRepository : UserLinked<UserLoginBonus> {
fun findByUserAndBonusId(user: UserDetail, bonusId: Int): Optional<UserLoginBonus>
}
@Repository("Maimai2UserMapRepository")
interface UserMapRepository : UserLinked<UserMap> {
fun findByUserAndMapId(user: UserDetail, mapId: Int): Optional<UserMap>
}
@Repository("Maimai2UserMusicDetailRepository")
interface UserMusicDetailRepository : UserLinked<UserMusicDetail> {
fun findByUser_Card_ExtIdAndMusicId(userId: Long, id: Int): List<UserMusicDetail>
fun findByUserAndMusicIdAndLevel(user: UserDetail, musicId: Int, level: Int): Optional<UserMusicDetail>
}
@Repository("Maimai2UserOptionRepository")
interface UserOptionRepository : UserLinked<UserOption> {
}
@Repository("Maimai2UserPlaylogRepository")
interface UserPlaylogRepository : GenericPlaylogRepo<UserPlaylog>, UserLinked<UserPlaylog> {
fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List<UserPlaylog>
}
@Repository("Maimai2UserPrintDetailRepository")
interface UserPrintDetailRepository : JpaRepository<UserPrintDetail, Long>
@Repository("Maimai2UserUdemaeRepository")
interface UserUdemaeRepository : UserLinked<UserUdemae>
@Repository("Maimai2GameChargeRepository")
interface GameChargeRepository : JpaRepository<GameCharge, Long>
@Repository("Maimai2GameEventRepository")
interface GameEventRepository : JpaRepository<GameEvent, Int> {
fun findByTypeAndEnable(type: Int, enable: Boolean): List<GameEvent>
}
@Repository("Maimai2GameSellingCardRepository")
interface GameSellingCardRepository : JpaRepository<GameSellingCard, Long>