From 500e469ee05d149f8da4b57316802cb77636b514 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sun, 5 Jan 2025 19:34:11 -0500 Subject: [PATCH] [F] Fix cmission --- .../aqua/sega/chusan/handler/ChusanApis.kt | 18 ++++++++++++++++++ .../aqua/sega/chusan/model/Chu3Repos.kt | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt index 44d2adc5..8a670697 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanApis.kt @@ -65,6 +65,7 @@ fun ChusanController.chusanInit() { } } + // Introduced in LMN, removed in LMN+ "GetUserCMission" { parsing { UserCMissionResp().apply { missionId = parsing { data["missionId"]!!.int } @@ -76,6 +77,23 @@ fun ChusanController.chusanInit() { } } + // Introduced in LMN+ + "GetUserCMissionList" api@ { + val missions = parsing { (data["userCMissionList"] as List).map { it["missionId"]!!.int } } + val u = db.userData.findByCard_ExtId(uid)() ?: return@api null + + // Return: userId, userCMissionList: [ + // {userId, missionId, point, userCMissionProgressList: [{order, stage, progress}, ...]}, ... + // ] + db.userCMission.findByUserAndMissionIdIn(u, missions).map { + UserCMissionResp().apply { + missionId = it.missionId + point = it.point + userCMissionProgressList = db.userCMissionProgress.findByUserAndMissionId(u, it.missionId) + } + }.let { mapOf("userId" to uid, "userCMissionList" to it) } + } + // Paged user list endpoints "GetUserCardPrintError".paged("userCardPrintErrorList") { db.userCardPrintState.findByUser_Card_ExtIdAndHasCompleted(uid, false) } "GetUserCharacter".paged("userCharacterList") { db.userCharacter.findByUser_Card_ExtId(uid) } diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt index ad81288b..a8841c51 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt @@ -7,7 +7,6 @@ import icu.samnyan.aqua.net.games.GenericUserDataRepo import icu.samnyan.aqua.net.games.GenericUserMusicRepo import icu.samnyan.aqua.net.games.IUserRepo import icu.samnyan.aqua.sega.chusan.model.userdata.* -import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserMusicDetail import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository @@ -121,10 +120,12 @@ interface Chu3UserPlaylogRepo : GenericPlaylogRepo, Chu3UserLinked< interface Chu3UserCMissionRepo : Chu3UserLinked { fun findByUser_Card_ExtIdAndMissionId(extId: Long, missionId: Int): Optional + fun findByUserAndMissionIdIn(user: Chu3UserData, missionIds: Collection): List } interface Chu3UserCMissionProgressRepo : Chu3UserLinked { fun findByUser_Card_ExtIdAndMissionId(extId: Long, missionId: Int): List + fun findByUserAndMissionId(user: Chu3UserData, missionId: Int): List fun findByUser_Card_ExtIdAndMissionIdAndOrder(extId: Long, missionId: Int, order: Int): Optional }