one(array('uid' => $uid)); if ($info) { return $info['value']; } else { $code = Dever::uid($uid); return $this->createCode($uid, $code); } } private function createCode($uid, $code) { $info = Dever::db('invite/code')->one(array('value' => $code)); if ($info) { $code = Dever::code(6); return $this->createCode($uid, $code); } else { Dever::db('invite/code')->insert(array('value' => $code, 'uid' => $uid)); return $code; } } # 根据邀请码获取邀请人uid public function getUid($code) { $info = Dever::db('invite/code')->one(array('value' => $code)); if ($info) { return $info['uid']; } return false; } # 设置邀请关系 public function setRelation($uid, $parent = false, $code = false) { if ($code) { $parent = $this->getCode($code); } if ($parent <= 0) { $parent = $this->getSourceUid($uid, false); if ($parent <= 0) { return false; } } $relation = new Relation(); $relation->set($parent, $uid); return true; } # 获取某个用户的下级 public function getChild($uid, $level = false) { $relation = new Relation(); return $relation->getChild($uid, $level); } # 获取某个用户的上级 public function getParent($uid, $level = 1) { $relation = new Relation(); $info = $relation->getParent($uid, $level); if ($info) { return $info['uid']; } return false; } # 获取来源用户uid public function getSourceUid($uid, $error = true) { $source_signature = Dever::input('source_signature'); if (!$source_signature) { if (!$error) { return false; } Dever::alert('错误的来源uid'); } $user = Dever::loginResult($source_signature, false); if (!isset($user['uid'])) { if (!$error) { return false; } Dever::alert('错误的来源uid'); } $source_uid = $user['uid']; if ($uid == $source_uid) { if (!$error) { return false; } Dever::alert('来源uid和当前uid相同'); } return $source_uid; } }