修复版本管理中的错误

This commit is contained in:
wlx 2012-06-26 07:42:30 +00:00
parent 515fe6f505
commit 8ccac05878
1 changed files with 16 additions and 15 deletions

View File

@ -250,8 +250,8 @@ class AuthorController extends Zend_Controller_Action
if(preg_match("/^[0-9A-Za-z]{8}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{12}$/",$uuid))
{
$sql = "select md.title,d.id as doid,d.uuid,d.authorpermitted,d.status
,offa.id as offa_id,offa.username as offa_name,offa.unit as offa_unit,offa.email as offa_email,offa.project as offa_project
,ona.id as ona_id,ona.username as ona_name,ona.unit as ona_unit,ona.email as ona_email,ona.project as ona_project
,offa.id as offa_id,offa.username as offa_name,offa.unit as offa_unit,offa.email as offa_email,offa.project as offa_project,date(offa.ts_created) as offa_tscreated
,ona.id as ona_id,ona.username as ona_name,ona.unit as ona_unit,ona.email as ona_email,ona.project as ona_project,date(ona.ts_created) as ona_tscreated
from dataorder d
left join metadata md on md.uuid=d.uuid
left join mdauthor a on a.uuid=d.uuid
@ -383,9 +383,10 @@ class AuthorController extends Zend_Controller_Action
//列表
if(empty($ac) || $ac=='list' || $ac=='search'){
$sql = "SELECT a.*,m.title,m.description,g.id as gid FROM normalmetadata m
$sql = "SELECT a.*,m.title,m.description,g.id as gid,mds.status as mdstatus FROM normalmetadata m
LEFT JOIN mdauthor a ON m.uuid=a.uuid
left join geonetworkmetadata g on m.uuid=g.uuid
left join mdstatus mds on m.uuid=mds.uuid
WHERE a.userid=? AND status>=0";
if ($ac=='search')
{
@ -395,7 +396,7 @@ class AuthorController extends Zend_Controller_Action
$where=$search->sql_expr(array("m.title","m.description"));
$sql.=' and '.$where;
}
$sql.="ORDER BY status DESC,a.id DESC";
$sql.="ORDER BY a.status DESC,a.id DESC";
$sth = $this->db->prepare($sql);
$sth->execute(array($u_id));
@ -1784,10 +1785,10 @@ class AuthorController extends Zend_Controller_Action
$iso=new ISO19115();
$iso->saveDB($this->db,$row['xml']);
//移除中间版本
$sql="delete from mdversion where uuid in (select uuid from mdversion where v.id=?) and char_length(changelog)<3";
$sql="delete from mdversion where uuid in (select uuid from mdversion where id=?) and changelog is null";
$this->db->query($sql,array($id));
//修改评审状态为发布
$sql="insert into mdstatus (uuid,status,userid) select uuid,5,? from mdversion where id=?";
$sql="insert into mdstatus (uuid,status,userid) select uuid,6,? from mdversion where id=?";
$this->db->query($sql,array($u_id,$id));
//email to admin & author
@ -1817,7 +1818,7 @@ class AuthorController extends Zend_Controller_Action
return true;
}
}
else if ($row['id']==-1 || $row['id']==0 || $row['id']==1) //取消发布的数据,初始状态,已接收
else if ($row['status']==-1 || $row['status']==0 || $row['status']==1) //取消发布的数据,初始状态,已接收
{
//同步元数据
$iso=new ISO19115();
@ -1870,7 +1871,7 @@ class AuthorController extends Zend_Controller_Action
$this->jsonexit($data);
return true;
}
else if ($row['id']==2 || $row['id']==3 || $row['id']==4)//已发送过外审邮件,需由编辑告知变化信息
else if ($row['status']==2 || $row['status']==3 || $row['status']==4)//已发送过外审邮件,需由编辑告知变化信息
{
//email to admin
$mail=new WestdcMailer($this->view->config->smtp);
@ -1946,13 +1947,13 @@ class AuthorController extends Zend_Controller_Action
$this->jsonexit($data);
return true;
}
else if ($row['id']==5)//数据已经发布,再次修改后将只通知管理员,保留发布状态
else if ($row['status']>=5)//数据已经发布,再次修改后将只通知管理员,保留发布状态
{
//同步元数据
$iso=new ISO19115();
$iso->saveDB($this->db,$row['xml']);
//移除中间版本
$sql="delete from mdversion where uuid in (select uuid from mdversion where v.id=?) and char_length(changelog)<3";
$sql="delete from mdversion where uuid in (select uuid from mdversion where id=?) and changelog is null";
$this->db->query($sql,array($id));
//email to admin & author
@ -2153,7 +2154,7 @@ class AuthorController extends Zend_Controller_Action
return true;
}
$sql="select uuid from metadata where id=? and owner=?";
$sql="select uuid,data from metadata where id=? and owner=?";
$sth=$this->wdb->prepare($sql);
$sth->execute(array($id,$u_id));
$row=$sth->fetch();
@ -2165,7 +2166,7 @@ class AuthorController extends Zend_Controller_Action
}
// 保存数据作者信息
$sql="insert into mdauthor (uuid,userid,ts_activated,status) values(?,?,now(),1)";
$sth=$this->db->query($sql,array($row['uuid'],$u_id));
$this->db->query($sql,array($row['uuid'],$u_id));
// 2. 保存变化记录 save changelog & userid for the latest version
$sql = "UPDATE mdversion SET changelog=?,userid=? WHERE id in (select id from mdversion where uuid=? order by ts_created desc limit 1)";
@ -2174,9 +2175,9 @@ class AuthorController extends Zend_Controller_Action
// 3. 保存数据评审状态
//导入元数据
$iso=new ISO19115();
$iso->saveDB($this->db,$row['xml']);
@$iso->saveDB($this->db,$row['xml']);
//进入评审库
$sql="insert into mdstatus (uuid,status,userid) select uuid,0,? from mdversion where id=?";
$sql="insert into mdstatus (uuid,status,userid) select uuid,0,? from geonetworkmetadata where id=?";
$this->db->query($sql,array($u_id,$id));
//email to admin