diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2024-10-24 11:41:32 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2024-10-24 11:41:32 +0300 |
| commit | c987c7605784b720c2dc6e0f77a4df48715bc6a2 (patch) | |
| tree | bd9137e147fb3fdc98b47c779c7b734bc258ee2b /backend | |
| parent | frontend: change host/partner to blue/orange (diff) | |
| download | lphub-c987c7605784b720c2dc6e0f77a4df48715bc6a2.tar.gz lphub-c987c7605784b720c2dc6e0f77a4df48715bc6a2.tar.bz2 lphub-c987c7605784b720c2dc6e0f77a4df48715bc6a2.zip | |
backend: fix user completion count
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/handlers/user.go | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/backend/handlers/user.go b/backend/handlers/user.go index ea96732..dc058c8 100644 --- a/backend/handlers/user.go +++ b/backend/handlers/user.go | |||
| @@ -98,19 +98,19 @@ func Profile(c *gin.Context) { | |||
| 98 | } | 98 | } |
| 99 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal | 99 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal |
| 100 | // Get user completion count | 100 | // Get user completion count |
| 101 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) | 101 | sql = `SELECT 'records_sp' AS table_name, COUNT(*) FROM ( |
| 102 | FROM records_sp sp JOIN ( | 102 | SELECT sp.map_id FROM records_sp sp JOIN ( |
| 103 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 103 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 104 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 104 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count |
| 105 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count | 105 | WHERE sp.user_id = $1 AND sp.is_deleted = false GROUP BY sp.map_id |
| 106 | WHERE sp.user_id = $1 AND sp.is_deleted = false | 106 | ) AS unique_maps |
| 107 | UNION ALL | 107 | UNION ALL |
| 108 | SELECT 'records_mp' AS table_name, COUNT(mp.id) | 108 | SELECT 'records_mp' AS table_name, COUNT(*) FROM ( |
| 109 | FROM public.records_mp mp JOIN ( | 109 | SELECT mp.map_id FROM records_mp mp JOIN ( |
| 110 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 110 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 111 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 111 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count |
| 112 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count | 112 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false GROUP BY mp.map_id |
| 113 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false` | 113 | ) AS unique_maps` |
| 114 | rows, err := database.DB.Query(sql, user.(models.User).SteamID) | 114 | rows, err := database.DB.Query(sql, user.(models.User).SteamID) |
| 115 | if err != nil { | 115 | if err != nil { |
| 116 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 116 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |
| @@ -476,19 +476,19 @@ func FetchUser(c *gin.Context) { | |||
| 476 | } | 476 | } |
| 477 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal | 477 | rankings.Overall.CompletionTotal = rankings.Singleplayer.CompletionTotal + rankings.Cooperative.CompletionTotal |
| 478 | // Get user completion count | 478 | // Get user completion count |
| 479 | sql = `SELECT 'records_sp' AS table_name, COUNT(sp.id) | 479 | sql = `SELECT 'records_sp' AS table_name, COUNT(*) FROM ( |
| 480 | FROM records_sp sp JOIN ( | 480 | SELECT sp.map_id FROM records_sp sp JOIN ( |
| 481 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 481 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 482 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 482 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count |
| 483 | ) AS subquery_sp ON sp.map_id = subquery_sp.map_id AND sp.score_count = subquery_sp.min_score_count | 483 | WHERE sp.user_id = $1 AND sp.is_deleted = false GROUP BY sp.map_id |
| 484 | WHERE sp.user_id = $1 AND sp.is_deleted = false | 484 | ) AS unique_maps |
| 485 | UNION ALL | 485 | UNION ALL |
| 486 | SELECT 'records_mp' AS table_name, COUNT(mp.id) | 486 | SELECT 'records_mp' AS table_name, COUNT(*) FROM ( |
| 487 | FROM public.records_mp mp JOIN ( | 487 | SELECT mp.map_id FROM records_mp mp JOIN ( |
| 488 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count | 488 | SELECT mh.map_id, MIN(mh.score_count) AS min_score_count FROM map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id |
| 489 | FROM public.map_history mh WHERE mh.category_id = 1 GROUP BY mh.map_id | 489 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count |
| 490 | ) AS subquery_mp ON mp.map_id = subquery_mp.map_id AND mp.score_count = subquery_mp.min_score_count | 490 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false GROUP BY mp.map_id |
| 491 | WHERE (mp.host_id = $1 OR mp.partner_id = $1) AND mp.is_deleted = false` | 491 | ) AS unique_maps` |
| 492 | rows, err = database.DB.Query(sql, user.SteamID) | 492 | rows, err = database.DB.Query(sql, user.SteamID) |
| 493 | if err != nil { | 493 | if err != nil { |
| 494 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) | 494 | c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) |