Browse Source

用户注册,冗余多个邀请人字段,无限级

lizhen_gitee 1 week ago
parent
commit
d36f8740bc

+ 7 - 2
application/api/controller/Demo.php

@@ -349,11 +349,11 @@ class Demo extends Api
     }
 
     //注册时设置推荐人,顺带修改网体
-    public function set_invite($invite_id = 1){
+    public function set_invite($invite_id = 13){
 
         $intro = Db::name('user')->where('id',$invite_id)->field('id,invite_id,intro_level,intro_ids')->find();
         if(!$intro) {
-            return '无效推荐人';
+            echo '无效推荐人';
         }
 
         $data_reg['invite_id'] = $intro['id']; //推荐人id
@@ -363,8 +363,13 @@ class Demo extends Api
         }
         $data_reg['intro_level'] = $intro['intro_level'] + 1; //推荐网层数
 
+        //修改用户
+        Db::name('user')->where('id',$this->auth->id)->update($data_reg);
+
         //更新直推数和团队数
         model('Intro')->addIntroNum($intro['id'], 1, 1);
+
+        echo '结束';
     }
 
     /**

+ 21 - 1
application/api/controller/User.php

@@ -121,6 +121,7 @@ class User extends Api
         $mobile = input('mobile');
         $captcha = input('captcha');
         $password = input('password');
+        $invite_id = input('invite_id','');
 
         if (!$mobile || !$captcha || !$password) {
             $this->error(__('Invalid parameters'));
@@ -132,7 +133,26 @@ class User extends Api
         if (!$ret) {
             $this->error(__('Captcha is incorrect'));
         }
-        $ret = $this->auth->register('', $password, '', $mobile, []);
+
+        //注册扩展
+        $data_reg = [];
+
+        //邀请人
+        if(!empty($invite_id)){
+            $intro = Db::name('user')->where('id',$invite_id)->field('id,invite_id,intro_level,intro_ids')->find();
+            if(!$intro) {
+                $this->error('无效推荐人');
+            }
+
+            $data_reg['invite_id'] = $intro['id']; //推荐人id
+            $data_reg['intro_ids'] = $intro['intro_ids'] ? ($intro['intro_ids'].','.$intro['id']) : $intro['id']; //所有上级
+            if(!empty($data_reg['intro_ids'])) {
+                $data_reg['intro_ids_new'] = ','.$data_reg['intro_ids'].','; //便于查询所有下级
+            }
+            $data_reg['intro_level'] = $intro['intro_level'] + 1; //推荐网层数
+        }
+
+        $ret = $this->auth->register('', $password, '', $mobile, $data_reg);
         if ($ret) {
             $data = $this->auth->getUserinfo_smiple();
             $im = new TencentIm();

+ 5 - 0
application/common/library/Auth.php

@@ -190,6 +190,11 @@ class Auth
             //注册钱包
             Db::name('user_wallet')->insertGetId(['user_id'=>$user->id]);
 
+            if(isset($extend['invite_id'])){
+                //更新直推数和团队数
+                model('Intro')->addIntroNum($extend['invite_id'], 1, 1);
+            }
+
             //注册成功的事件
             Hook::listen("user_register_successed", $this->_user, $data);
             Db::commit();

+ 1 - 1
application/common/model/Intro.php

@@ -8,7 +8,7 @@ use think\Model;
 /**
  * 邀请
  */
-class User extends Model
+class Intro extends Model
 {
     protected $table = 'user';