From d0e727d444bad4176486f43dde1589652f100cb7 Mon Sep 17 00:00:00 2001 From: wish Date: Tue, 20 Feb 2024 18:52:56 +1100 Subject: [PATCH] fix remaining Festa queries --- server/channelserver/handlers_festa.go | 12 ++++++------ server/channelserver/handlers_guild.go | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/server/channelserver/handlers_festa.go b/server/channelserver/handlers_festa.go index 11a0670ef..f833a1f4e 100644 --- a/server/channelserver/handlers_festa.go +++ b/server/channelserver/handlers_festa.go @@ -190,8 +190,8 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { } var blueSouls, redSouls uint32 - s.server.db.QueryRow("SELECT SUM(gc.souls) FROM guild_characters gc INNER JOIN festa_registrations fr ON fr.guild_id = gc.guild_id WHERE fr.team = 'blue'").Scan(&blueSouls) - s.server.db.QueryRow("SELECT SUM(gc.souls) FROM guild_characters gc INNER JOIN festa_registrations fr ON fr.guild_id = gc.guild_id WHERE fr.team = 'red'").Scan(&redSouls) + s.server.db.QueryRow(`SELECT COALESCE(SUM(fs.souls), 0) AS souls FROM festa_registrations fr LEFT JOIN festa_submissions fs ON fr.guild_id = fs.guild_id AND fr.team = 'blue'`).Scan(&blueSouls) + s.server.db.QueryRow(`SELECT COALESCE(SUM(fs.souls), 0) AS souls FROM festa_registrations fr LEFT JOIN festa_submissions fs ON fr.guild_id = fs.guild_id AND fr.team = 'red'`).Scan(&redSouls) bf.WriteUint32(id) for _, timestamp := range timestamps { @@ -210,11 +210,11 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { COALESCE(CASE WHEN COUNT(gc.id) FILTER (WHERE fr.team = 'blue' AND gc.trial_vote = ft.id) > COUNT(gc.id) FILTER (WHERE fr.team = 'red' AND gc.trial_vote = ft.id) - THEN CAST('blue' AS public.festival_colour) + THEN CAST('blue' AS public.festival_color) WHEN COUNT(gc.id) FILTER (WHERE fr.team = 'red' AND gc.trial_vote = ft.id) > COUNT(gc.id) FILTER (WHERE fr.team = 'blue' AND gc.trial_vote = ft.id) - THEN CAST('red' AS public.festival_colour) - END, CAST('none' AS public.festival_colour)) AS monopoly + THEN CAST('red' AS public.festival_color) + END, CAST('none' AS public.festival_color)) AS monopoly FROM public.festa_trials ft LEFT JOIN public.guild_characters gc ON ft.id = gc.trial_vote LEFT JOIN public.festa_registrations fr ON gc.guild_id = fr.guild_id @@ -366,7 +366,7 @@ func handleMsgMhfStateFestaU(s *Session, p mhfpacket.MHFPacket) { return } var souls, exists uint32 - s.server.db.QueryRow("SELECT souls FROM guild_characters WHERE character_id=$1", s.charID).Scan(&souls) + s.server.db.QueryRow(`SELECT COALESCE((SELECT SUM(souls) FROM festa_submissions WHERE character_id=$1), 0)`, s.charID).Scan(&souls) err = s.server.db.QueryRow("SELECT prize_id FROM festa_prizes_accepted WHERE prize_id=0 AND character_id=$1", s.charID).Scan(&exists) bf := byteframe.NewByteFrame() bf.WriteUint32(souls) diff --git a/server/channelserver/handlers_guild.go b/server/channelserver/handlers_guild.go index 7fc90cdf1..9df9dd2c6 100644 --- a/server/channelserver/handlers_guild.go +++ b/server/channelserver/handlers_guild.go @@ -60,7 +60,7 @@ type Guild struct { PugiOutfit3 uint8 `db:"pugi_outfit_3"` PugiOutfits uint32 `db:"pugi_outfits"` Recruiting bool `db:"recruiting"` - FestivalColor FestivalColor `db:"festival_colour"` + FestivalColor FestivalColor `db:"festival_color"` Souls uint32 `db:"souls"` AllianceID uint32 `db:"alliance_id"` Icon *GuildIcon `db:"icon"` @@ -157,7 +157,7 @@ SELECT sub_motto, created_at, leader_id, - lc.name as leader_name, + c.name AS leader_name, comment, COALESCE(pugi_name_1, '') AS pugi_name_1, COALESCE(pugi_name_2, '') AS pugi_name_2, @@ -167,8 +167,8 @@ SELECT pugi_outfit_3, pugi_outfits, recruiting, - COALESCE((SELECT team FROM festa_registrations fr WHERE fr.guild_id = g.id), 'none') AS festival_colour, - (SELECT SUM(souls) FROM guild_characters gc WHERE gc.guild_id = g.id) AS souls, + COALESCE((SELECT team FROM festa_registrations fr WHERE fr.guild_id = g.id), 'none') AS festival_color, + COALESCE((SELECT SUM(fs.souls) FROM festa_submissions fs WHERE fs.guild_id=g.id), 0) AS souls, COALESCE(( SELECT id FROM guild_alliances ga WHERE ga.parent_id = g.id OR @@ -178,8 +178,8 @@ SELECT icon, (SELECT count(1) FROM guild_characters gc WHERE gc.guild_id = g.id) AS member_count FROM guilds g - JOIN guild_characters lgc ON lgc.character_id = leader_id - JOIN characters lc on leader_id = lc.id + JOIN guild_characters gc ON gc.character_id = leader_id + JOIN characters c on leader_id = c.id ` func (guild *Guild) Save(s *Session) error {