X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=lib%2FNDWeb%2FController%2FAlliances.pm;h=d8b332017ae86043c314566bd25eca325274bba7;hb=HEAD;hp=5f3372655474d454f355131c6ebd0c58d0390372;hpb=07aec9f5f20e4a605d65bbe2337a05663c0b16e7;p=ndwebbie.git diff --git a/lib/NDWeb/Controller/Alliances.pm b/lib/NDWeb/Controller/Alliances.pm index 5f33726..d8b3320 100644 --- a/lib/NDWeb/Controller/Alliances.pm +++ b/lib/NDWeb/Controller/Alliances.pm @@ -107,6 +107,49 @@ ORDER BY tick DESC, mission $c->stash(intel => $query->fetchall_arrayref({}) ); } + +sub pscans : Local { + my ( $self, $c, $id ) = @_; + my $dbh = $c->model; + + my $members = $dbh->prepare(q{ + SELECT pid AS id, coords(x,y,z), metal, crystal, eonium, ps.tick + ,planet_status,hit_us, sizerank, scorerank, valuerank, xprank + FROM current_planet_stats p left outer join current_planet_scans ps using (pid) + WHERE p.aid = ? + ORDER BY x,y,z + }); + $members->execute($id); + $c->stash(members => $members->fetchall_arrayref({}) ); + +} + +sub fleet : Local { + my ( $self, $c, $id ) = @_; + my $dbh = $c->model; + + my $query = $dbh->prepare(q{SELECT ship, id FROM ship_stats WHERE id >= 0 ORDER BY id ASC;}); + $query->execute; + $c->stash(ships => $query->fetchall_arrayref({})); + + my $members = $dbh->prepare(q{ +WITH +aus AS (SELECT DISTINCT ON (pid) pid, fid, name,tick + FROM fleets f join fleet_scans fs using (fid) + WHERE mission = 'Full fleet' and name IN ('Advanced Unit', 'Military') + ORDER BY pid,tick DESC) +,ships AS (SELECT pid, tick, ship, amount, id AS ship_id + FROM fleet_ships fs JOIN aus USING(fid) JOIN ship_stats USING(ship)) +SELECT pid, coords(x,y,z), p.race, tick, jsonb_object_agg(ship_id, amount) AS ships + FROM ships JOIN current_planet_stats p USING (pid) + WHERE p.aid = $1 + GROUP BY x,y,z,pid,race,tick; + }); + $members->execute($id); + $c->stash(members => $members->fetchall_arrayref({}) ); + +} + sub postallianceupdate : Local { my ( $self, $c, $id, $order ) = @_; my $dbh = $c->model; @@ -189,12 +232,8 @@ sub hostile : Local { } my $query = $dbh->prepare(q{ - SELECT s.aid AS id,s.alliance AS name,count(*) AS hostile_count -FROM calls c - JOIN incomings i USING (call) - JOIN current_planet_stats s USING (pid) -WHERE c.landing_tick - i.eta > $1 and c.landing_tick - i.eta < $2 -GROUP BY s.aid,s.alliance +SELECT aid, alliance, hostile_count, targeted, targeted_raids +FROM hostile_alliances($1,$2) ORDER BY hostile_count DESC }); $query->execute($begintick,$endtick);