From 9a4ca3a612dd83844d9b6eb28f646e87d0aa9efa Mon Sep 17 00:00:00 2001
From: samnyan <205-neumphis@users.noreply.dev.s-ul.eu>
Date: Sat, 28 Mar 2020 17:38:23 +0900
Subject: [PATCH] [api] Add chunithm profile export and import
[general] Rename some method name and add more docs
---
pom.xml | 2 +-
.../controller/sega/ApiAimeController.java | 11 +-
.../chuni/amazon/ApiAmazonController.java | 152 ++++++++++++++++--
.../amazon/external/ChuniDataExport.java | 31 ++++
.../amazon/external/ChuniDataImport.java | 31 ++++
.../amazon/external/ExternalUserData.java | 118 ++++++++++++++
.../aimedb/handler/Impl/RegisterHandler.java | 23 +--
.../dao/userdata/UserActivityRepository.java | 2 +
.../dao/userdata/UserCharacterRepository.java | 3 +
.../dao/userdata/UserItemRepository.java | 3 +
.../dao/userdata/UserPlaylogRepository.java | 3 +-
.../handler/impl/GetUserCharacterHandler.java | 3 +-
.../handler/impl/GetUserCourseHandler.java | 5 +-
.../handler/impl/GetUserDataExHandler.java | 2 +-
.../handler/impl/GetUserDuelHandler.java | 3 +-
.../handler/impl/GetUserMapHandler.java | 3 +-
.../chunithm/model/userdata/UserData.java | 1 -
.../chunithm/service/UserActivityService.java | 4 +
.../service/UserCharacterService.java | 22 +--
.../chunithm/service/UserChargeService.java | 7 +-
.../chunithm/service/UserCourseService.java | 12 +-
.../chunithm/service/UserDataExService.java | 10 +-
.../chunithm/service/UserDataService.java | 29 ++--
.../chunithm/service/UserDuelService.java | 3 +-
.../service/UserGameOptionExService.java | 8 +-
.../service/UserGameOptionService.java | 8 +-
.../chunithm/service/UserItemService.java | 13 +-
.../sega/chunithm/service/UserMapService.java | 24 +--
.../service/UserMusicDetailService.java | 16 +-
.../chunithm/service/UserPlaylogService.java | 11 +-
.../samnyan/aqua/sega/general/model/Card.java | 1 +
.../sega/general/service/CardService.java | 39 +++++
32 files changed, 484 insertions(+), 119 deletions(-)
create mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataExport.java
create mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataImport.java
create mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ExternalUserData.java
diff --git a/pom.xml b/pom.xml
index 0edf9553..35094067 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
icu.samnya
aqua
- 0.0.12-RELEASE
+ 0.0.12a-RELEASE
Aqua Server
A multipurpose game server
diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java
index 3ed62184..28c004e8 100644
--- a/src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java
+++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java
@@ -1,7 +1,7 @@
package icu.samnyan.aqua.api.controller.sega;
-import icu.samnyan.aqua.sega.general.dao.CardRepository;
import icu.samnyan.aqua.sega.general.model.Card;
+import icu.samnyan.aqua.sega.general.service.CardService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -11,20 +11,21 @@ import java.util.Map;
import java.util.Optional;
/**
+ * General Aime actions endpoint
* @author samnyan (privateamusement@protonmail.com)
*/
@RestController
@RequestMapping("api/sega/aime")
public class ApiAimeController {
- private final CardRepository cardRepository;
+ private final CardService cardService;
- public ApiAimeController(CardRepository cardRepository) {
- this.cardRepository = cardRepository;
+ public ApiAimeController(CardService cardService) {
+ this.cardService = cardService;
}
@PostMapping("getByAccessCode")
public Optional getByAccessCode(@RequestBody Map request) {
- return cardRepository.findByLuid(request.get("accessCode").replaceAll("-","").replaceAll(" ",""));
+ return cardService.getCardByAccessCode(request.get("accessCode").replaceAll("-", "").replaceAll(" ", ""));
}
}
diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java
index 725928b8..fb0bb0a6 100644
--- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java
+++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java
@@ -6,22 +6,28 @@ import icu.samnyan.aqua.api.model.ReducedPageResponse;
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.external.ChuniDataExport;
+import icu.samnyan.aqua.api.model.resp.sega.chuni.amazon.external.ChuniDataImport;
+import icu.samnyan.aqua.api.model.resp.sega.chuni.amazon.external.ExternalUserData;
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.*;
import icu.samnyan.aqua.sega.chunithm.service.*;
+import icu.samnyan.aqua.sega.general.model.Card;
+import icu.samnyan.aqua.sega.general.service.CardService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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.*;
import java.util.stream.Collectors;
/**
@@ -31,24 +37,45 @@ import java.util.stream.Collectors;
@RequestMapping("api/game/chuni/amazon")
public class ApiAmazonController {
+ private static final Logger logger = LoggerFactory.getLogger(ApiAmazonController.class);
+
private final ApiMapper mapper;
- private final UserDataService userDataService;
- private final UserPlaylogService userPlaylogService;
- private final UserMusicDetailService userMusicDetailService;
+ private final CardService cardService;
+
+ private final UserActivityService userActivityService;
+ private final UserCharacterService userCharacterService;
+ private final UserChargeService userChargeService;
private final UserCourseService userCourseService;
+ private final UserDataService userDataService;
+ private final UserDataExService userDataExService;
+ private final UserDuelService userDuelService;
private final UserGameOptionService userGameOptionService;
+ private final UserGameOptionExService userGameOptionExService;
+ private final UserItemService userItemService;
+ private final UserMapService userMapService;
+ private final UserMusicDetailService userMusicDetailService;
+ private final UserPlaylogService userPlaylogService;
private final GameMusicService gameMusicService;
@Autowired
- public ApiAmazonController(ApiMapper mapper, UserDataService userDataService, UserPlaylogService userPlaylogService, UserMusicDetailService userMusicDetailService, UserCourseService userCourseService, UserGameOptionService userGameOptionService, GameMusicService gameMusicService) {
+ public ApiAmazonController(ApiMapper mapper, CardService cardService, UserActivityService userActivityService, UserCharacterService userCharacterService, UserChargeService userChargeService, UserDataService userDataService, UserDataExService userDataExService, UserGameOptionExService userGameOptionExService, UserMapService userMapService, UserPlaylogService userPlaylogService, UserMusicDetailService userMusicDetailService, UserCourseService userCourseService, UserDuelService userDuelService, UserGameOptionService userGameOptionService, UserItemService userItemService, GameMusicService gameMusicService) {
this.mapper = mapper;
+ this.cardService = cardService;
+ this.userActivityService = userActivityService;
+ this.userCharacterService = userCharacterService;
+ this.userChargeService = userChargeService;
this.userDataService = userDataService;
+ this.userDataExService = userDataExService;
+ this.userGameOptionExService = userGameOptionExService;
+ this.userMapService = userMapService;
this.userPlaylogService = userPlaylogService;
this.userMusicDetailService = userMusicDetailService;
this.userCourseService = userCourseService;
+ this.userDuelService = userDuelService;
this.userGameOptionService = userGameOptionService;
+ this.userItemService = userItemService;
this.gameMusicService = gameMusicService;
}
@@ -67,7 +94,7 @@ public class ApiAmazonController {
public ProfileResp getProfile(@RequestParam String aimeId) {
ProfileResp resp = mapper.convert(userDataService.getUserByExtId(aimeId).orElseThrow(), new TypeReference<>() {
});
- UserCourse course = userCourseService.getByUser(aimeId)
+ UserCourse course = userCourseService.getByUserId(aimeId)
.stream()
.filter(UserCourse::isClear)
.max(Comparator.comparingInt(UserCourse::getClassId))
@@ -168,12 +195,115 @@ public class ApiAmazonController {
@GetMapping("song/{id}")
public List getSongDetail(@RequestParam String aimeId, @PathVariable int id) {
- return userMusicDetailService.getByUserAndMusicId(aimeId, id);
+ return userMusicDetailService.getByUserIdAndMusicId(aimeId, id);
}
@GetMapping("song/{id}/{level}")
public List getLevelPlaylog(@RequestParam String aimeId, @PathVariable int id, @PathVariable int level) {
- return userPlaylogService.getByUserAndMusicIdAndLevel(aimeId, id, level);
+ return userPlaylogService.getByUserIdAndMusicIdAndLevel(aimeId, id, level);
+ }
+
+ @GetMapping("export")
+ public ResponseEntity