From d73e02e327a3439b046130cdfb8c610321ab95fd Mon Sep 17 00:00:00 2001 From: Dom Eori <4j6dq2zi8@relay.firefox.com> Date: Thu, 16 Sep 2021 14:08:59 +0900 Subject: [PATCH] [maimai2] Avoid playlog saving on first entry session related: 0cf5039edeb9f2ab208d6326365b88b135c3bcfb --- .../handler/impl/UploadUserPlaylogHandler.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UploadUserPlaylogHandler.java b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UploadUserPlaylogHandler.java index ae9f58f7..728904bf 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UploadUserPlaylogHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/impl/UploadUserPlaylogHandler.java @@ -39,11 +39,20 @@ public class UploadUserPlaylogHandler implements BaseHandler { UploadUserPlaylog uploadUserPlaylog = mapper.convert(request, UploadUserPlaylog.class); Optional userOptional = userDataRepository.findByCard_ExtId(uploadUserPlaylog.getUserId()); - UserDetail userDetail = userOptional.orElseThrow(); - UserPlaylog userPlaylog = uploadUserPlaylog.getUserPlaylog(); - userPlaylog.setUser(userDetail); - userPlaylogRepository.save(userPlaylog); + /* + Due to how we handle userId, first user playlog can't be saved. + (sequence order swapped, it sends playlog then user detail) + It might be possible to fix this with some workaround, but leave it like this at this time. + */ + if (userOptional.isPresent()) { + UserDetail userDetail = userOptional.get(); + + UserPlaylog userPlaylog = uploadUserPlaylog.getUserPlaylog(); + + userPlaylog.setUser(userDetail); + userPlaylogRepository.save(userPlaylog); + } return "{\"returnCode\":1,\"apiName\":\"com.sega.maimai2servlet.api.UploadUserPlaylogApi\"}"; }