X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=lib%2FNDWeb%2FController%2FCalls.pm;h=eca27be3fcc9f6431e06c966fe328aa776313fbb;hb=e3d87e31652374c184db31c915814f8bc4d7cbd4;hp=cf468a88aaaa4701ed3730d5f883879e32997277;hpb=6e1e01771cd86b3b58f4932aacb0cc496b5c376d;p=ndwebbie.git diff --git a/lib/NDWeb/Controller/Calls.pm b/lib/NDWeb/Controller/Calls.pm index cf468a8..eca27be 100644 --- a/lib/NDWeb/Controller/Calls.pm +++ b/lib/NDWeb/Controller/Calls.pm @@ -205,6 +205,28 @@ sub edit : Local { $c->forward('/forum/findPosts',[$call->{ftid}]); } +sub defleeches : Local { + my ( $self, $c, $type ) = @_; + my $dbh = $c->model; + + my $query = $dbh->prepare(q{SELECT username,defense_points,count(id) AS calls + , SUM(fleets) AS fleets, SUM(recalled) AS recalled + FROM (SELECT username,defense_points,c.id,count(f.target) AS fleets + , count(NULLIF(f.tick + f.eta -1 = f.back,TRUE)) AS recalled + FROM users u JOIN calls c ON c.member = u.uid + LEFT OUTER JOIN fleets f ON u.planet = f.target + AND c.landing_tick = f.tick + WHERE (f.mission = 'Defend' AND f.uid > 0 AND f.back IS NOT NULL AND NOT ingal) + OR f.target IS NULL + GROUP BY username,defense_points,c.id + ) d + GROUP BY username,defense_points ORDER BY fleets DESC, defense_points + }); + $query->execute; + + $c->stash(members => $query->fetchall_arrayref({}) ); +} + sub postcallcomment : Local { my ($self, $c, $call) = @_;