mirror of https://github.com/hykilpikonna/AquaDX
[O] Optimize mai2 GetUserMusic
parent
aa3a3d9181
commit
1e8c0ce99b
|
@ -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<String, Object> 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<Mai2UserMusicDetail> dbPage = userMusicDetailRepository.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);
|
||||
|
||||
UserMusic userMusic = new UserMusic();
|
||||
userMusic.setUserMusicDetailList(dbPage.getContent());
|
||||
|
||||
List<UserMusic> userMusicList = new ArrayList<>();
|
||||
userMusicList.add(userMusic);
|
||||
|
||||
resultMap.put("userMusicList", userMusicList);
|
||||
|
||||
String json = mapper.write(resultMap);
|
||||
logger.info("Response: " + json);
|
||||
return json;
|
||||
}
|
||||
}
|
|
@ -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<String, Any>): 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)
|
||||
}
|
||||
}
|
|
@ -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<Mai2UserMusicDetail> userMusicDetailList;
|
||||
}
|
Loading…
Reference in New Issue