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