$extra_columns .= q{
,gov, p.value - p.size*200 -
COALESCE(ps.metal+ps.crystal+ps.eonium,0)/150 -
- COALESCE(ss.total ,(SELECT COALESCE(avg(total),0)
- FROM structure_scans)::int)*1500 AS fleetvalue
+ COALESCE(ds.total ,(SELECT COALESCE(avg(total),0)
+ FROM current_development_scans)::int)*1500 AS fleetvalue
,(metal+crystal+eonium)/100 AS resvalue
};
}
- $query = $dbh->prepare(qq{SELECT p.id,coords(x,y,z), ruler, p.planet,race,
+ $query = $dbh->prepare(qq{SELECT DISTINCT ON (x,y,z,p.id)
+ p.id,coords(x,y,z), ruler, p.planet,race,
size, size_gain, size_gain_day,
score,score_gain,score_gain_day,
value,value_gain,value_gain_day,
valuerank,valuerank_gain,valuerank_gain_day,
xprank,xprank_gain,xprank_gain_day
$extra_columns
- FROM current_planet_stats_full p
+ FROM current_planet_stats_full p
LEFT OUTER JOIN planet_scans ps ON p.id = ps.planet
- LEFT OUTER JOIN structure_scans ss ON p.id = ss.planet
- WHERE x = ? AND y = ? AND COALESCE(z = ?,TRUE) ORDER BY x,y,z ASC
+ LEFT OUTER JOIN current_development_scans ds ON p.id = ds.planet
+ WHERE x = ? AND y = ? AND COALESCE(z = ?,TRUE)
+ ORDER BY x,y,z,p.id,ps.tick DESC, ps.id DESC, ds.tick DESC, ds.id DESC
});
$query->execute($x,$y,$z);
}
if ($c->check_user_roles(qw/stats_planetdata/)){
- my $query = $dbh->prepare(q{SELECT DISTINCT ON(rid) tick,category,name,amount
- FROM planet_data pd JOIN planet_data_types pdt ON pd.rid = pdt.id
- WHERE pd.id = $1 ORDER BY rid,tick DESC
- });
- $query->execute($id);
- $c->stash(planetdata => $query->fetchall_arrayref({}) );
+ $c->stash(planetscan => $dbh->selectrow_hashref(q{SELECT *
+ FROM current_planet_scans WHERE planet = $1},undef,$id));
+ $c->stash(devscan => $dbh->selectrow_hashref(q{SELECT *
+ FROM current_development_scans WHERE planet = $1},undef,$id));
}
my $query = $dbh->prepare(q{SELECT value,value_gain AS gain,tick FROM planet_stats