X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=lib%2FNDWeb%2FController%2FIntel.pm;h=015fe339d6b9ce1ed1672ccca0869dd4fe2bb589;hb=68829839b9031bf91844f5d5a3b516792bf1697f;hp=388204bd5a74a583b74a6395b255c62949fbc563;hpb=b6d8351387cf06b88e362a458aad1e0982e575dd;p=ndwebbie.git diff --git a/lib/NDWeb/Controller/Intel.pm b/lib/NDWeb/Controller/Intel.pm index 388204b..015fe33 100644 --- a/lib/NDWeb/Controller/Intel.pm +++ b/lib/NDWeb/Controller/Intel.pm @@ -227,17 +227,17 @@ sub members : Local { ,count(CASE WHEN i.mission = 'Attack' THEN 1 ELSE NULL END) AS attacks ,count(CASE WHEN (i.mission = 'Defend' OR i.mission = 'AllyDef') THEN 1 ELSE NULL END) AS defenses ,count(CASE WHEN i.mission = 'Attack' AND rt.id IS NULL THEN 1 ELSE NULL END) AS solo - ,count(CASE WHEN i.mission = 'Defend' OR i.mission = 'AllyDef' THEN NULLIF(i.ingal OR (t.alliance_id = 1),TRUE) ELSE NULL END) AS bad_def + ,count(CASE WHEN i.mission = 'Defend' OR i.mission = 'AllyDef' THEN NULLIF(i.ingal OR (t.alliance = 'NewDawn'),TRUE) ELSE NULL END) AS bad_def FROM users u JOIN groupmembers gm USING (uid) - LEFT OUTER JOIN (SELECT DISTINCT ON (planet) planet,tick from scans where type = 'News' ORDER BY planet,tick DESC) n USING (planet) - LEFT OUTER JOIN (SELECT DISTINCT name,eta,tick,sender,target,mission,ingal FROM intel WHERE amount IS NULL) i ON i.sender = u.planet - LEFT OUTER JOIN current_planet_stats t ON i.target = t.id - LEFT OUTER JOIN (SELECT rt.id,planet,tick FROM raids r - JOIN raid_targets rt ON r.id = rt.raid) rt ON rt.planet = i.target - AND (rt.tick + 12) > i.tick AND rt.tick <= i.tick + LEFT OUTER JOIN (SELECT DISTINCT ON (pid) pid,tick from scans where type = 'News' ORDER BY pid,tick DESC) n USING (pid) + LEFT OUTER JOIN (SELECT DISTINCT name,eta,tick,sender,target,mission,ingal FROM intel WHERE amount IS NULL) i ON i.sender = u.pid + LEFT OUTER JOIN current_planet_stats t ON i.target = t.pid + LEFT OUTER JOIN (SELECT rt.id,pid,tick FROM raids r + JOIN raid_targets rt ON r.id = rt.raid) rt ON rt.pid = i.target + AND (rt.tick + 12) > i.tick AND rt.tick <= i.tick LEFT OUTER JOIN raid_claims rc ON rt.id = rc.target AND rc.uid = u.uid AND i.tick = rt.tick + rc.wave - 1 - WHERE gm.gid = 2 + WHERE gm.gid = 'M' GROUP BY u.uid,u.username,u.attack_points, u.defense_points,n.tick ORDER BY }. " $order DESC" ); $query->execute; @@ -251,16 +251,16 @@ sub member : Local { my $query = $dbh->prepare(q{ SELECT coords(t.x,t.y,t.z), i.eta, i.tick, rt.id AS ndtarget, rc.launched, inc.landing_tick FROM users u - LEFT OUTER JOIN (SELECT DISTINCT eta,tick,sender,target,mission,name FROM intel WHERE amount IS NULL) i ON i.sender = u.planet - LEFT OUTER JOIN current_planet_stats t ON i.target = t.id - LEFT OUTER JOIN (SELECT rt.id,planet,tick FROM raids r - JOIN raid_targets rt ON r.id = rt.raid) rt ON rt.planet = i.target - AND (rt.tick + 12) > i.tick AND rt.tick <= i.tick + LEFT OUTER JOIN (SELECT DISTINCT eta,tick,sender,target,mission,name FROM intel WHERE amount IS NULL) i ON i.sender = u.pid + LEFT OUTER JOIN current_planet_stats t ON i.target = t.pid + LEFT OUTER JOIN (SELECT rt.id,pid,tick FROM raids r + JOIN raid_targets rt ON r.id = rt.raid) rt ON rt.pid = i.target + AND (rt.tick + 12) > i.tick AND rt.tick <= i.tick LEFT OUTER JOIN raid_claims rc ON rt.id = rc.target AND rc.uid = u.uid AND i.tick = rt.tick + rc.wave - 1 - LEFT OUTER JOIN (SELECT sender, eta, landing_tick FROM calls c - JOIN incomings i ON i.call = c.id) inc ON inc.sender = i.target + LEFT OUTER JOIN (SELECT pid, eta, landing_tick FROM calls c + JOIN incomings i USING (call)) inc ON inc.pid = i.target AND (inc.landing_tick + inc.eta) >= i.tick - AND (inc.landing_tick - inc.eta - 1) <= (i.tick - i.eta) + AND (inc.landing_tick - inc.eta - 1) <= (i.tick - i.eta) WHERE u.uid = $1 AND i.mission = 'Attack' ORDER BY (i.tick - i.eta) }); @@ -286,10 +286,10 @@ sub member : Local { $c->stash(attacks => \@attacks); $query = $dbh->prepare(q{ - SELECT coords(t.x,t.y,t.z),t.alliance_id, t.alliance, i.eta, i.tick, i.ingal + SELECT coords(t.x,t.y,t.z),t.aid, t.alliance, i.eta, i.tick, i.ingal FROM users u - JOIN (SELECT DISTINCT name,eta,tick,sender,target,mission,ingal FROM intel WHERE amount IS NULL) i ON i.sender = u.planet - LEFT OUTER JOIN current_planet_stats t ON i.target = t.id + JOIN (SELECT DISTINCT name,eta,tick,sender,target,mission,ingal FROM intel WHERE amount IS NULL) i ON i.sender = u.pid + LEFT OUTER JOIN current_planet_stats t ON i.target = t.pid WHERE u.uid = $1 AND (i.mission = 'Defend' OR i.mission = 'AllyDef') ORDER BY (i.tick - i.eta) }); @@ -299,7 +299,7 @@ sub member : Local { my @other_def; while (my $intel = $query->fetchrow_hashref){ my $def = {target => $intel->{coords}, other => $intel->{alliance}, tick => $intel->{tick}}; - if (defined $intel->{alliance_id} && $intel->{alliance_id} == 1){ + if ($intel->{alliance} ~~ 'NewDawn'){ push @nd_def, $def; }elsif($intel->{ingal}){ push @ingal_def, $def;