diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-02-02 23:06:19 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-02-02 23:06:19 +0300 |
| commit | 45750b099f41df59b22932992620a70c4e09412e (patch) | |
| tree | fdfad5ac2b4735b2740b6638049295b43f2575e9 | |
| parent | feat: refresh/update user via steam (#30) (diff) | |
| download | lphub-45750b099f41df59b22932992620a70c4e09412e.tar.gz lphub-45750b099f41df59b22932992620a70c4e09412e.tar.bz2 lphub-45750b099f41df59b22932992620a70c4e09412e.zip | |
fix: only show top record of a person in the map rankings (obviously) shoutout chatgpt
| -rw-r--r-- | backend/controllers/mapController.go | 20 |
1 files changed, 18 insertions, 2 deletions
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) { | |||
| 34 | if mapData.IsCoop { | 34 | if mapData.IsCoop { |
| 35 | var records []models.RecordMP | 35 | var records []models.RecordMP |
| 36 | sql = `SELECT id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date | 36 | sql = `SELECT id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date |
| 37 | FROM records_mp WHERE map_id = $1 ORDER BY score_count, score_time;` | 37 | FROM ( |
| 38 | SELECT id, host_id, partner_id, score_count, score_time, host_demo_id, partner_demo_id, record_date, | ||
| 39 | ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY score_count, score_time) AS rn | ||
| 40 | FROM records_mp | ||
| 41 | WHERE map_id = $1 | ||
| 42 | ) sub | ||
| 43 | WHERE rn = 1;` | ||
| 38 | rows, err := database.DB.Query(sql, id) | 44 | rows, err := database.DB.Query(sql, id) |
| 39 | if err != nil { | 45 | if err != nil { |
| 40 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 46 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| @@ -62,7 +68,13 @@ func FetchMap(c *gin.Context) { | |||
| 62 | } else { | 68 | } else { |
| 63 | var records []models.RecordSP | 69 | var records []models.RecordSP |
| 64 | sql = `SELECT id, user_id, score_count, score_time, demo_id, record_date | 70 | sql = `SELECT id, user_id, score_count, score_time, demo_id, record_date |
| 65 | FROM records_sp WHERE map_id = $1 ORDER BY score_count, score_time;` | 71 | FROM ( |
| 72 | SELECT id, user_id, score_count, score_time, demo_id, record_date, | ||
| 73 | ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY score_count, score_time) AS rn | ||
| 74 | FROM records_sp | ||
| 75 | WHERE map_id = $1 | ||
| 76 | ) sub | ||
| 77 | WHERE rn = 1;` | ||
| 66 | rows, err := database.DB.Query(sql, id) | 78 | rows, err := database.DB.Query(sql, id) |
| 67 | if err != nil { | 79 | if err != nil { |
| 68 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) | 80 | c.JSON(http.StatusBadRequest, models.ErrorResponse(err.Error())) |
| @@ -95,3 +107,7 @@ func FetchMap(c *gin.Context) { | |||
| 95 | Data: mapData, | 107 | Data: mapData, |
| 96 | }) | 108 | }) |
| 97 | } | 109 | } |
| 110 | |||
| 111 | func CreateMapCommunity(c *gin.Context) { | ||
| 112 | |||
| 113 | } | ||