From a8809be07dadde6023013b5106d78159849d0f4d Mon Sep 17 00:00:00 2001
From: Li Jianxuan
Date: Fri, 4 Nov 2011 08:01:27 +0000
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86reviewAction?=
=?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8ajax=E8=A1=A8=E5=8D=95=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E7=94=A8=E6=88=B7=E6=93=8D=E4=BD=9C=EF=BC=8C=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E4=BA=86uploadcontroller=E7=94=A8=E4=BA=8Eajax?=
=?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../default/controllers/ReviewController.php | 180 +++---------------
.../default/controllers/UploadController.php | 89 ++++++++-
.../default/views/scripts/review/review.phtml | 167 +++++++++++-----
3 files changed, 237 insertions(+), 199 deletions(-)
diff --git a/application/default/controllers/ReviewController.php b/application/default/controllers/ReviewController.php
index 238c0571..eced0f8d 100644
--- a/application/default/controllers/ReviewController.php
+++ b/application/default/controllers/ReviewController.php
@@ -142,153 +142,6 @@ class ReviewController extends Zend_Controller_Action
$rs = $this->db->query($sql);
$row = $rs->fetch();
$this->view->review = $row;
- }
-
- $submit = $this->_request->getParam('submit');
-
- $conclusion = $this->_request->getParam('conclusion');
- $mdcomment = $this->replace(trim($this->_request->getParam('mdcomment')));
- $datacomment = $this->replace(trim($this->_request->getParam('datacomment')));
- $editorcomment = $this->replace(trim($this->_request->getParam('editorcomment')));
-
- if(!empty($submit)){
-
- $redirectlink='/review/review/uuid/'.$uuid.'/';
-
- if($md['status']>4)
- {
- $this->messenger->addMessage('该数据已经通过评审,不能再发表评审意见,如需提交问题,请联系数据管理员');
- $this->_redirect($redirectlink);
- }
- if($md['status']<1)
- {
- $this->messenger->addMessage('已被数据中心接收的数据才可以进行评审');
- $this->_redirect($redirectlink);
- }
-
- $auth = Zend_Auth::getInstance();
- if($auth->hasIdentity())
- {
- $user = $auth->getIdentity();
- $userid = $user->id;
- $sql = "select id,userid,status from mdreview where userid='$userid' and uuid='$uuid'";
- $rs = $this->db->query($sql);
- $row = $rs->fetch();
- if($row['id']!='' && $row['status']>-1)
- {
- $this->messenger->addMessage('您已经对该元数据发表过评审了');
- $this->_redirect($redirectlink);
- }
- }else{
- $this->messenger->addMessage('读取用户信息失败,请刷新页面后重试 :(');
- $this->_redirect($redirectlink);
- }
-
- if(empty($conclusion))
- {
- $this->messenger->addMessage('请选择评审意见');
- $this->_redirect($redirectlink);
- }
- if( !is_numeric($conclusion) || !in_array($conclusion,array(-1,1,2,3)) )
- {
- $this->messenger->addMessage('参数有误,请刷新页面 :(');
- $this->_redirect($redirectlink);
- }
- if(empty($mdcomment) )
- {
- $this->messenger->addMessage('请填写元数据意见后再发布 :(');
- $this->_redirect($redirectlink);
- }
- if(!empty($_FILES['Filedata']['name']))
- {
- $files=new files();
- $msg = $files -> upload($this->view->config->upload,$_FILES['Filedata'],'reviewatt');
-
- if(empty($msg['error']))
- {
- $filename = $msg['db_path'];
- $filesize = $msg['file_size'];
- $filedesc = $this->_request->getParam('filedesc');
- $filetype = $this->_request->getParam('dir');
-
- $sql = "insert into attachments (filename,filetype,filedesc,userid,filesize) values ('$filename','reviewatt','$filedesc','$userid','$filesize') RETURNING id";
- $sth = $this->db->prepare($sql);
- $sth->execute();
- $att = $sth->fetch(PDO::FETCH_ASSOC);
- $attid = $att['id'];
-
- }else{
- $this->messenger->addMessage('附件上传失败:'.$msg['error']);
- @unlink($filename);
- $this->_redirect($redirectlink);
- }
- }
-
- try{
-
- if($row['status']<0)
- {
- $sql = "delete from mdreview where id='{$row['id']}'";
- if($this->db->exec($sql)<1)
- {
- $this->messenger->addMessage('处理出错,请重试');
- @unlink($filename);
- $this->_redirect($redirectlink);
- }
- }
-
- $data = array(
- 'userid' => $userid,
- 'uuid' => $uuid,
- 'mdcomment' => $mdcomment,
- 'ts_created' => 'now()',
- 'datacomment' => $datacomment,
- 'editorcomment' => $editorcomment,
- 'conclusion' => $conclusion
- );
-
-
- $sql = "select id from mdexpertreview where id='$userid' and uuid='$uuid'";
- $rs = $this->db->query($sql);
- $row = $rs->fetch();
-
- if($row['id']!='')
- {
- $data['is_expert'] = 'true';
- }
-
- $keys = array();
- $values = array();
- foreach ($data as $k=>$v)
- {
- $keys[]=$k;
- $values[]=$v;
- }
-
- $keys = join(",",$keys);
- $values = "'".join("','",$values)."'";
-
- $sql = "insert into mdreview ($keys) values ($values) RETURNING id";
- $sth = $this->db->prepare($sql);
- $sth->execute();
- $review = $sth->fetch(PDO::FETCH_ASSOC);
- $reviewid=$review['id'];
-
- if(!empty($_FILES['Filedata']['name']))
- {
- $sql = "insert into mdreviewattach (attachid,reviewid) values ('$attid','$reviewid')";
- $this->db->exec($sql);
- }
-
- $this->messenger->addMessage('提交成功');
- $this->_redirect($redirectlink);
-
- }catch (Exception $e){
-
- $this->messenger->addMessage('提交失败,请重试'.$sql.'aa'.$review['id'].$e->getMessage());
- $this->_redirect($redirectlink);
-
- }
}
}//reviewAction()
@@ -340,6 +193,7 @@ class ReviewController extends Zend_Controller_Action
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
+ $do = $this->_request->getParam('do');
$conclusion = $this->_request->getParam('conclusion');
$mdcomment = $this->replace(trim($this->_request->getParam('mdcomment')));
$datacomment = $this->replace(trim($this->_request->getParam('datacomment')));
@@ -392,7 +246,7 @@ class ReviewController extends Zend_Controller_Action
}
if(empty($mdcomment) )
{
- echo '请填写元数据意见后再存草稿 :(
';
+ echo '请填写元数据意见 :(
';
exit();
}
@@ -419,6 +273,11 @@ class ReviewController extends Zend_Controller_Action
'status' => -1
);
+ if($do=='submit')
+ {
+ $data['status'] = 0;
+ }
+
$sql = "select id from mdexpertreview where id='$userid' and uuid='$uuid'";
$rs = $this->db->query($sql);
@@ -444,8 +303,29 @@ class ReviewController extends Zend_Controller_Action
$sth = $this->db->prepare($sql);
if($sth->execute())
{
- echo '保存成功!
';
- exit();
+ if($_POST['atts'])
+ {
+ $review = $sth->fetch(PDO::FETCH_ASSOC);
+ $reviewid=$review['id'];
+ try{
+ foreach($_POST['atts'] as $v)
+ {
+ $sql = "insert into mdreviewattach (attachid,reviewid) values ('$v','$reviewid')";
+ $this->db->exec($sql);
+ }
+ echo '保存成功!';
+ if($data['status']>=0)
+ {
+ echo '';
+ }
+ echo "
";
+ exit();
+ }catch(Exception $e){
+ echo '保存草稿出错,请稍后再试!
';
+ exit();
+ }
+ }
+
}else{
echo '保存草稿出错,请稍后再试!
';
exit();
diff --git a/application/default/controllers/UploadController.php b/application/default/controllers/UploadController.php
index c73d563f..2ff95b09 100644
--- a/application/default/controllers/UploadController.php
+++ b/application/default/controllers/UploadController.php
@@ -9,9 +9,9 @@ class UploadController extends Zend_Controller_Action {
function indexAction() {
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender();
+
try{
$auth = Zend_Auth::getInstance();
-
if($auth->hasIdentity())
{
$user = $auth->getIdentity();
@@ -19,7 +19,8 @@ class UploadController extends Zend_Controller_Action {
}
if(empty($userid)||!is_numeric($userid)){
- echo "请先登录";
+ $msg['error'] = "请先登录";
+ echo Zend_Json::encode($msg);
exit();
}
@@ -28,30 +29,106 @@ class UploadController extends Zend_Controller_Action {
if(empty($msg['error']))
{
+ $msg['error']="";
$filename = $msg['db_path'];
$filesize = $msg['file_size'];
$filedesc = $this->_request->getParam('filedesc');
$filetype = $this->_request->getParam('dir');
$realname = $msg['realname'];
+
$sql = "insert into attachments (filename,filetype,filedesc,userid,filesize,realname) values ('$filename','reviewatt','$filedesc','$userid','$filesize','$realname') RETURNING id";
$sth = $this->db->prepare($sql);
$sth->execute();
$att = $sth->fetch(PDO::FETCH_ASSOC);
$msg['attid'] = $attid = $att['id'];
+ $msg['html'] = $realname.'[已完成]';
echo Zend_Json::encode($msg);
exit();
}else{
- $this->messenger->addMessage('附件上传失败:'.$msg['error']);
+ $msg['error'] = '附件上传失败:'.$msg['error'];
@unlink($filename);
- $this->_redirect($redirectlink);
+ echo Zend_Json::encode($msg);
+ exit();
}
}catch(Exception $e){
- echo "错误:".$e->getMessage();
+ $msg['error'] = "错误:".$e->getMessage();
+ echo Zend_Json::encode($msg);
exit();
}
- }
+ }//indexAction()
+
+ /*
+ 获得单个文件的信息
+ return array row
+ */
+ public function getFileinfo($id){
+ $sql = "select * from attachments where id='$id'";
+ $re= $this->db->query($sql);
+ $row= $re->fetch();
+ return $row;
+ }
+
+ function delreviewattAction(){
+ $this->_helper->layout()->disableLayout();
+ $this->_helper->viewRenderer->setNoRender();
+
+ $id = $this->_request->getParam('id');
+ $basepath = $this->view->config->upload;
+ $info = $this->getFileinfo($id);
+ $filepath = $basepath.$info['filename'];
+
+ try{
+ $auth = Zend_Auth::getInstance();
+ if($auth->hasIdentity())
+ {
+ $user = $auth->getIdentity();
+ $userid = $user->id;
+ $sql = "delete from attachments where id='$id' and userid='$userid'";
+ if($this->db->exec($sql))
+ {
+ @unlink($filepath);
+ }
+ }
+ }catch(Exception $e){}
+ //不输出任何错误
+ }//删除评审附件
+
+ function getattsAction(){
+
+ $this->_helper->layout()->disableLayout();
+ $this->_helper->viewRenderer->setNoRender();
+
+ $id = $this->_request->getParam('id');
+
+ if($id!='')
+ {
+ $auth = Zend_Auth::getInstance();
+ if($auth->hasIdentity())
+ {
+ $user = $auth->getIdentity();
+ $userid = $user->id;
+ $sql = "select att.realname,att.id from attachments att
+ left join mdreviewattach ratt on att.id=ratt.attachid
+ where ratt.reviewid=$id and att.userid=$userid";
+ $rs = $this->db->query($sql);
+ $atts = $rs->fetchAll();
+ foreach($atts as $k=>$v)
+ {
+ $atts[$k]['html']=$v['realname'].'[已完成]';
+ }
+ echo Zend_Json::encode($atts);
+ exit();
+ }else
+ {
+ exit();
+ }
+ }else{
+ exit();
+ }
+ //不输出错误
+ }//获取附件
}
\ No newline at end of file
diff --git a/application/default/views/scripts/review/review.phtml b/application/default/views/scripts/review/review.phtml
index 0644f142..5cb51f58 100755
--- a/application/default/views/scripts/review/review.phtml
+++ b/application/default/views/scripts/review/review.phtml
@@ -4,8 +4,10 @@
$this->headTitle('数据查看');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/mdreview.css');
+ $this->headLink()->appendStylesheet('/static/js/uploadify/uploadify.css');
$this->headScript()->appendFile('/js/jquery-1.6.4.min.js');
- $this->headScript()->appendFile('/js/pubfunc.js');
+ $this->headScript()->appendFile('/static/js/uploadify/swfobject.js');
+ $this->headScript()->appendFile('/static/js/uploadify/jquery.uploadify.v2.1.4.min.js');
$this->breadcrumb('首页');
$this->breadcrumb(''.$this->config->title->review.'');
$this->breadcrumb('评审元数据');
@@ -73,28 +75,36 @@
- 评审附件:
-
+ 评审附件:
+
+
+
查看可上传的附件类型
'doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','gif', 'jpg', 'jpeg', 'png', 'bmp', 'pdf'
+
-
+
-
-
+
+
+
+ review['status']<0)
{
echo '
您保存的草稿已经加载
';
}
?>
-
-
-
+
+
+
+
-