public function moveDepart($id, $pid = 0)
{
if (empty($id)) {
$this->error = L('PUBLIC_DEPARTMENT_ID_REQUIRED');
// 部门ID不能为空
return false;
}
// 如果子部门不是移动到顶级下面,则判断是否移动到自己子集下面
if ($pid != 0) {
$data = $this->treeDo->getChildHash($id);
if (in_array($pid, $data)) {
return false;
}
}
$map = array();
$map['department_id'] = $id;
$save['parent_dept_id'] = $pid;
$oldTreeName = $this->getTreeName($id);
if ($this->where($map)->save($save)) {
$curName = $oldTreeName[count($oldTreeName) - 1];
$newtreeName = array();
if ($pid != 0) {
$newTreeName = $this->getTreeName($pid);
}
$newTreeName[] = $curName;
$this->cleanCache();
// 替换用户字段表的冗余数据
$this->editUserProfile($oldTreeName, $newTreeName);
// 更新部门关联表数据
$ids = $this->getTreeIdBySql($id);
$this->updateUserDepart(implode('|', $newTreeName) . '|', $ids);
return true;
} else {
return false;
}
}