From: Michael Andreen Date: Sun, 12 Jul 2009 11:37:39 +0000 (+0200) Subject: Show when the gal was last raided X-Git-Url: https://ruin.nu/git/?p=ndwebbie.git;a=commitdiff_plain;h=2d3a66913c76c8d333f53a6b5c64d91b3e594f6b Show when the gal was last raided --- diff --git a/lib/NDWeb/Controller/Stats.pm b/lib/NDWeb/Controller/Stats.pm index b257840..add0292 100644 --- a/lib/NDWeb/Controller/Stats.pm +++ b/lib/NDWeb/Controller/Stats.pm @@ -33,23 +33,40 @@ sub galaxy : Local { my ( $self, $c, $x, $y, $z ) = @_; my $dbh = $c->model; - my $query = $dbh->prepare(q{SELECT x,y, - size, size_gain, size_gain_day, - score,score_gain,score_gain_day, - value,value_gain,value_gain_day, - xp,xp_gain,xp_gain_day, - sizerank,sizerank_gain,sizerank_gain_day, - scorerank,scorerank_gain,scorerank_gain_day, - valuerank,valuerank_gain,valuerank_gain_day, - xprank,xprank_gain,xprank_gain_day, - planets,planets_gain,planets_gain_day - ,ticks_roiding, ticks_roided - FROM galaxies g - JOIN (SELECT x,y,count(CASE WHEN size_gain > 0 THEN 1 ELSE NULL END) AS ticks_roiding + my $query = $dbh->prepare(q{ +SELECT x,y + ,size, size_gain, size_gain_day + ,score,score_gain,score_gain_day + ,value,value_gain,value_gain_day + ,xp,xp_gain,xp_gain_day + ,sizerank,sizerank_gain,sizerank_gain_day + ,scorerank,scorerank_gain,scorerank_gain_day + ,valuerank,valuerank_gain,valuerank_gain_day + ,xprank,xprank_gain,xprank_gain_day + ,planets,planets_gain,planets_gain_day + ,ticks_roiding, ticks_roided + ,raid.tick AS last_raid, raid +FROM galaxies g + JOIN (SELECT x,y,count(CASE WHEN size_gain > 0 THEN 1 ELSE NULL END) AS ticks_roiding ,count(CASE WHEN size_gain < 0 THEN 1 ELSE NULL END) AS ticks_roided - FROM galaxies GROUP BY x,y) ga USING (x,y) - WHERE tick = ( SELECT max(tick) AS max FROM galaxies) - AND x = $1 AND y = $2 + FROM galaxies GROUP BY x,y) ga USING (x,y) + LEFT OUTER JOIN ( + SELECT DISTINCT ON (x,y) x,y,raid, tick + FROM ( + SELECT raid,p.tick,x,y,count(*), sum(size) AS size + FROM raids r + JOIN raid_targets rt ON r.id = rt.raid + JOIN planet_stats p ON p.id = rt.planet AND p.tick = r.tick-12 + WHERE x = $1 and y = $2 + GROUP BY raid,p.tick,x,y + ) AS a + JOIN galaxies g USING (tick,x,y) + WHERE a.count::float / g.planets >= 0.5 + ORDER BY x,y,tick + ) AS raid USING (x,y) + +WHERE g.tick = ( SELECT max(tick) AS max FROM galaxies) + AND x = $1 AND y = $2; }); $query->execute($x,$y); diff --git a/root/lib/inc/stats.tt2 b/root/lib/inc/stats.tt2 index 29223ec..2b714a9 100644 --- a/root/lib/inc/stats.tt2 +++ b/root/lib/inc/stats.tt2 @@ -15,6 +15,7 @@ XP Roided Roiding + [% IF intel %]Last raid (tick)[% END %] [% g.sizerankimg = (g.sizerank_gain_day == 0 ? 'stay' : (g.sizerank_gain_day < 0 ? 'up' : 'down')) %] @@ -38,6 +39,7 @@ [% g.xp | commify %] [% g.xpimg %] [% g.ticks_roided %] [% g.ticks_roiding %] + [% IF intel %][% IF g.raid %][% g.raid %] ([% g.last_raid %])[% ELSE %]No raid[% END %][% END %] [% END %]