From a417e4032c3cfa08892a12ec4fbb5a0a04a438a1 Mon Sep 17 00:00:00 2001 From: samnyan <205-NeumPhis@users.noreply.dev.s-ul.eu> Date: Sat, 18 Jan 2020 13:29:34 +0900 Subject: [PATCH] [chuni] fix user item being overwritten [api] fix set diva news --- .../sega/chuni/amazon/ApiAmazonController.java | 15 +++++++++------ .../sega/diva/ApiDivaManageController.java | 8 ++++++-- .../chunithm/dao/userdata/UserItemRepository.java | 2 +- .../handler/impl/UpsertUserAllHandler.java | 5 +++-- .../sega/chunithm/service/UserItemService.java | 4 ++-- .../aqua/sega/general/model/PropertyEntry.java | 3 +++ 6 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/chuni/amazon/ApiAmazonController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/chuni/amazon/ApiAmazonController.java index 84c7c6cf..b7f11804 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/chuni/amazon/ApiAmazonController.java +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/chuni/amazon/ApiAmazonController.java @@ -13,7 +13,10 @@ 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 org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.Comparator; @@ -129,11 +132,11 @@ public class ApiAmazonController { return gameMusicService.getAll(); } - @PostMapping("music/import") - public List addMusic(@RequestBody List musicList) { - musicList.forEach(music -> music.getLevels().forEach((integer, level) -> level.setMusic(music))); - return gameMusicService.saveAll(musicList); - } +// @PostMapping("music/import") +// public List addMusic(@RequestBody List 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; diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/diva/ApiDivaManageController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/diva/ApiDivaManageController.java index a9ce7219..f003b116 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/diva/ApiDivaManageController.java +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/diva/ApiDivaManageController.java @@ -113,7 +113,9 @@ public class ApiDivaManageController { @PutMapping("news") public PropertyEntry updateNews(@RequestBody PropertyEntry property) { - PropertyEntry entry = propertyEntryRepository.findByPropertyKey("diva_news").orElseGet(() -> new PropertyEntry("diva_news", property.getPropertyValue())); + PropertyEntry entry = propertyEntryRepository.findByPropertyKey("diva_news") + .orElseGet(() -> new PropertyEntry("diva_news")); + entry.setPropertyValue(property.getPropertyValue()); return propertyEntryRepository.save(entry); } @@ -124,7 +126,9 @@ public class ApiDivaManageController { @PutMapping("warning") public PropertyEntry updateWarning(@RequestBody PropertyEntry property) { - PropertyEntry entry = propertyEntryRepository.findByPropertyKey("diva_warning").orElseGet(() -> new PropertyEntry("diva_warning", property.getPropertyValue())); + PropertyEntry entry = propertyEntryRepository.findByPropertyKey("diva_warning") + .orElseGet(() -> new PropertyEntry("diva_warning")); + entry.setPropertyValue(property.getPropertyValue()); return propertyEntryRepository.save(entry); } diff --git a/src/main/java/icu/samnyan/aqua/sega/chunithm/dao/userdata/UserItemRepository.java b/src/main/java/icu/samnyan/aqua/sega/chunithm/dao/userdata/UserItemRepository.java index 70172c8b..3301186a 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chunithm/dao/userdata/UserItemRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/chunithm/dao/userdata/UserItemRepository.java @@ -15,7 +15,7 @@ import java.util.Optional; @Repository public interface UserItemRepository extends JpaRepository { - Optional findTopByUserAndItemIdOrderByIdDesc(UserData user, int itemId); + Optional findTopByUserAndItemIdAndItemKindOrderByIdDesc(UserData user, int itemId, int itemKind); Page findAllByUser_Card_ExtIdAndItemKind(long extId, int itemKind, Pageable pageable); } diff --git a/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/UpsertUserAllHandler.java index aa0c752e..8ecd24ba 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/UpsertUserAllHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/UpsertUserAllHandler.java @@ -191,16 +191,17 @@ public class UpsertUserAllHandler implements BaseHandler { userItemList.forEach(userItemMap -> { String itemId = (String) userItemMap.get("itemId"); + String itemKind = (String) userItemMap.get("itemKind"); - Optional userItemOptional = userItemService.getByUserAndItemId(newUserData, itemId); + Optional userItemOptional = userItemService.getByUserAndItemId(newUserData, itemId, itemKind); UserItem userItem = userItemOptional.orElseGet(() -> new UserItem(newUserData)); UserItem newUserItem = mapper.convert(userItemMap, UserItem.class); newUserItem.setId(userItem.getId()); newUserItem.setUser(userItem.getUser()); - newUserItemMap.put(itemId, newUserItem); + newUserItemMap.put(itemId + "-" + itemKind, newUserItem); }); userItemService.saveAll(newUserItemMap.values()); } diff --git a/src/main/java/icu/samnyan/aqua/sega/chunithm/service/UserItemService.java b/src/main/java/icu/samnyan/aqua/sega/chunithm/service/UserItemService.java index 4b9ad11f..932f2547 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chunithm/service/UserItemService.java +++ b/src/main/java/icu/samnyan/aqua/sega/chunithm/service/UserItemService.java @@ -25,8 +25,8 @@ public class UserItemService { } - public Optional getByUserAndItemId(UserData user, String itemId) { - return userItemRepository.findTopByUserAndItemIdOrderByIdDesc(user, Integer.parseInt(itemId)); + public Optional getByUserAndItemId(UserData user, String itemId, String itemKind) { + return userItemRepository.findTopByUserAndItemIdAndItemKindOrderByIdDesc(user, Integer.parseInt(itemId), Integer.parseInt(itemKind)); } public UserItem save(UserItem userItem) { diff --git a/src/main/java/icu/samnyan/aqua/sega/general/model/PropertyEntry.java b/src/main/java/icu/samnyan/aqua/sega/general/model/PropertyEntry.java index ca5d0e83..097f98cc 100644 --- a/src/main/java/icu/samnyan/aqua/sega/general/model/PropertyEntry.java +++ b/src/main/java/icu/samnyan/aqua/sega/general/model/PropertyEntry.java @@ -30,4 +30,7 @@ public class PropertyEntry implements Serializable { this.propertyKey = propertyKey; this.propertyValue = propertyValue; } + public PropertyEntry(String propertyKey) { + this.propertyKey = propertyKey; + } }