123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- namespace Invite\Src;
- use Dever;
- use Invite\Lib\Relation;
- class Api
- {
- # 获取邀请码
- public function code($uid)
- {
- $info = Dever::db('invite/code')->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;
- }
- }
|