diff --git a/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt b/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt index 05b184c..92986be 100644 --- a/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt +++ b/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt @@ -39,7 +39,43 @@ class ScoreService( } fun getReplayData(replayId: Long): ReplayData? { - val result = dslContext.select(DSL.asterisk()) + val result = dslContext.select( + SCORES.ID, + SCORES.USER_ID, + USERS.USERNAME, + SCORES.DATE, + BEATMAPS.BEATMAP_ID, + BEATMAPS.BEATMAPSET_ID, + BEATMAPS.ARTIST, + BEATMAPS.TITLE, + BEATMAPS.STAR_RATING, + BEATMAPS.CREATOR, + BEATMAPS.VERSION, + SCORES.PP, + SCORES.FRAMETIME, + SCORES.UR, + SCORES.ADJUSTED_UR, + SCORES.SCORE, + SCORES.MODS, + SCORES.RANK, + SCORES.SNAPS, + SCORES.EDGE_HITS, + SCORES.PERFECT, + SCORES.MAX_COMBO, + SCORES.COUNT_300, + SCORES.COUNT_100, + SCORES.COUNT_50, + SCORES.COUNT_MISS, + SCORES.MEAN_ERROR, + SCORES.ERROR_VARIANCE, + SCORES.ERROR_STANDARD_DEVIATION, + SCORES.MINIMUM_ERROR, + SCORES.MAXIMUM_ERROR, + SCORES.ERROR_RANGE, + SCORES.ERROR_COEFFICIENT_OF_VARIATION, + SCORES.ERROR_KURTOSIS, + SCORES.ERROR_SKEWNESS + ) .from(SCORES) .join(USERS).on(SCORES.USER_ID.eq(USERS.USER_ID)) .join(BEATMAPS).on(SCORES.BEATMAP_ID.eq(BEATMAPS.BEATMAP_ID)) @@ -101,7 +137,19 @@ class ScoreService( } fun getSuspiciousScores(condition: Condition = getDefaultCondition()): List { - val result = dslContext.select(DSL.asterisk()) + val result = dslContext.select( + SCORES.USER_ID, + USERS.USERNAME, + SCORES.REPLAY_ID, + SCORES.DATE, + BEATMAPS.BEATMAP_ID, + BEATMAPS.BEATMAPSET_ID, + BEATMAPS.TITLE, + BEATMAPS.STAR_RATING, + SCORES.PP, + SCORES.FRAMETIME, + SCORES.UR + ) .from(SCORES) .join(USERS).on(SCORES.USER_ID.eq(USERS.USER_ID)) .join(BEATMAPS).on(SCORES.BEATMAP_ID.eq(BEATMAPS.BEATMAP_ID)) @@ -161,9 +209,25 @@ class ScoreService( ) } - fun getSimilarReplaysRecords(condition: Condition = DSL.noCondition(), includeBanned: Boolean = false): Result { + fun getSimilarReplaysRecords(condition: Condition = DSL.noCondition(), includeBanned: Boolean = false): List { return dslContext - .select() + .select( + osuScoreAlias1.REPLAY_ID, + osuScoreAlias1.USER_ID, + osuUserAlias1.USERNAME, + osuScoreAlias1.DATE, + osuScoreAlias1.PP, + osuScoreAlias2.REPLAY_ID, + osuScoreAlias2.USER_ID, + osuUserAlias2.USERNAME, + osuScoreAlias2.DATE, + osuScoreAlias2.PP, + BEATMAPS.BEATMAP_ID, + BEATMAPS.TITLE, + BEATMAPS.STAR_RATING, + BEATMAPS.BEATMAPSET_ID, + SCORES_SIMILARITY.SIMILARITY + ) .from(SCORES_SIMILARITY) .join(osuScoreAlias1).on(osuScoreAlias1.REPLAY_ID.eq(SCORES_SIMILARITY.REPLAY_ID_1)) .join(osuUserAlias1).on(osuScoreAlias1.USER_ID.eq(osuUserAlias1.USER_ID)) @@ -198,7 +262,7 @@ class ScoreService( return mapSimilarReplays(replays) } - private fun mapSimilarReplays(replays: Result) = replays.map { + private fun mapSimilarReplays(replays: List) = replays.map { // Extract necessary fields var replayId1 = it.get(osuScoreAlias1.REPLAY_ID, Long::class.java) var replayId2 = it.get(osuScoreAlias2.REPLAY_ID, Long::class.java)