mirror of
https://github.com/MewoLab/AquaDX.git
synced 2026-02-10 02:27:26 +08:00
[F] Fix ongeki upsert all: UserData might be empty list
This commit is contained in:
@@ -98,28 +98,38 @@ public class UpsertUserAllHandler implements BaseHandler {
|
|||||||
|
|
||||||
// All the field should exist, no need to check now.
|
// All the field should exist, no need to check now.
|
||||||
// UserData
|
// UserData
|
||||||
UserData userData;
|
UserData newUserData;
|
||||||
UserData newUserData = upsertUserAll.getUserData().get(0);
|
{
|
||||||
|
UserData userData;
|
||||||
|
|
||||||
Optional<UserData> userOptional = userDataRepository.findByCard_ExtId(userId);
|
Optional<UserData> userOptional = userDataRepository.findByCard_ExtId(userId);
|
||||||
|
|
||||||
if (userOptional.isPresent()) {
|
// UserData might be empty on later runs
|
||||||
userData = userOptional.get();
|
if (userOptional.isEmpty() && upsertUserAll.getUserData().isEmpty()) {
|
||||||
} else {
|
return null;
|
||||||
userData = new UserData();
|
}
|
||||||
Card card = cardService.getCardByExtId(userId).orElseThrow();
|
|
||||||
userData.setCard(card);
|
if (userOptional.isPresent()) {
|
||||||
|
userData = userOptional.get();
|
||||||
|
} else {
|
||||||
|
userData = new UserData();
|
||||||
|
Card card = cardService.getCardByExtId(userId).orElseThrow();
|
||||||
|
userData.setCard(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If new data exists, use new data. Otherwise, use old data
|
||||||
|
newUserData = !upsertUserAll.getUserData().isEmpty() ? upsertUserAll.getUserData().get(0) : userData;
|
||||||
|
|
||||||
|
newUserData.setId(userData.getId());
|
||||||
|
newUserData.setCard(userData.getCard());
|
||||||
|
|
||||||
|
// Set eventWatchedDate with lastPlayDate, because client doesn't update it
|
||||||
|
newUserData.setEventWatchedDate(userData.getLastPlayDate());
|
||||||
|
newUserData.setCmEventWatchedDate(userData.getLastPlayDate());
|
||||||
|
|
||||||
|
userDataRepository.save(newUserData);
|
||||||
}
|
}
|
||||||
|
|
||||||
newUserData.setId(userData.getId());
|
|
||||||
newUserData.setCard(userData.getCard());
|
|
||||||
|
|
||||||
// Set eventWatchedDate with lastPlayDate, because client doesn't update it
|
|
||||||
newUserData.setEventWatchedDate(userData.getLastPlayDate());
|
|
||||||
newUserData.setCmEventWatchedDate(userData.getLastPlayDate());
|
|
||||||
|
|
||||||
userDataRepository.save(newUserData);
|
|
||||||
|
|
||||||
|
|
||||||
// UserOption
|
// UserOption
|
||||||
UserOption newUserOption = upsertUserAll.getUserOption().get(0);
|
UserOption newUserOption = upsertUserAll.getUserOption().get(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user