[F] Fix cmission

pull/103/head
Azalea 2025-01-05 19:34:11 -05:00
parent cf7af0ff34
commit 500e469ee0
2 changed files with 20 additions and 1 deletions

View File

@ -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<JDict>).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) }

View File

@ -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<UserPlaylog>, Chu3UserLinked<
interface Chu3UserCMissionRepo : Chu3UserLinked<UserCMission> {
fun findByUser_Card_ExtIdAndMissionId(extId: Long, missionId: Int): Optional<UserCMission>
fun findByUserAndMissionIdIn(user: Chu3UserData, missionIds: Collection<Int>): List<UserCMission>
}
interface Chu3UserCMissionProgressRepo : Chu3UserLinked<UserCMissionProgress> {
fun findByUser_Card_ExtIdAndMissionId(extId: Long, missionId: Int): List<UserCMissionProgress>
fun findByUserAndMissionId(user: Chu3UserData, missionId: Int): List<UserCMissionProgress>
fun findByUser_Card_ExtIdAndMissionIdAndOrder(extId: Long, missionId: Int, order: Int): Optional<UserCMissionProgress>
}