forked from Cookies_Github_mirror/AquaDX
Initial Commit
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package icu.samnyan.aqua.api.controller;
|
||||
|
||||
import icu.samnyan.aqua.sega.general.dao.CardRepository;
|
||||
import icu.samnyan.aqua.sega.general.model.Card;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/sega/aime")
|
||||
public class ApiAimeController {
|
||||
|
||||
private final CardRepository cardRepository;
|
||||
|
||||
public ApiAimeController(CardRepository cardRepository) {
|
||||
this.cardRepository = cardRepository;
|
||||
}
|
||||
|
||||
@PostMapping("getByAccessCode")
|
||||
public Optional<Card> getByAccessCode(@RequestBody Map<String, String> request) {
|
||||
return cardRepository.findByLuid(request.get("accessCode"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package icu.samnyan.aqua.api.controller;
|
||||
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestControllerAdvice(basePackages = "icu.samnyan.aqua.api")
|
||||
public class ApiControllerAdvice {
|
||||
|
||||
@ExceptionHandler(NoSuchElementException.class)
|
||||
public ResponseEntity<Object> noSuchElement() {
|
||||
return ResponseEntity.notFound().build();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
package icu.samnyan.aqua.api.controller.sega.chuni.amazon;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import icu.samnyan.aqua.api.model.resp.sega.chuni.amazon.ProfileResp;
|
||||
import icu.samnyan.aqua.api.model.resp.sega.chuni.amazon.RatingItem;
|
||||
import icu.samnyan.aqua.api.model.resp.sega.chuni.amazon.RecentResp;
|
||||
import icu.samnyan.aqua.api.model.resp.sega.chuni.amazon.ScoreResp;
|
||||
import icu.samnyan.aqua.api.util.ApiMapper;
|
||||
import icu.samnyan.aqua.sega.chunithm.model.gamedata.Level;
|
||||
import icu.samnyan.aqua.sega.chunithm.model.gamedata.Music;
|
||||
import icu.samnyan.aqua.sega.chunithm.model.userdata.UserCourse;
|
||||
import icu.samnyan.aqua.sega.chunithm.model.userdata.UserMusicDetail;
|
||||
import icu.samnyan.aqua.sega.chunithm.model.userdata.UserPlaylog;
|
||||
import icu.samnyan.aqua.sega.chunithm.service.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/game/chuni/amazon")
|
||||
public class ApiAmazonController {
|
||||
|
||||
private final ApiMapper mapper;
|
||||
|
||||
private final UserDataService userDataService;
|
||||
private final UserPlaylogService userPlaylogService;
|
||||
private final UserMusicDetailService userMusicDetailService;
|
||||
private final UserCourseService userCourseService;
|
||||
|
||||
private final GameMusicService gameMusicService;
|
||||
|
||||
@Autowired
|
||||
public ApiAmazonController(ApiMapper mapper, UserDataService userDataService, UserPlaylogService userPlaylogService, UserMusicDetailService userMusicDetailService, UserCourseService userCourseService, GameMusicService gameMusicService) {
|
||||
this.mapper = mapper;
|
||||
this.userDataService = userDataService;
|
||||
this.userPlaylogService = userPlaylogService;
|
||||
this.userMusicDetailService = userMusicDetailService;
|
||||
this.userCourseService = userCourseService;
|
||||
this.gameMusicService = gameMusicService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Basic info
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("profile")
|
||||
public ProfileResp getProfile(@RequestParam String aimeId) {
|
||||
ProfileResp resp = mapper.convert(userDataService.getUserByExtId(aimeId).orElseThrow(), new TypeReference<>() {
|
||||
});
|
||||
UserCourse course = userCourseService.getByUser(aimeId)
|
||||
.stream()
|
||||
.filter(UserCourse::isClear)
|
||||
.max(Comparator.comparingInt(UserCourse::getClassId))
|
||||
.orElseGet(() -> new UserCourse(0));
|
||||
resp.setCourseClass(course.getClassId());
|
||||
return resp;
|
||||
}
|
||||
|
||||
@GetMapping("recent")
|
||||
public List<RecentResp> getRecentPlay(@RequestParam String aimeId) {
|
||||
return mapper.convert(userPlaylogService.getRecentPlays(aimeId), new TypeReference<>() {
|
||||
});
|
||||
}
|
||||
|
||||
@GetMapping("rating")
|
||||
public List<RatingItem> getRating(@RequestParam String aimeId) {
|
||||
|
||||
Map<Integer, Music> musicMap = gameMusicService.getIdMap();
|
||||
List<UserMusicDetail> details = userMusicDetailService.getByUser(aimeId);
|
||||
|
||||
List<RatingItem> result = new ArrayList<>();
|
||||
for (UserMusicDetail detail : details) {
|
||||
Music music = musicMap.get(detail.getMusicId());
|
||||
Level level = music.getLevels().get(detail.getLevel());
|
||||
int levelBase = level.getLevel() * 100 + level.getLevelDecimal();
|
||||
int score = detail.getScoreMax();
|
||||
int rating = calculateRating(levelBase, score);
|
||||
result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating));
|
||||
}
|
||||
|
||||
return result.stream()
|
||||
.filter(detail -> detail.getLevel() != 4)
|
||||
.sorted(Comparator.comparingInt(RatingItem::getRating).reversed())
|
||||
.limit(30)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@GetMapping("rating/recent")
|
||||
public List<RatingItem> getRecentRating(@RequestParam String aimeId) {
|
||||
Map<Integer, Music> musicMap = gameMusicService.getIdMap();
|
||||
List<UserPlaylog> logList = userPlaylogService.getRecent30Plays(aimeId);
|
||||
|
||||
List<RatingItem> result = new ArrayList<>();
|
||||
for (UserPlaylog log : logList) {
|
||||
Music music = musicMap.get(log.getMusicId());
|
||||
Level level = music.getLevels().get(log.getLevel());
|
||||
int levelBase = level.getLevel() * 100 + level.getLevelDecimal();
|
||||
int score = log.getScore();
|
||||
int rating = calculateRating(levelBase, score);
|
||||
|
||||
result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating));
|
||||
}
|
||||
List<String> keys = new ArrayList<>();
|
||||
|
||||
return result.stream()
|
||||
.filter(detail -> detail.getLevel() != 4)
|
||||
.sorted(Comparator.comparingInt(RatingItem::getRating).reversed())
|
||||
.limit(10)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@GetMapping("score/list")
|
||||
public List<ScoreResp> getScoreList(@RequestParam String aimeId) {
|
||||
return mapper.convert(userMusicDetailService.getByUser(aimeId), new TypeReference<>() {
|
||||
});
|
||||
}
|
||||
|
||||
@GetMapping("music")
|
||||
public List<Music> getMusicList() {
|
||||
return gameMusicService.getAll();
|
||||
}
|
||||
|
||||
@PostMapping("music/import")
|
||||
public List<Music> addMusic(@RequestBody List<Music> musicList) {
|
||||
musicList.forEach(music -> music.getLevels().forEach((integer, level) -> level.setMusic(music)));
|
||||
return gameMusicService.saveAll(musicList);
|
||||
}
|
||||
|
||||
private int calculateRating(int levelBase, int score) {
|
||||
if (score >= 1007500) return levelBase + 200;
|
||||
if (score >= 1005000) return levelBase + 150 + (score - 1005000) * 10 / 500;
|
||||
if (score >= 1000000) return levelBase + 100 + (score - 1000000) * 5 / 500;
|
||||
if (score >= 975000) return levelBase + (score - 975000) * 2 / 500;
|
||||
if (score >= 950000) return levelBase - 150 + (score - 950000) * 3 / 500;
|
||||
if (score >= 925000) return levelBase - 300 + (score - 925000) * 3 / 500;
|
||||
if (score >= 900000) return levelBase - 500 + (score - 900000) * 4 / 500;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package icu.samnyan.aqua.api.controller.sega.diva;
|
||||
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/game/diva/data")
|
||||
public class ApiDivaGameDataController {
|
||||
|
||||
@GetMapping(value = "musicList", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public byte[] musicList() throws IOException {
|
||||
return Files.readAllBytes(Paths.get("data/diva_musiclist.json"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package icu.samnyan.aqua.api.controller.sega.diva;
|
||||
|
||||
import icu.samnyan.aqua.api.model.OkResponse;
|
||||
import icu.samnyan.aqua.api.model.req.sega.diva.ModuleEntry;
|
||||
import icu.samnyan.aqua.api.model.req.sega.diva.PvListEntry;
|
||||
import icu.samnyan.aqua.api.model.req.sega.diva.PvListRequest;
|
||||
import icu.samnyan.aqua.sega.diva.dao.gamedata.*;
|
||||
import icu.samnyan.aqua.sega.diva.model.common.Difficulty;
|
||||
import icu.samnyan.aqua.sega.diva.model.common.Edition;
|
||||
import icu.samnyan.aqua.sega.diva.model.gamedata.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/game/diva/manage")
|
||||
public class ApiDivaManageController {
|
||||
|
||||
private final PvEntryRepository pvEntryRepository;
|
||||
private final DivaModuleRepository moduleRepository;
|
||||
private final DivaCustomizeRepository customizeRepository;
|
||||
private final FestaRepository festaRepository;
|
||||
private final ContestRepository contestRepository;
|
||||
|
||||
public ApiDivaManageController(PvEntryRepository pvEntryRepository, DivaModuleRepository moduleRepository, DivaCustomizeRepository customizeRepository, FestaRepository festaRepository, ContestRepository contestRepository) {
|
||||
this.pvEntryRepository = pvEntryRepository;
|
||||
this.moduleRepository = moduleRepository;
|
||||
this.customizeRepository = customizeRepository;
|
||||
this.festaRepository = festaRepository;
|
||||
this.contestRepository = contestRepository;
|
||||
}
|
||||
|
||||
@PostMapping("pvList")
|
||||
public List<PvEntry> updatePvList(@RequestBody PvListRequest request) {
|
||||
request.getEasy().forEach(x -> savePv(x, Difficulty.EASY));
|
||||
request.getNormal().forEach(x -> savePv(x, Difficulty.NORMAL));
|
||||
request.getHard().forEach(x -> savePv(x, Difficulty.HARD));
|
||||
request.getExtreme().forEach(x -> savePv(x, Difficulty.EXTREME));
|
||||
return pvEntryRepository.findAll();
|
||||
}
|
||||
|
||||
@PostMapping("module")
|
||||
public List<DivaModule> updateModuleList(@RequestBody List<ModuleEntry> request) {
|
||||
List<DivaModule> moduleList = new ArrayList<>();
|
||||
request.forEach(x -> moduleList.add(new DivaModule(x.getID(), x.getName(), x.getPrice(), x.getReleaseDate(), x.getEndDate(), x.getSortOrder())));
|
||||
return moduleRepository.saveAll(moduleList);
|
||||
}
|
||||
|
||||
@PostMapping("item")
|
||||
public List<DivaCustomize> updateItemList(@RequestBody List<ModuleEntry> request) {
|
||||
List<DivaCustomize> itemList = new ArrayList<>();
|
||||
request.forEach(x -> itemList.add(new DivaCustomize(x.getID(), x.getName(), x.getPrice(), x.getReleaseDate(), x.getEndDate(), x.getSortOrder())));
|
||||
return customizeRepository.saveAll(itemList);
|
||||
}
|
||||
|
||||
private void savePv(PvListEntry x, Difficulty difficulty) {
|
||||
pvEntryRepository.save(new PvEntry(x.getPVID(),
|
||||
difficulty,
|
||||
x.getVersion(),
|
||||
Edition.fromValue(x.getEdition()),
|
||||
x.getAdvDemo().getStart(),
|
||||
x.getAdvDemo().getEnd(),
|
||||
x.getPlayable().getStart(),
|
||||
x.getPlayable().getEnd()
|
||||
));
|
||||
}
|
||||
|
||||
@GetMapping("festa")
|
||||
public List<Festa> getFesta() {
|
||||
return festaRepository.findAll();
|
||||
}
|
||||
|
||||
@PutMapping("festa")
|
||||
public Festa updateFesta(@RequestBody Festa festa) {
|
||||
return festaRepository.save(festa);
|
||||
}
|
||||
|
||||
@DeleteMapping("festa/{id}")
|
||||
public OkResponse getFesta(@PathVariable int id) {
|
||||
festaRepository.deleteById(id);
|
||||
return new OkResponse("Deleted " + id);
|
||||
}
|
||||
|
||||
@GetMapping("contest")
|
||||
public List<Contest> getContest() {
|
||||
return contestRepository.findAll();
|
||||
}
|
||||
|
||||
@PutMapping("contest")
|
||||
public Contest updateContest(@RequestBody Contest contest) {
|
||||
return contestRepository.save(contest);
|
||||
}
|
||||
|
||||
@DeleteMapping("contest/{id}")
|
||||
public OkResponse deleteContest(@PathVariable int id) {
|
||||
contestRepository.deleteById(id);
|
||||
return new OkResponse("Deleted " + id);
|
||||
}
|
||||
|
||||
@GetMapping("module")
|
||||
public List<DivaModule> getModule() {
|
||||
return moduleRepository.findAll();
|
||||
}
|
||||
|
||||
@GetMapping("customize")
|
||||
public List<DivaCustomize> getCustomize() {
|
||||
return customizeRepository.findAll();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
package icu.samnyan.aqua.api.controller.sega.diva;
|
||||
|
||||
import icu.samnyan.aqua.api.model.ReducedPageResponse;
|
||||
import icu.samnyan.aqua.sega.diva.dao.userdata.*;
|
||||
import icu.samnyan.aqua.sega.diva.model.userdata.*;
|
||||
import icu.samnyan.aqua.sega.diva.service.PlayerProfileService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/game/diva")
|
||||
public class ApiDivaPlayerDataController {
|
||||
|
||||
private final PlayerProfileService playerProfileService;
|
||||
|
||||
private final PlayLogRepository playLogRepository;
|
||||
private final PlayerPvRecordRepository playerPvRecordRepository;
|
||||
private final PlayerPvCustomizeRepository playerPvCustomizeRepository;
|
||||
private final PlayerModuleRepository playerModuleRepository;
|
||||
private final PlayerCustomizeRepository playerCustomizeRepository;
|
||||
|
||||
public ApiDivaPlayerDataController(PlayerProfileService playerProfileService, PlayLogRepository playLogRepository, PlayerPvRecordRepository playerPvRecordRepository, PlayerPvCustomizeRepository playerPvCustomizeRepository, PlayerModuleRepository playerModuleRepository, PlayerCustomizeRepository playerCustomizeRepository) {
|
||||
this.playerProfileService = playerProfileService;
|
||||
this.playLogRepository = playLogRepository;
|
||||
this.playerPvRecordRepository = playerPvRecordRepository;
|
||||
this.playerPvCustomizeRepository = playerPvCustomizeRepository;
|
||||
this.playerModuleRepository = playerModuleRepository;
|
||||
this.playerCustomizeRepository = playerCustomizeRepository;
|
||||
}
|
||||
|
||||
@GetMapping("playerInfo")
|
||||
public Optional<PlayerProfile> getPlayerInfo(@RequestParam int pdId) {
|
||||
return playerProfileService.findByPdId(pdId);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/playerName")
|
||||
public PlayerProfile updateName(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setPlayerName((String) request.get("playerName"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/title")
|
||||
public PlayerProfile updateTitle(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setLevelTitle((String) request.get("title"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/plate")
|
||||
public PlayerProfile updatePlate(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setPlateId((Integer) request.get("plateId"));
|
||||
profile.setPlateEffectId((Integer) request.get("plateEffectId"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/commonModule")
|
||||
public PlayerProfile updateModule(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setCommonModule((String) request.get("commonModule"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/commonCustomize")
|
||||
public PlayerProfile updateCustomize(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setCommonCustomizeItems((String) request.get("commonCustomize"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/commonSkin")
|
||||
public PlayerProfile updateSkin(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setCommonSkin((Integer) request.get("skinId"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/myList")
|
||||
public PlayerProfile updateMyList(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
switch ((Integer) request.get("myListId")) {
|
||||
case 0:
|
||||
profile.setMyList0((String) request.get("myListData"));
|
||||
break;
|
||||
case 1:
|
||||
profile.setMyList1((String) request.get("myListData"));
|
||||
break;
|
||||
case 2:
|
||||
profile.setMyList2((String) request.get("myListData"));
|
||||
break;
|
||||
}
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/se")
|
||||
public PlayerProfile updateSe(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setButtonSe((Integer) request.get("buttonSe"));
|
||||
profile.setChainSlideSe((Integer) request.get("chainSlideSe"));
|
||||
profile.setSlideSe((Integer) request.get("slideSe"));
|
||||
profile.setSliderTouchSe((Integer) request.get("sliderTouchSe"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@PutMapping("playerInfo/display")
|
||||
public PlayerProfile updateDisplay(@RequestBody Map<String, Object> request) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
profile.setShowInterimRanking((Boolean) request.get("showInterimRanking"));
|
||||
profile.setShowClearStatus((Boolean) request.get("showClearStatus"));
|
||||
profile.setShowClearBorder((Boolean) request.get("showClearBorder"));
|
||||
profile.setShowRgoSetting((Boolean) request.get("showRgoSetting"));
|
||||
return playerProfileService.save(profile);
|
||||
}
|
||||
|
||||
@GetMapping("playLog")
|
||||
public ReducedPageResponse<PlayLog> getPlayLogs(@RequestParam int pdId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<PlayLog> playLogs = playLogRepository.findByPdId_PdIdOrderByDateTimeDesc(pdId, PageRequest.of(page, size));
|
||||
return new ReducedPageResponse<>(playLogs.getContent(), playLogs.getPageable().getPageNumber(), playLogs.getTotalPages(), playLogs.getTotalElements());
|
||||
}
|
||||
|
||||
/**
|
||||
* PvRecord
|
||||
*/
|
||||
|
||||
@GetMapping("pvRecord")
|
||||
public ReducedPageResponse<PlayerPvRecord> getPvRecords(@RequestParam int pdId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<PlayerPvRecord> pvRecords = playerPvRecordRepository.findByPdId_PdIdOrderByPvId(pdId, PageRequest.of(page, size));
|
||||
return new ReducedPageResponse<>(pvRecords.getContent(), pvRecords.getPageable().getPageNumber(), pvRecords.getTotalPages(), pvRecords.getTotalElements());
|
||||
}
|
||||
|
||||
@GetMapping("pvRecord/{pvId}")
|
||||
public Map<String, Object> getPvRecord(@RequestParam int pdId, @PathVariable int pvId) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("records", playerPvRecordRepository.findByPdId_PdIdAndPvId(pdId, pvId));
|
||||
playerPvCustomizeRepository.findByPdId_PdIdAndPvId(pdId, pvId).ifPresent(x -> resultMap.put("customize", x));
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@PutMapping("pvRecord/{pvId}")
|
||||
public PlayerPvCustomize updatePvCustomize(@RequestBody Map<String, Object> request, @PathVariable int pvId) {
|
||||
PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow();
|
||||
PlayerPvCustomize playerPvCustomize = playerPvCustomizeRepository.findByPdIdAndPvId(profile, pvId)
|
||||
.orElseGet(() -> new PlayerPvCustomize(profile, pvId));
|
||||
playerPvCustomize.setModule((String) request.get("module"));
|
||||
playerPvCustomize.setCustomize((String) request.get("customize"));
|
||||
playerPvCustomize.setCustomizeFlag((String) request.get("customizeFlag"));
|
||||
playerPvCustomize.setSkin((Integer) request.get("skin"));
|
||||
playerPvCustomize.setButtonSe((Integer) request.get("buttonSe"));
|
||||
playerPvCustomize.setSlideSe((Integer) request.get("slideSe"));
|
||||
playerPvCustomize.setChainSlideSe((Integer) request.get("chainSlideSe"));
|
||||
playerPvCustomize.setSliderTouchSe((Integer) request.get("sliderTouchSe"));
|
||||
return playerPvCustomizeRepository.save(playerPvCustomize);
|
||||
}
|
||||
|
||||
@GetMapping("module")
|
||||
public ReducedPageResponse<PlayerModule> getModules(@RequestParam int pdId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<PlayerModule> modules = playerModuleRepository.findByPdId_PdId(pdId, PageRequest.of(page, size));
|
||||
return new ReducedPageResponse<>(modules.getContent(), modules.getPageable().getPageNumber(), modules.getTotalPages(), modules.getTotalElements());
|
||||
}
|
||||
|
||||
@GetMapping("customize")
|
||||
public ReducedPageResponse<PlayerCustomize> getCustomizes(@RequestParam int pdId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<PlayerCustomize> customizes = playerCustomizeRepository.findByPdId_PdId(pdId, PageRequest.of(page, size));
|
||||
return new ReducedPageResponse<>(customizes.getContent(), customizes.getPageable().getPageNumber(), customizes.getTotalPages(), customizes.getTotalElements());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user