递归删除调度用户
2012-07-24 11:25:09| 分类:
MySQL
| 标签:
|举报
|字号大中小 订阅
//删除用户
function removeUser($number=false,$level=false){
//非顶级调度员
if($level > 1){
//开始事务
mysql_query('BEGIN');
//清空affectednodes
$sql = 'delete from affectednodes';
$this->dbConn->query($sql);
//将自身插入到affectednodes
$sql = 'insert into affectednodes select loginnumber,fathernumber,' . $level . ' from vsschtree where loginnumber = "' . $number . '"';
$this->dbConn->query($sql);
//将子节点插入到affectednodes
while($this->dbConn->lastCount() > 0){
$level++;
$sql = 'insert into affectednodes select a.loginnumber,b.id,' . $level . ' from vsschtree a,affectednodes b where a.fathernumber = b.id and b.level = ' . ($level - 1);
$this->dbConn->query($sql);
}
// $sql = 'select * from affectednodes';
// $nodes = $this->dbConn->row_query($sql);
// var_dump($nodes);die;
//删除所有相关节点的调度员/权限/树数据
$sql = 'delete u.*,r.*,t.*,m.*,b.*,gm.*,g.*,o.*,s.*,bl.* from affectednodes n
left join vsscheduleuser u on n.id = u.loginnumber
left join schrightrule r on n.id = r.scheduleuser
left join vsschtree t on n.id = t.loginnumber
left join vsschusrmgr m on n.id = m.loginnumber
left join vsbindmap b on n.id = b.loginnumber
left join vsschgroupmemb gm on n.id = gm.loginnumber
left join vsschgroup g on n.id = g.loginnumber
left join vsofficeuser o on n.id = o.schedulernumber
left join vssubscriber s on n.id = s.schedulernumber
left join vsblacklist bl on n.id = bl.schduleuser';
$this->dbConn->query($sql);
if($this->dbConn->lastCount() > 0){
mysql_query('COMMIT');
mysql_query('END');
return true;
}else{
mysql_query('ROLLBACK');
mysql_query('END');
return false;
}
}else{
//顶级调度员
return $this->dbConn->queryTransaction(array(
'delete from vsscheduleuser'
,'delete from schrightrule'
,'delete from vsschtree'
,'delete from vsschusrmgr'
,'delete from vsbindmap'
,'delete from vsschgroupmemb'
,'delete from vsschgroup'
,'delete from vsofficeuser'
,'delete from vssubscriber'
,'delete from vsblacklist'
,'ALTER TABLE vsscheduleuser AUTO_INCREMENT =1'
,'ALTER TABLE schrightrule AUTO_INCREMENT =1'
,'ALTER TABLE vsschtree AUTO_INCREMENT =1'
,'ALTER TABLE vsschusrmgr AUTO_INCREMENT =1'
,'ALTER TABLE vsbindmap AUTO_INCREMENT =1'
,'ALTER TABLE vsschgroupmemb AUTO_INCREMENT =1'
,'ALTER TABLE vsschgroup AUTO_INCREMENT =1'
,'ALTER TABLE vsofficeuser AUTO_INCREMENT =1'
,'ALTER TABLE vssubscriber AUTO_INCREMENT =1'
,'ALTER TABLE vsblacklist AUTO_INCREMENT =1'
));
}
}
评论这张
转发至微博
转发至微博
评论