mirror of https://github.com/Soyandroid/aqua
[API] Ignore song without level information when calculating rating
parent
e992ca81c3
commit
4e462d16ea
|
@ -83,12 +83,16 @@ public class ApiAmazonController {
|
||||||
List<RatingItem> result = new ArrayList<>();
|
List<RatingItem> result = new ArrayList<>();
|
||||||
for (UserMusicDetail detail : details) {
|
for (UserMusicDetail detail : details) {
|
||||||
Music music = musicMap.get(detail.getMusicId());
|
Music music = musicMap.get(detail.getMusicId());
|
||||||
|
if (music != null) {
|
||||||
Level level = music.getLevels().get(detail.getLevel());
|
Level level = music.getLevels().get(detail.getLevel());
|
||||||
|
if (level != null) {
|
||||||
int levelBase = level.getLevel() * 100 + level.getLevelDecimal();
|
int levelBase = level.getLevel() * 100 + level.getLevelDecimal();
|
||||||
int score = detail.getScoreMax();
|
int score = detail.getScoreMax();
|
||||||
int rating = calculateRating(levelBase, score);
|
int rating = calculateRating(levelBase, score);
|
||||||
result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating));
|
result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result.stream()
|
return result.stream()
|
||||||
.filter(detail -> detail.getLevel() != 4)
|
.filter(detail -> detail.getLevel() != 4)
|
||||||
|
@ -105,14 +109,17 @@ public class ApiAmazonController {
|
||||||
List<RatingItem> result = new ArrayList<>();
|
List<RatingItem> result = new ArrayList<>();
|
||||||
for (UserPlaylog log : logList) {
|
for (UserPlaylog log : logList) {
|
||||||
Music music = musicMap.get(log.getMusicId());
|
Music music = musicMap.get(log.getMusicId());
|
||||||
|
if (music != null) {
|
||||||
Level level = music.getLevels().get(log.getLevel());
|
Level level = music.getLevels().get(log.getLevel());
|
||||||
|
if (level != null) {
|
||||||
int levelBase = level.getLevel() * 100 + level.getLevelDecimal();
|
int levelBase = level.getLevel() * 100 + level.getLevelDecimal();
|
||||||
int score = log.getScore();
|
int score = log.getScore();
|
||||||
int rating = calculateRating(levelBase, score);
|
int rating = calculateRating(levelBase, score);
|
||||||
|
|
||||||
result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating));
|
result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating));
|
||||||
}
|
}
|
||||||
List<String> keys = new ArrayList<>();
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result.stream()
|
return result.stream()
|
||||||
.filter(detail -> detail.getLevel() != 4)
|
.filter(detail -> detail.getLevel() != 4)
|
||||||
|
|
Loading…
Reference in New Issue