diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/GetUserMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/GetUserMusicHandler.java deleted file mode 100644 index a66fd856..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/GetUserMusicHandler.java +++ /dev/null @@ -1,65 +0,0 @@ -package icu.samnyan.aqua.sega.maimai2.handler; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.maimai2.model.Mai2UserMusicDetailRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.maimai2.model.response.data.UserMusic; -import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserMusicDetail; -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.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("Maimai2GetUserMusicHandler") -public class GetUserMusicHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserMusicHandler.class); - - private final BasicMapper mapper; - - private final Mai2UserMusicDetailRepo userMusicDetailRepository; - - public GetUserMusicHandler(BasicMapper mapper, Mai2UserMusicDetailRepo userMusicDetailRepository) { - this.mapper = mapper; - this.userMusicDetailRepository = userMusicDetailRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - int nextIndexVal = ((Number) request.get("nextIndex")).intValue(); - int maxCount = ((Number) request.get("maxCount")).intValue(); - - int pageNum = nextIndexVal / maxCount; - - Page dbPage = userMusicDetailRepository.findByUser_Card_ExtId(userId, PageRequest.of(pageNum, maxCount)); - - long currentIndex = maxCount * pageNum + dbPage.getNumberOfElements(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("nextIndex", dbPage.getNumberOfElements() < maxCount ? 0 : currentIndex); - - UserMusic userMusic = new UserMusic(); - userMusic.setUserMusicDetailList(dbPage.getContent()); - - List userMusicList = new ArrayList<>(); - userMusicList.add(userMusic); - - resultMap.put("userMusicList", userMusicList); - - String json = mapper.write(resultMap); - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/GetUserMusicHandler.kt b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/GetUserMusicHandler.kt new file mode 100644 index 00000000..41b7d0ad --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/GetUserMusicHandler.kt @@ -0,0 +1,48 @@ +package icu.samnyan.aqua.sega.maimai2.handler + +import icu.samnyan.aqua.sega.general.BaseHandler +import icu.samnyan.aqua.sega.maimai2.model.Mai2Repos +import icu.samnyan.aqua.sega.util.jackson.BasicMapper +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.stereotype.Component + +@Component("Maimai2GetUserMusicHandler") +class GetUserMusicHandler( + val mapper: BasicMapper, + val repos: Mai2Repos +) : BaseHandler { + override fun handle(request: Map): Any { + val userId = (request["userId"] as Number).toLong() +// val nextIndexVal = (request["nextIndex"] as Number).toInt() +// val maxCount = (request["maxCount"] as Number).toInt() +// +// val pageNum = nextIndexVal / maxCount +// +// val dbPage = userMusicDetailRepository.findByUser_Card_ExtId(userId, PageRequest.of(pageNum, maxCount)) +// +// val currentIndex = (maxCount * pageNum + dbPage.numberOfElements).toLong() +// +// val resultMap = mutableMapOf( +// "userId" to userId, +// "nextIndex" to if (dbPage.numberOfElements < maxCount) 0 else currentIndex, +// "userMusicList" to listOf(mapOf("userMusicDetailList" to dbPage.content)) +// ) +// +// val json = mapper.write(resultMap) +// logger.info("Response: $json") + + val db = repos.userMusicDetail.findByUser_Card_ExtId(userId) + + logger.info("Response: ${db.size} music records") + return mapOf( + "userId" to userId, + "nextIndex" to 0, + "userMusicList" to listOf(mapOf("userMusicDetailList" to db)) + ) + } + + companion object { + val logger = LoggerFactory.getLogger(GetUserMusicHandler::class.java) + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/response/data/UserMusic.java b/src/main/java/icu/samnyan/aqua/sega/maimai2/model/response/data/UserMusic.java deleted file mode 100644 index a6c5fc04..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/response/data/UserMusic.java +++ /dev/null @@ -1,18 +0,0 @@ -package icu.samnyan.aqua.sega.maimai2.model.response.data; - -import java.util.List; - -import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserMusicDetail; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserMusic { - private List userMusicDetailList; -}