mirror of https://github.com/hykilpikonna/AquaDX
Merge branch 'master' into 'master'
[chusan] Added rudimentary favorites support to aqua-viewer See merge request domeori/aqua!16pull/1/head
commit
2df6d84cc8
|
@ -10,6 +10,7 @@ import icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external.ChuniDataExport;
|
|||
import icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external.ChuniDataImport;
|
||||
import icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external.ExternalUserData;
|
||||
import icu.samnyan.aqua.api.util.ApiMapper;
|
||||
import icu.samnyan.aqua.sega.chunithm.handler.impl.GetUserFavoriteMusicHandler;
|
||||
import icu.samnyan.aqua.sega.chusan.model.gamedata.Level;
|
||||
import icu.samnyan.aqua.sega.chusan.model.gamedata.Music;
|
||||
import icu.samnyan.aqua.sega.chusan.model.userdata.*;
|
||||
|
@ -308,6 +309,43 @@ public class ApiChuniV2PlayerDataController {
|
|||
return userPlaylogService.getByUserIdAndMusicIdAndLevel(aimeId, id, level);
|
||||
}
|
||||
|
||||
@GetMapping("song/{id}/isfavorite")
|
||||
public boolean getSongFavorite(@RequestParam String aimeId, @PathVariable String id) {
|
||||
Optional<UserGeneralData> favOptional;
|
||||
favOptional = userGeneralDataService.getByUserIdAndKey(aimeId, "favorite_music");
|
||||
if(favOptional.isPresent()) {
|
||||
String val = favOptional.get().getPropertyValue();
|
||||
if(StringUtils.isNotBlank(val) && val.contains(",")) {
|
||||
String[] records = val.split(",");
|
||||
for (String record : records) {
|
||||
if (record.equals(id)) return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@PutMapping("song/{id}/favorite")
|
||||
public void updateSongFavorite(@RequestParam String aimeId, @PathVariable String id) {
|
||||
UserData profile = userDataService.getUserByExtId(aimeId).orElseThrow();
|
||||
UserGeneralData userGeneralData = userGeneralDataService.getByUserAndKey(profile, "favorite_music")
|
||||
.orElseGet(() -> new UserGeneralData(profile, "favorite_music"));
|
||||
List<String> favoriteSongs = new LinkedList<String>(Arrays.asList(userGeneralData.getPropertyValue().split(",")));
|
||||
|
||||
if(!favoriteSongs.remove(id))
|
||||
{
|
||||
favoriteSongs.add(id);
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
favoriteSongs.forEach(favSong -> {
|
||||
if(!favSong.isEmpty()) sb.append(favSong).append(",");
|
||||
});
|
||||
|
||||
userGeneralData.setPropertyValue(sb.toString());
|
||||
userGeneralDataService.save(userGeneralData);
|
||||
}
|
||||
|
||||
@GetMapping("character")
|
||||
public ReducedPageResponse<UserCharacter> getCharacter(@RequestParam String aimeId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
|
|
Loading…
Reference in New Issue