diff --git a/application/admin/controllers/DataController.php b/application/admin/controllers/DataController.php index d6ebc21e..62fd58f8 100755 --- a/application/admin/controllers/DataController.php +++ b/application/admin/controllers/DataController.php @@ -4000,6 +4000,11 @@ class Admin_DataController extends Zend_Controller_Action }else{ $this->view->data['doi'] = $metadata['doi']; $this->view->data['info'] = $doi->data_process_out($this->view->data); + if(empty($this->view->data['ts_published'])) + { + $this->view->data['title'] = $metadata['title']; + $this->view->data['title_en'] = $metadata['title_en']; + } } }else{ $this->view->data = $doi->view($uuid); diff --git a/application/admin/controllers/DownController.php b/application/admin/controllers/DownController.php index f11f46fc..7593d3ac 100644 --- a/application/admin/controllers/DownController.php +++ b/application/admin/controllers/DownController.php @@ -375,8 +375,8 @@ class Admin_DownController extends Zend_Controller_Action $mail->setSubject($mailtp->getSubject()); $addrs=array(); $addrs[] = 'nztong@lzb.ac.cn'; - $addrs[] = 'wjian@lzb.ac.cn'; - $addrs[] = 'lixin@lzb.ac.cn'; + $addrs[] = 'wangliangxu@lzb.ac.cn'; + $addrs[] = 'wulizong@lzb.ac.cn'; $mail->addTo($addrs); $mail->addCc($this->view->config->service->email,'西部数据中心服务组'); $mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf'); @@ -875,8 +875,10 @@ class Admin_DownController extends Zend_Controller_Action if ($form->isValid($formdata)) { $uploadedData = $form->getValues(); $pdf = basename($form->pdf->getFileName()); - $sql="insert into offlineapp (username,email,unit,phone,address,postcode,project,pdflink,datalist,ts_created,ts_approved) values(?,?,?,?,?,?,?,?,?,?,now())"; - $this->db->query($sql,array($formdata['username'],$formdata['email'],$formdata['unit'],$formdata['phone'],$formdata['address'],$formdata['postcode'],$formdata['project'],$pdf,$formdata['datalist'],$formdata['ts_approved'])); + $sql="insert into offlineapp (username,email,unit,phone,address,postcode,project,pdflink,datalist,ts_created,ts_approved,project_id,project_title,project_type) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + $this->db->query($sql,array($formdata['username'],$formdata['email'],$formdata['unit'],$formdata['phone'],$formdata['address'],$formdata['postcode'], + $formdata['project'],$pdf,$formdata['datalist'],$formdata['ts_approved']),$formdata['ts_approved'], + $formdata['project_id'],$formdata['project_title'],$formdata['project_type']); $this->messenger->addMessage('提示信息:您已经成功添加该离线服务记录。'); $this->_redirect('/admin/down/offline'); } else { @@ -897,11 +899,14 @@ class Admin_DownController extends Zend_Controller_Action $pdf = basename($form->pdf->getFileName()); $sql="update offlineapp set username=?,email=?,unit=?,phone=?,address=?,postcode=?,project=?,"; if ($form->pdf->isUploaded()) $sql.="pdflink=?,"; - $sql.="datalist=?,ts_approved=? where id=?"; + $sql.="datalist=?,ts_approved=?,project_id=?,project_title=?,project_type=? where id=?"; $param=array($formdata['username'],$formdata['email'],$formdata['unit'],$formdata['phone'],$formdata['address'],$formdata['postcode'],$formdata['project']); if ($form->pdf->isUploaded()) $param[]=$pdf; $param[]=$formdata['datalist']; $param[]=$formdata['ts_approved']; + $param[]=$formdata['project_id']; + $param[]=$formdata['project_title']; + $param[]=$formdata['project_type']; $param[]=$edit; $this->db->query($sql,$param); $this->messenger->addMessage('提示信息:您已经编辑添加该记录。'); @@ -1050,9 +1055,15 @@ class Admin_DownController extends Zend_Controller_Action //设置当前活动sheet的名称 $objActSheet->setTitle('离线服务记录'); + if (date('m')==1) + { + $ym=(date('Y')-1).'-12-1'; + } else { + $ym=date('Y-').(date('m')-1).'-1'; + } $sql="select o.username,o.unit,o.phone,o.address,o.postcode,o.project,regexp_replace(o.datalist,'\(.+?MB\)','','g') as datalist,date(o.ts_approved) as date,o.email,o.project_id,o.project_type,o.project_title,sum(m.filesize) as filesize from offlineapp o left join dataorder d on o.id=d.offlineappid left join metadata m on d.uuid=m.uuid - where o.ts_approved>='".date('Y-').(date('m')-1)."-1' and o.ts_approved<'".date('Y-m')."-1' and o.pdflink is not null and o.ts_approved is not null and d.status=5 group by o.id order by o. ts_approved + where o.ts_approved>='".$ym."' and o.ts_approved<'".date('Y-m')."-1' and o.pdflink is not null and o.ts_approved is not null and d.status=5 group by o.id order by o. ts_approved "; $re = $this->db->query($sql); $rows = $re->fetchAll(); @@ -1081,7 +1092,7 @@ class Admin_DownController extends Zend_Controller_Action $objActSheet->setTitle('在线服务记录'); $sql="select o.username,o.unit,o.phone,o.address,o.postcode,o.project,date(o.ts_created) as date,o.email,o.project_id,o.project_type,o.project_title,m.filesize,m.title from onlineapp o left join dataorder d on o.id=d.onlineappid left join metadata m on d.uuid=m.uuid - where o.ts_created>='".date('Y-').(date('m')-1)."-1' and o.ts_created<'".date('Y-m')."-1' and d.status=0 order by o. ts_created + where o.ts_created>='".$ym."' and o.ts_created<'".date('Y-m')."-1' and d.status=0 order by o. ts_created "; $re = $this->db->query($sql); $rows = $re->fetchAll(); @@ -1364,7 +1375,7 @@ class Admin_DownController extends Zend_Controller_Action $sql = "select distinct u.email from dataorder d LEFT JOIN users u on d.userid = u.id - WHERE u.email IS NOT NULL + WHERE u.email IS NOT NULL and d.status in (0,5) and d.ts_approved is not null AND d.uuid=? GROUP BY u.email"; diff --git a/application/admin/controllers/NewsController.php b/application/admin/controllers/NewsController.php index 8b28ebf7..7bccf05b 100644 --- a/application/admin/controllers/NewsController.php +++ b/application/admin/controllers/NewsController.php @@ -119,6 +119,7 @@ class Admin_NewsController extends Zend_Controller_Action $data['code'] = $this->_request->getParam('code'); $data['fid'] = $this->_request->getParam('fid'); $data['ptype'] = $this->_request->getParam('ptype'); + $data['title_en'] = $this->_request->getParam('title_en'); $data['is_pub'] = 1; @@ -193,6 +194,7 @@ class Admin_NewsController extends Zend_Controller_Action $data['fid'] = $this->_request->getParam('fid'); $data['ptype'] = $this->_request->getParam('ptype'); $data['is_pub'] = $this->_request->getParam('is_pub'); + $data['title_en'] = $this->_request->getParam('title_en'); $this->view->info = $data; @@ -380,7 +382,8 @@ class Admin_NewsController extends Zend_Controller_Action 'pubtimer', 'pubtime', 'description', - 'keyword' + 'keyword', + 'language' ); foreach($_POST as $k=>$v) { @@ -435,7 +438,8 @@ class Admin_NewsController extends Zend_Controller_Action 'source' => $source, 'ts_published' => $pubtime, 'is_pub' => $pub, - 'body' => $body + 'body' => $body, + 'language' => $language ); $update = $this->_getParam('update'); diff --git a/application/admin/controllers/ReviewController.php b/application/admin/controllers/ReviewController.php index 001217bf..632e7eb6 100644 --- a/application/admin/controllers/ReviewController.php +++ b/application/admin/controllers/ReviewController.php @@ -761,7 +761,7 @@ class Admin_ReviewController extends Zend_Controller_Action if (is_numeric($ids)) { $sql="select distinct u.email,m.title,m.uuid from mdstatus s left join metadata m on s.uuid=m.uuid - left join mdauthor a on s.uuid=a.uuid left join users u on a.userid=u.id where s.id=? order by u.email"; + right join mdauthor a on s.uuid=a.uuid left join users u on a.userid=u.id where s.id=? order by u.email"; $rs=$this->db->query($sql,array($ids)); $rows=$rs->fetchAll(); if ($rows) @@ -805,9 +805,10 @@ class Admin_ReviewController extends Zend_Controller_Action $this->view->keyword = $keyword; } - $sql = "select m.id,md.title,md.uuid,u.username,u.realname,m.status,m.ts_created from mdstatus m + $sql = "select m.id,md.title,md.uuid,u.username,u.realname,m.status,m.ts_created,gn.id as gnid from mdstatus m right join metadata md on md.uuid=m.uuid left join users u on u.id=m.userid + left join geonetworkmetadata gn on m.uuid=gn.uuid where status=0 $searchjoin order by m.ts_created desc"; $re = $this->db->query($sql); @@ -909,7 +910,7 @@ class Admin_ReviewController extends Zend_Controller_Action $sql = "select m.id,md.title,md.uuid,u.username,u.realname,m.status,m.ts_finished from mdstatus m right join metadata md on md.uuid=m.uuid left join users u on u.id=m.userid - where status=5 $searchjoin"; + where status=5 $searchjoin order by m.ts_finished desc"; $re = $this->db->query($sql); $rows = $re->fetchAll(); diff --git a/application/admin/controllers/StatController.php b/application/admin/controllers/StatController.php index 5df02b1c..9d93243b 100644 --- a/application/admin/controllers/StatController.php +++ b/application/admin/controllers/StatController.php @@ -1,437 +1,462 @@ -db=Zend_Registry::get('db'); - $this->view->config = Zend_Registry::get('config'); - $this->messenger=$this->_helper->getHelper('FlashMessenger'); - $this->view->messages = $this->messenger->getMessages(); - $this->view->theme = new Theme(); - $this->_helper->layout->setLayout('administry'); - } - 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() - { - $ac = $this->_getParam('ac'); - $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(); - - //各单位在线下载情况 - $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(); - - $units = array(); - - foreach($unitonline as $k=>$v) - { - if(isset($v['num'])) - { - $units[$v['unit']]['online'] = $v['num']; - } - } - - foreach($unitoffline as $k=>$v) - { - if(isset($v['num'])) - { - $units[$v['unit']]['offline'] = $v['num']; - } - } - - $index = 1; - - foreach($units as $k=>$v) - { - if(!isset($v['online'])) - { - $units[$k]['online'] = 0; - } - - if(!isset($v['offline'])) - { - $units[$k]['offline'] = 0; - } - - $units[$k]['total'] = $units[$k]['online'] + $units[$k]['offline']; - - $units[$k]['index'] = $index++; - } - - if($ac == "out") - { - $type = $this->_getParam('type'); - - if(empty($type) || $type == "csv") - { - $this->_helper->layout->disableLayout(); - $this->_helper->viewRenderer->setNoRender(); - - include_once("Stat.php"); - $stat = new Stat($this->db); - - $head = array("id","单位名称","离线申请次数","在线申请次数","总申请次数"); - - $content = array(); - - foreach($units as $k=>$v) - { - $content[] = array( - $v['index'], - $k, - $v['offline'], - $v['online'], - $v['total'] - ); - unset($units[$k]); - } - - array_unshift($content,$head); - - $stat->Download("westdc-download-status.csv",$content,"csv"); - exit(); - } - - if($type == "json") - { - $this->_helper->layout->disableLayout(); - $this->_helper->viewRenderer->setNoRender(); - - include_once("Stat.php"); - $stat = new Stat($this->db); - - $content = array(); - - foreach($units as $k=>$v) - { - $content[] = array( - 'index'=>$v['index'], - 'unit'=>$k, - 'offline'=>$v['offline'], - 'online'=>$v['online'], - 'total'=>$v['total'] - ); - unset($units[$k]); - } - - $stat->Download("westdc-download-status.json",$content,"json"); - exit(); - } - - } - - $this->view->units = $units; - - - }//分单位统计 - - //按用户统计 - function userAction(){ - - $ac = $this->_getParam('ac'); - - if($ac == "get") - { - $this->_helper->layout->disableLayout(); - $this->_helper->viewRenderer->setNoRender(); - - include_once("Stat.php"); - $stat = new Stat($this->db); - - $rows = $stat->UserDataorder(); - - $down = $this->_getParam('down'); - if(empty($down)) - { - $this->jsonexit(array("aaData"=>$rows)); - return true; - } - - if($down == "csv") - { - - $this->_helper->layout->disableLayout(); - $this->_helper->viewRenderer->setNoRender(); - - $head = array("id","姓名","离线申请次数","在线申请次数","总申请次数"); - - array_unshift($rows,$head); - - $stat->Download("westdc-download-status.csv",$rows,"csv"); - exit(); - - } - - if($down == "json") - { - - $this->_helper->layout->disableLayout(); - $this->_helper->viewRenderer->setNoRender(); - - /* - $head = array("id","姓名","离线申请次数","在线申请次数","总申请次数"); - - array_unshift($rows,$head); - */ - - $stat->Download("westdc-download-status.json",$rows,"json"); - exit(); - } - - } - - }//userAction() - - 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 awstatsweb2Action() - { - - }//awstats web 统计 - - function awstatsftpAction() - { - - }//awstats ftp 统计 - - function awstatsftp2Action() - { - - }//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项目 - - public function jsonexit($data){ - $this->getResponse()->setHeader('Content-Type', 'application/json')->appendBody(json_encode($data,JSON_NUMERIC_CHECK)); - return true; - }//jsonexit() 退出并返回json数据 - -} - +db=Zend_Registry::get('db'); + $this->view->config = Zend_Registry::get('config'); + $this->messenger=$this->_helper->getHelper('FlashMessenger'); + $this->view->messages = $this->messenger->getMessages(); + $this->view->theme = new Theme(); + $this->_helper->layout->setLayout('administry'); + } + 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() + { + $ac = $this->_getParam('ac'); + $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(); + + //各单位在线下载情况 + $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(); + + $units = array(); + + foreach($unitonline as $k=>$v) + { + if(isset($v['num'])) + { + $units[$v['unit']]['online'] = $v['num']; + } + } + + foreach($unitoffline as $k=>$v) + { + if(isset($v['num'])) + { + $units[$v['unit']]['offline'] = $v['num']; + } + } + + $index = 1; + + foreach($units as $k=>$v) + { + if(!isset($v['online'])) + { + $units[$k]['online'] = 0; + } + + if(!isset($v['offline'])) + { + $units[$k]['offline'] = 0; + } + + $units[$k]['total'] = $units[$k]['online'] + $units[$k]['offline']; + + $units[$k]['index'] = $index++; + } + + if($ac == "out") + { + $type = $this->_getParam('type'); + + if(empty($type) || $type == "csv") + { + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + include_once("Stat.php"); + $stat = new Stat($this->db); + + $head = array("id","单位名称","离线申请次数","在线申请次数","总申请次数"); + + $content = array(); + + foreach($units as $k=>$v) + { + $content[] = array( + $v['index'], + $k, + $v['offline'], + $v['online'], + $v['total'] + ); + unset($units[$k]); + } + + array_unshift($content,$head); + + $stat->Download("westdc-download-status.csv",$content,"csv"); + exit(); + } + + if($type == "json") + { + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + include_once("Stat.php"); + $stat = new Stat($this->db); + + $content = array(); + + foreach($units as $k=>$v) + { + $content[] = array( + 'index'=>$v['index'], + 'unit'=>$k, + 'offline'=>$v['offline'], + 'online'=>$v['online'], + 'total'=>$v['total'] + ); + unset($units[$k]); + } + + $stat->Download("westdc-download-status.json",$content,"json"); + exit(); + } + + } + + $this->view->units = $units; + + + }//分单位统计 + + //按用户统计 + function userAction(){ + + $this->view->ac = $ac = $this->_getParam('ac'); + + if($ac == "new") + { + $this->_helper->viewRenderer('user-new'); + $this->view->year = $year = !empty($this->_getParam('year')) ? $this->_getParam('year'):date("Y"); + $this->view->by = $by = !empty($this->_getParam('by')) ? $this->_getParam('by'):"month"; + $userStatistics = new \Statistics\User(); + + if($by == "month") + { + $this->view->data = $userStatistics->getNewUsersByMonth($year); + } + + if($by == "year") + { + $this->view->data = $userStatistics->getNewUsersByYear($year); + } + + if($by == "monthavg") + { + $this->view->data = $userStatistics->getAverageSingupByMonth($year); + } + + return true; + } + + if($ac == "get") + { + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + include_once("Stat.php"); + $stat = new Stat($this->db); + + $rows = $stat->UserDataorder(); + + $down = $this->_getParam('down'); + if(empty($down)) + { + $this->jsonexit(array("aaData"=>$rows)); + return true; + } + + if($down == "csv") + { + + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + $head = array("id","姓名","离线申请次数","在线申请次数","总申请次数"); + + array_unshift($rows,$head); + + $stat->Download("westdc-download-status.csv",$rows,"csv"); + exit(); + + } + + if($down == "json") + { + + $this->_helper->layout->disableLayout(); + $this->_helper->viewRenderer->setNoRender(); + + /* + $head = array("id","姓名","离线申请次数","在线申请次数","总申请次数"); + + array_unshift($rows,$head); + */ + + $stat->Download("westdc-download-status.json",$rows,"json"); + exit(); + } + + } + + }//userAction() + + 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 awstatsweb2Action() + { + + }//awstats web 统计 + + function awstatsftpAction() + { + + }//awstats ftp 统计 + + function awstatsftp2Action() + { + + }//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项目 + + public function jsonexit($data){ + $this->getResponse()->setHeader('Content-Type', 'application/json')->appendBody(json_encode($data,JSON_NUMERIC_CHECK)); + return true; + }//jsonexit() 退出并返回json数据 + +} + diff --git a/application/admin/views/scripts/data/doi-add.phtml b/application/admin/views/scripts/data/doi-add.phtml index 39ed9c36..01ca5041 100644 --- a/application/admin/views/scripts/data/doi-add.phtml +++ b/application/admin/views/scripts/data/doi-add.phtml @@ -29,41 +29,47 @@ $this->theme->AppendPlus($this,'colorbox'); msg)) { ?> = $this->msg ?> +