db=Zend_Registry::get('db'); $this->view->config = Zend_Registry::get('config'); $this->messenger=$this->_helper->getHelper('FlashMessenger'); $this->view->messages = $this->messenger->getMessages(); } function postDispatch() { $this->view->messages = $this->messenger->getMessages(); } function indexAction() { $sql="select (select count(id) from users) as alluser, (select count(id) from normalmetadata) as alldata, (select count(id) as num from dataorder where status=0) as onlinedown, (select count(id) as num from dataorder where status=5) as offlinedown, (select count(id) as num from offlineapp where ts_approved is not null) as offlinepass, (select count(id) as num from offlineapp where ts_approved is null) as offlineunfinished, (select count(id) as num from dataorder where offlineappid>0 and status=-1) as offlinedenied, (select count(id) as num from onlineapp) as onlineapp"; $this->view->stat=$this->db->fetchRow($sql); //下载量统计 $sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join metadata m on d.uuid=m.uuid where (d.status=0 or d.status=5) and m.filesize>0 group by m.title,d.userid,m.filesize) as t"; $res = $this->db->query($sql); $allsize = $res->fetch(); $this->view->allsize = $allsize; $sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join metadata m on d.uuid=m.uuid where d.status=5 and m.filesize>0 group by m.title,d.userid,m.filesize) as t"; $res = $this->db->query($sql); $offlinesize = $res->fetch(); $this->view->offlinesize = $offlinesize; $sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join metadata m on d.uuid=m.uuid where d.status=0 and m.filesize>0 group by m.title,d.userid,m.filesize) as t"; $res = $this->db->query($sql); $onlinesize = $res->fetch(); $this->view->onlinesize = $onlinesize; $sql="select sum(configvalue::real)/1024/1024/1024 as num from g6ftpusersettings where userid in (select id from g6ftpusers where name like 'westdc%' or name='newwestdc') and configname='StatsDownloaded'"; $res = $this->db->query($sql); $onlinesize = $res->fetch(); $this->view->onlineg6size = $onlinesize; }//indexAction 首页 function unitAction() { $y = (int)$this->_request->getParam('y'); if(!empty($y)) { $n = date("Y",time()); if($y<2004 || $y>$n) { $y=$n; } } $this->view->y = $y; //各单位下载情况,统计的离线申请数据条数,需要有对应的dataorder记录 /*$sql = "select count(d.id) as num,o.unit from dataorder d left join offlineapp o on o.id=d.offlineappid where d.offlineappid>0 and o.unit is not null and d.status>4";*/ //各单位下载情况,统计的离线申请数据次数 $sql = "select count(o.id) as num,o.unit from offlineapp o where o.unit is not null "; if ($y) $sql.=" and extract(year from o.ts_created)='$y'"; $sql.=" group by o.unit"; $fe = $this->db->query($sql); $unitoffline = $fe->fetchAll(); $this->view->unitoffline = $unitoffline; //各单位在线下载情况 $sql = "select count(d.id) as num,o.unit from dataorder d left join onlineapp o on o.id=d.onlineappid where d.onlineappid>0 and o.unit is not null"; if ($y) $sql.=" and extract(year from o.ts_created)='$y'"; $sql.=" group by o.unit"; $fe = $this->db->query($sql); $unitonline = $fe->fetchAll(); $this->view->unitonline = $unitonline; }//分单位统计 function monthAction(){ $y = (int)$this->_request->getParam('y'); if(!empty($y)) { $n = date("Y",time()); if($y<2004 || $y>$n) { $y=$n; } } $this->view->y = $y; $sql = "select count(extract(month from ts_created)) as c,extract(month from ts_created) as m,extract(year from ts_created) as y from onlineapp where id in (select distinct(onlineappid) from dataorder)"; if ($y) $sql.=" and extract(year from ts_created)='$y' "; $sql.=" group by extract(month from ts_created),extract(year from ts_created) order by extract(year from ts_created),extract(month from ts_created)"; $rs = $this->db->query($sql); $rows = $rs->fetchAll(); $this->view->data = $rows; $sql = "select count(extract(month from ts_created)) as c,extract(month from ts_created) as m,extract(year from ts_created) as y from dataorder where status=0"; if ($y) $sql.=" and extract(year from ts_created)='$y' "; $sql.=" group by extract(month from ts_created),extract(year from ts_created) order by extract(year from ts_created),extract(month from ts_created)"; $rs = $this->db->query($sql); $rows = $rs->fetchAll(); $this->view->online = $rows; $sql = "select count(extract(month from ts_created)) as c,extract(month from ts_created) as m,extract(year from ts_created) as y from offlineapp where ts_approved is not null"; if ($y) $sql.=" and extract(year from ts_created)='$y' "; $sql.=" group by extract(month from ts_created),extract(year from ts_created) order by extract(year from ts_created),extract(month from ts_created)"; $rs = $this->db->query($sql); $rows = $rs->fetchAll(); if(count($rows)<=0) { $this->view->offline=""; } $this->view->offline = $rows; $sql = "select count(extract(month from ts_created)) as c,extract(month from ts_created) as m,extract(year from ts_created) as y from users"; if ($y) $sql.=" where extract(year from ts_created)='$y' "; $sql.=" group by extract(month from ts_created),extract(year from ts_created) order by extract(year from ts_created),extract(month from ts_created)"; $rs = $this->db->query($sql); $rows = $rs->fetchAll(); if(count($rows)<=0) { $this->view->newuser=""; } $this->view->newuser = $rows; }//按月份统计 function awstatswebAction() { }//awstats web 统计 function awstatsftpAction() { }//awstats ftp 统计 function webalizerAction() { }//webalizer 统计 function waterAction() { $sql="select count(k.keyword) as num,d.status,k.keyword from dataorder d left join metadata m on d.uuid=m.uuid left join keyword k on m.id=k.id where (d.status=5 or d.status=-1) and m.source='0595169a-279e-4b95-819f-129d0ba4280d' and (k.keyword='航空遥感' or k.keyword='卫星遥感' or k.keyword='气象水文' or k.keyword='上游寒区水文试验区' or k.keyword='森林水文试验区' or k.keyword='中游干旱区水文试验区') group by k.keyword,d.status order by k.keyword desc,d.status desc"; $re =$this->db->query($sql); $type =$re->fetchAll();//按分类 $this->view->type = $type; $sql="select count(extract(month from o.ts_created)) as c,extract(month from o.ts_created) as m,extract(year from o.ts_created) as y from offlineapp o left join dataorder d on d.offlineappid=o.id left join metadata m on m.uuid=d.uuid where m.source='0595169a-279e-4b95-819f-129d0ba4280d' and (d.status=3 or d.status=5 or d.status=-1) group by extract(month from o.ts_created),extract(year from o.ts_created) order by extract(year from o.ts_created),extract(month from o.ts_created)"; $re=$this->db->query($sql); $month=$re->fetchAll(); $this->view->month = $month; $sql = "select extract(year from o.ts_created) as y,extract(month from o.ts_created) as m, count(extract(month from o.ts_created)) as c from (select distinct(o.id),o.ts_created from offlineapp o where o.datalist like '%黑河综合遥感联合试验%') as o group by extract(month from o.ts_created),extract(year from o.ts_created) order by extract(year from o.ts_created),extract(month from o.ts_created)"; $re=$this->db->query($sql); $order=$re->fetchAll(); $this->view->order = $order; $sql = "select (sum(m.filesize)/1024) as n from dataorder d left join metadata m on d.uuid=m.uuid where d.status=5 and m.source='0595169a-279e-4b95-819f-129d0ba4280d'"; $re=$this->db->query($sql); $num=$re->fetchAll(); $this->view->num=$num; $sql = "select count(lower(o.unit)) as c,lower(o.unit) as u from offlineapp o left join dataorder d on d.offlineappid=o.id left join metadata m on m.uuid=d.uuid where m.source='0595169a-279e-4b95-819f-129d0ba4280d' and (d.status=5) group by lower(o.unit) order by lower(o.unit)"; $re=$this->db->query($sql); $units=$re->fetchAll(); $this->view->units=$units; $sql = "select count(t.unit) as c,t.unit from (select distinct(o.id),o.unit from offlineapp o left join dataorder d on d.offlineappid=o.id left join metadata m on m.uuid=d.uuid where m.source='0595169a-279e-4b95-819f-129d0ba4280d' and (d.status=5) ) as t group by t.unit"; $re = $this->db->query($sql); $ounit= $re->fetchAll(); $this->view->ounit = $ounit; //water 项目按月统计下载量 $sql = "select (sum(m.filesize)/1024) as n,extract(month from d.ts_created) as m,extract(year from d.ts_created) as y from dataorder d left join metadata m on d.uuid=m.uuid where d.status=5 and m.source='0595169a-279e-4b95-819f-129d0ba4280d' group by extract(month from d.ts_created),extract(year from d.ts_created) order by extract(year from d.ts_created),extract(month from d.ts_created)"; $re = $this->db->query($sql); $dm = $re->fetchAll(); $this->view->dm = $dm; }//WATER项目 }