dever 6 سال پیش
والد
کامیت
8107461efa
4فایلهای تغییر یافته به همراه47 افزوده شده و 5 حذف شده
  1. 6 1
      README.MD
  2. 1 1
      database/code.php
  3. 1 1
      index.php
  4. 39 2
      src/Api.php

+ 6 - 1
README.MD

@@ -11,7 +11,7 @@ $code = Dever::load('invite/api')->code($uid);
 $code = '1234';
 $uid = Dever::load('invite/api')->getUid($code);
 
-# 3、设置邀请关系 uid为1的用户,上级用户uid为3;如果$parant不存在,也可以输入邀请码
+# 3、设置邀请关系 uid为1的用户,上级用户uid为3;如果$parant不存在,也可以输入邀请码,如果$parent和code都为false,则自动读取input中的source_signature
 $parent = 3;
 $uid = Dever::load('invite/api')->setRelation($uid, $parent, $code = false);
 
@@ -23,5 +23,10 @@ $data = Dever::load('invite/api')->getChild($uid, $level = 6);
 level为关系级数,默认为1级
 $uid = Dever::load('invite/api')->getParent($uid, $level = 1);
 
+# 6、获取来源用户uid(根据参数source_signature)
+uid 当前用户uid
+error为错误提示类型,默认为true,直接报错退出,false为return错误信息
+$uid = Dever::load('invite/api')->getSourceUid($uid, $error);
+
 
 ```

+ 1 - 1
database/code.php

@@ -8,7 +8,7 @@ return array
 	'lang' => '用户邀请码',
 	# 是否显示在后台菜单
 	'order' => 10,
-	//'menu'	=> false,
+	'menu'	=> false,
 
 	# 数据结构
 	'struct' => array

+ 1 - 1
index.php

@@ -4,5 +4,5 @@ define('DEVER_APP_NAME', 'invite');
 define('DEVER_APP_LANG', '邀请管理');
 define('DEVER_APP_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);
 define('DEVER_MANAGE_ORDER', 1);
-define('DEVER_MANAGE_ICON', 'glyphicon glyphicon-cutlery');
+define('DEVER_MANAGE_ICON', 'glyphicon glyphicon-cutlery layui-icon-auz');
 include(DEVER_APP_PATH . '../boot.php');

+ 39 - 2
src/Api.php

@@ -42,11 +42,17 @@ class Api
 	}
 
 	# 设置邀请关系
-	public function setRelation($uid, $parent, $code = 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;
@@ -63,10 +69,41 @@ class Api
 	public function getParent($uid, $level = 1)
 	{
 		$relation = new Relation();
-		$info = $relation->get($uid, $level);
+		$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;
+    }
 }