注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

前端开发那点事儿

冒犯之处,敬请谅解。

 
 
 

日志

 
 
 
 

递归删除调度用户  

2012-07-24 11:25:09|  分类: MySQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//删除用户
    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'
            ));
        }
    }
  评论这张
 
阅读(368)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017