Changeset 1460
- Timestamp:
- 02/04/10 11:42:06 (5 weeks ago)
- Files:
-
- 1 modified
-
trunk/app/models/log.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/app/models/log.php
r1459 r1460 31 31 order by u.name asc"; 32 32 $m = $this->query($sql3); 33 $user_id=implode(',',Set::extract($m,'{n}.u.id')); 33 34 34 35 //get login info 35 36 $sql = "select l.user_id, count(l.id) as login from logs as l 36 where l.url='/' group by l.user_id"; 37 where l.url='/' and l.user_id in (".$user_id.") 38 group by l.user_id"; 37 39 $p = $this->query($sql); 40 $pval=set::extract($p,'{n}.l.user_id'); 38 41 39 42 //get comment info 40 43 $sql1 = "select c.user_id,count(c.id) as comment from comments as c 41 where c.user_id !=0group by c.user_id";44 where c.user_id in (".$user_id.") group by c.user_id"; 42 45 $o = $this->query($sql1); 46 $oval=set::extract($o,'{n}.c.user_id'); 43 47 44 48 //get status info 45 49 $sql2 = "select us.updater,count(us.id) as feedback from userstatuses as us 46 where us.updater !=0group by us.updater";50 where us.updater in (".$user_id.") group by us.updater"; 47 51 $n=$this->query($sql2); 52 $nval=set::extract($n,'{n}.us.updater'); 48 53 $sql2a = "select gs.user_id,count(gs.id) as feedback from groupstatuses as gs 49 where gs.user_id !=0group by gs.user_id";54 where gs.user_id in (".$user_id.") group by gs.user_id"; 50 55 $na = $this->query($sql2a); 56 $naval=set::extract($na,'{n}.gs.user_id'); 51 57 52 58 foreach ($m as $mkey=>$mval) { 53 $ncalc=0; 54 foreach ($n as $nval) { 55 if($nval['us']['updater']==$mval['u']['id']){ 56 $ncalc=$nval[0]['feedback']; 57 } 58 } 59 foreach ($na as $nval) { 60 if($nval['gs']['user_id']==$mval['u']['id']){ 61 $ncalc+=$nval[0]['feedback']; 62 } 63 } 64 $m[$mkey][0]['feedback'] = $ncalc; 65 66 foreach ($o as $oval) { 67 if ($oval['c']['user_id']==$mval['u']['id']) 68 $m[$mkey]['0']['comment'] = $oval['0']['comment']; 69 } 70 71 foreach ($p as $pval) { 72 if ($pval['l']['user_id']==$mval['u']['id']) 73 $m[$mkey]['0']['login'] = $pval['0']['login']; 74 } 59 $m[$mkey][0]['feedback'] = 60 $this->getInfo($mval['u']['id'],$nval,$n,'feedback')+ 61 $this->getInfo($mval['u']['id'],$naval,$na,'feedback'); 62 $m[$mkey]['0']['comment']=$this->getInfo($mval['u']['id'],$oval,$o,'comment'); 63 $m[$mkey]['0']['login']=$this->getInfo($mval['u']['id'],$pval,$p,'login'); 75 64 } 76 65 return $m; 77 66 78 67 } else if ($type == 'MEETINGS') { 79 // get num of decisions for each meeting80 $sql4 = "select m.meeting_title, count(d.id) as numofdec81 from meetings as m, decisions as d82 where m.deleted!='1' and d.deleted!='1' and d.meeting_id=m.id83 group by m.meeting_title";84 $q = $this->query($sql4);85 86 68 // get num of meetings for each committee 87 69 $sql = "select c.name, m.meeting_title, count(m.id) as kuantiti … … 92 74 order by c.name asc, m.meeting_title asc"; 93 75 $r = $this->query($sql); 76 $meeting_title='"'.implode('","',Set::extract($r,'{n}.m.meeting_title')).'"'; 94 77 78 // get num of decisions for each meeting 79 $sql4 = "select m.meeting_title, count(d.id) as numofdec 80 from meetings as m, decisions as d 81 where m.deleted!='1' and d.deleted!='1' and d.meeting_id=m.id 82 and m.meeting_title in (".$meeting_title.") 83 group by m.meeting_title"; 84 $q = $this->query($sql4); 85 $qval=set::extract($q,'{n}.m.meeting_title'); 86 95 87 // get num of individual status for each meeting 96 88 $sql2 = "select m.meeting_title, count(us.id) as numofstat_usr … … 98 90 left join userstatuses as us on (us.decision_id=d.id) 99 91 where d.meeting_id=m.id and m.deleted!='1' and d.deleted!='1' 92 and m.meeting_title in (".$meeting_title.") 100 93 group by m.meeting_title"; 101 94 $s = $this->query($sql2); 95 $sval=set::extract($s,'{n}.m.meeting_title'); 102 96 103 97 // get num of group status for each meeting … … 106 100 left join groupstatuses as gs on (gs.decision_id=d.id) 107 101 where d.meeting_id=m.id and m.deleted!='1' and d.deleted!='1' 102 and m.meeting_title in (".$meeting_title.") 108 103 group by m.meeting_title"; 109 104 $t = $this->query($sql3); 105 $tval=set::extract($t,'{n}.m.meeting_title'); 110 106 111 107 // get num of individual implementor for each meeting … … 114 110 left join decisions_users as du on (d.id=du.decision_id) 115 111 where m.id=d.meeting_id and m.deleted!='1' and d.deleted!='1' 112 and m.meeting_title in (".$meeting_title.") 116 113 group by m.meeting_title"; 117 114 $u = $this->query($sql5); 115 $uval=set::extract($u,'{n}.m.meeting_title'); 118 116 119 117 // get num of group implementor for each meeting … … 122 120 left join decisions_groups as dg on (d.id=dg.decision_id) 123 121 where m.id=d.meeting_id and m.deleted!='1' and d.deleted!='1' 122 and m.meeting_title in (".$meeting_title.") 124 123 group by m.meeting_title"; 125 124 $v = $this->query($sql6); 126 125 $vval=set::extract($v,'{n}.m.meeting_title'); 126 127 127 // combine all these into 1 nice array 128 128 foreach ($r as $rkey=>$rval) { 129 // make sure all index exist 130 $r[$rkey]['0']['numofdec'] = '0'; 131 $r[$rkey]['0']['numofdec_assg_usr'] = '0'; 132 $r[$rkey]['0']['numofdec_assg_grp'] = '0'; 133 $r[$rkey]['0']['numofstat_usr'] = '0'; 134 $r[$rkey]['0']['numofstat_grp'] = '0'; 135 136 // merge with the rest of sql 137 foreach ($q as $qval) 138 if ($qval['m']['meeting_title']==$rval['m']['meeting_title']) 139 $r[$rkey]['0']['numofdec'] = $qval['0']['numofdec']; 140 foreach ($s as $sval) 141 if ($sval['m']['meeting_title']==$rval['m']['meeting_title']) 142 $r[$rkey]['0']['numofstat_usr'] = $sval['0']['numofstat_usr']; 143 foreach ($t as $tval) 144 if ($tval['m']['meeting_title']==$rval['m']['meeting_title']) 145 $r[$rkey]['0']['numofstat_grp'] = $tval['0']['numofstat_grp']; 146 foreach ($u as $uval) 147 if ($uval['m']['meeting_title']==$rval['m']['meeting_title']) 148 $r[$rkey]['0']['numofdec_assg_usr'] = $uval['0']['numofdec_assg_usr']; 149 foreach ($v as $vval) 150 if ($vval['m']['meeting_title']==$rval['m']['meeting_title']) 151 $r[$rkey]['0']['numofdec_assg_grp'] = $vval['0']['numofdec_assg_grp']; 129 $r[$rkey]['0']['numofdec']=$this->getInfo($rval['m']['meeting_title'],$qval,$q,'numofdec'); 130 $r[$rkey]['0']['numofdec_assg_usr'] = $this->getInfo($rval['m']['meeting_title'],$uval,$u,'numofdec_assg_usr'); 131 $r[$rkey]['0']['numofdec_assg_grp'] = $this->getInfo($rval['m']['meeting_title'],$vval,$v,'numofdec_assg_grp'); 132 $r[$rkey]['0']['numofstat_usr'] = $this->getInfo($rval['m']['meeting_title'],$sval,$s,'numofstat_usr'); 133 $r[$rkey]['0']['numofstat_grp'] = $this->getInfo($rval['m']['meeting_title'],$tval,$t,'numofstat_grp'); 152 134 } 153 135 return $r; … … 156 138 157 139 } 140 141 /*describe getInfo 142 * Find the needed information 143 * @param $needle 144 * @param $haystack 145 * @param $array -the array of the info 146 * @param $info - variable name of the needed info 147 * @return the needed value 148 */ 149 function getInfo($needle,$haystack,$array,$info){ 150 if(in_array($needle,$haystack)){ 151 $key=array_search($needle,$haystack); 152 return $array[$key][0][$info]; 153 }else{ 154 return 0; 155 } 156 } 158 157 159 158 }
