aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-24 11:41:32 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-24 11:41:32 +0300
commitc987c7605784b720c2dc6e0f77a4df48715bc6a2 (patch)
treebd9137e147fb3fdc98b47c779c7b734bc258ee2b /backend
parentfrontend: change host/partner to blue/orange (diff)
downloadlphub-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.go48
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()))