From 45750b099f41df59b22932992620a70c4e09412e Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 2 Feb 2023 23:06:19 +0300 Subject: fix: only show top record of a person in the map rankings (obviously) shoutout chatgpt --- backend/controllers/mapController.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'backend/controllers/mapController.go') diff --git a/backend/controllers/mapController.go b/backend/controllers/mapController.go index 53fb18c..4c57971 100644 --- a/backend/controllers/mapController.go +++ b/backend/controllers/mapController.go @@ -34,7 +34,13 @@ func FetchMap(c *gin.Context) { if mapData.IsCoop { var records []models.RecordMP sql = `SELECT id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date - FROM records_mp WHERE map_id = $1 ORDER BY score_count, score_time;` + FROM ( + SELECT id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date, + ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY score_count, score_time) AS rn + FROM records_mp + WHERE map_id = $1 + ) sub + WHERE rn = 1;` rows, err := database.DB.Query(sql, id) if err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) @@ -62,7 +68,13 @@ func FetchMap(c *gin.Context) { } else { var records []models.RecordSP sql = `SELECT id, user_id, score_count, score_time, demo_id, record_date - FROM records_sp WHERE map_id = $1 ORDER BY score_count, score_time;` + FROM ( + SELECT id, user_id, score_count, score_time, demo_id, record_date, + ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY score_count, score_time) AS rn + FROM records_sp + WHERE map_id = $1 + ) sub + WHERE rn = 1;` rows, err := database.DB.Query(sql, id) if err != nil { c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) @@ -95,3 +107,7 @@ func FetchMap(c *gin.Context) { Data: mapData, }) } + +func CreateMapCommunity(c *gin.Context) { + +} -- cgit v1.2.3