From 1421d55a5610c8aabdb7dc927b3d0700e4d9f7d8 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Fri, 17 Jan 2025 10:25:04 -0500 Subject: [PATCH] [F] Fix duplicate uploads --- .../aqua/sega/maimai2/handler/UploadUserPlaylogHandler.kt | 8 ++++++++ .../java/icu/samnyan/aqua/sega/maimai2/model/Repos.kt | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UploadUserPlaylogHandler.kt b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UploadUserPlaylogHandler.kt index 6f9c7a36..d12a6ddd 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UploadUserPlaylogHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/handler/UploadUserPlaylogHandler.kt @@ -43,6 +43,14 @@ class UploadUserPlaylogHandler( ).increment() } + // Check duplicate + val isDup = playlogRepo.findByUser_Card_ExtIdAndMusicIdAndUserPlayDate( + req.userId, + req.userPlaylog.musicId, + req.userPlaylog.userPlayDate + ).size > 0 + if (isDup) return """{"returnCode":1,"apiName":"com.sega.maimai2servlet.api.UploadUserPlaylogApi"}""" + // Save if the user is registered val u = userDataRepository.findByCardExtId(req.userId).getOrNull() if (u != null) playlogRepo.save(req.userPlaylog.apply { user = u }) diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/Repos.kt b/src/main/java/icu/samnyan/aqua/sega/maimai2/model/Repos.kt index 55113794..6d130c44 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/Repos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/model/Repos.kt @@ -99,6 +99,11 @@ interface Mai2UserOptionRepo : Mai2UserLinked interface Mai2UserPlaylogRepo : GenericPlaylogRepo, Mai2UserLinked { fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List + fun findByUser_Card_ExtIdAndMusicIdAndUserPlayDate( + userCardExtId: Long, + musicId: Int, + userPlayDate: String + ): MutableList } interface Mai2UserPrintDetailRepo : JpaRepository