lizhen_gitee 1 år sedan
förälder
incheckning
8a06528698
1 ändrade filer med 82 tillägg och 53 borttagningar
  1. 82 53
      app/Common/Library/Alltools.php

+ 82 - 53
app/Common/Library/Alltools.php

@@ -138,7 +138,7 @@ class Alltools {
     public function recharge($user_id,$gold,$table,$payorder_id){
 
         //充值者本人
-        $userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','gender'])->where('id',$user_id)->first();
+        $userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','agent_id','gender'])->where('id',$user_id)->first();
 
         //配置
         $config_site = DB::table('mt_config')->whereIn('name',['invite_recharge_rate','recharge_b2a_rate','recharge_c2a_rate','recharge_d2c_rate','recharge_c2a_rate'])->pluck('value','name');
@@ -156,22 +156,22 @@ class Alltools {
             }
         }
 
-        //没有推荐人,自己等级最高,女性充值不返
-        if(empty($userinfo->intro_uid) || $userinfo->group_id == 3 || $userinfo->gender == 0){
+        //没有推荐人,女性充值不返
+        if(empty($userinfo->intro_uid) || $userinfo->gender == 0){
             return true;
         }
 
-        //充值者上级
-        $intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','gender'])->where('id',$userinfo->intro_uid)->first();
-        if(empty($intro_userinfo)){return true;}
 
         //精确小数点
         bcscale(2);
 
-        //上级是一级邀请A,本人为B普、B1(二级邀请人),贡献给A
-        if($intro_userinfo->group_id == 3){
+        //自己等级最高
+        if($userinfo->group_id == 3 && !empty($userinfo->intro_uid)){
+            //充值者上级
+            $intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','agent_id','gender'])->where('id',$userinfo->intro_uid)->first();
+            if(empty($intro_userinfo)){return true;}
 
-            $recharge_b2a_rate = $config_site['recharge_b2a_rate'];//b2a 与 b02a相等
+            $recharge_b2a_rate = $config_site['recharge_b2a_rate'];
             $jewelA = bcdiv(bcmul($gold,$recharge_b2a_rate),100);
 
             $result = $this->lockChangeAccountRemain($intro_userinfo->id,'agentjewel',$jewelA,51, $userinfo->username.'充值','pay_order',$payorder_id);
@@ -182,69 +182,49 @@ class Alltools {
             }
 
             return true;//结束了
-        }
-
-        //上级是二级邀请B1,本人C1,贡献给B和A(表面上说B的钱在A那里,但是有记录,有总额,不能提现即可)
-        if($intro_userinfo->group_id == 2 && $intro_userinfo->group_id > $userinfo->group_id){
 
+        }
 
-            //充值者上上级,也就是A
-            $intro_intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','gender'])->where('id',$intro_userinfo->intro_uid)->first();
-            if(empty($intro_intro_userinfo)){return true;}
+        if($userinfo->group_id == 2){
+            //充值者上级
+            $intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','agent_id','gender'])->where('id',$userinfo->intro_uid)->first();
+            if(empty($intro_userinfo)){return true;}
 
-            if($intro_intro_userinfo->group_id == 3){
+            //上级是一级邀请A,本人为B普、B1(二级邀请人),贡献给A
+            /*if($intro_userinfo->group_id == 3){*/
 
-                $recharge_c2a_rate = $config_site['recharge_c2a_rate'];
-                $jewelA = bcdiv(bcmul($gold,$recharge_c2a_rate),100);
+                $recharge_b2a_rate = $config_site['recharge_b2a_rate'];//b2a 与 b02a相等
+                $jewelA = bcdiv(bcmul($gold,$recharge_b2a_rate),100);
 
-                $result = $this->lockChangeAccountRemain($intro_intro_userinfo->id,'agentjewel',$jewelA,51, $userinfo->username.'充值','pay_order',$payorder_id);
+                $result = $this->lockChangeAccountRemain($intro_userinfo->id,'agentjewel',$jewelA,51, $userinfo->username.'充值','pay_order',$payorder_id);
                 if($result['status']===false)
                 {
                     //Db::rollback();
                     return false;
                 }
-            }
 
-            return true;
+                return true;//结束了
+            /*}*/
         }
 
-        //上级是普通用户,那自己肯定也是普通,则上级可能是D1、C1,找到上上级,如果也是普通C1,停止。如果上上级是B1,则一直追到A1
-        //上级是普通,自己可能是B1,这种不考虑,因为上级只能用普通网,自己相当于独立于超推网里的新分支,是后台新升级来的
-        if($intro_userinfo->group_id == 1 && $userinfo->group_id == 1){
-            //先给上级普通用户返
-            $recharge_d2c_rate = $config_site['recharge_d2c_rate'];//d2c  或   e2d
-            $jewelC = bcdiv(bcmul($gold,$recharge_d2c_rate),100);
-
-            $result = $this->lockChangeAccountRemain($intro_userinfo->id,'agentjewel',$jewelC,51, $userinfo->username.'充值','pay_order',$payorder_id);
-            if($result['status']===false)
-            {
-                //Db::rollback();
-                return false;
-            }
-
-            //充值者上上级
-            $intro_intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','gender'])->where('id',$intro_userinfo->intro_uid)->first();
-            if(empty($intro_intro_userinfo)){return true;}
-
-            //上上级也是普通C1,说明自己在E1,上级是D1,停止
-            if($intro_intro_userinfo->group_id == 1){
-                return true;
-            }
-
-            //上上级是B1,上级是C1,自己是D1,
-            if($intro_intro_userinfo->group_id == 2){
+        if($userinfo->group_id == 1){
+            //充值者上级
+            $intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','agent_id','gender'])->where('id',$userinfo->intro_uid)->first();
+            if(empty($intro_userinfo)){return true;}
 
+            //上级是二级邀请B1,本人C1,贡献给B和A(表面上说B的钱在A那里,但是有记录,有总额,不能提现即可)
+            if($intro_userinfo->group_id == 2){
 
                 //充值者上上级,也就是A
-                $intro_intro_intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','gender'])->where('id',$intro_intro_userinfo->intro_uid)->first();
-                if(empty($intro_intro_intro_userinfo)){return true;}
+                $intro_intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','agent_id','gender'])->where('id',$intro_userinfo->agent_id)->first();
+                if(empty($intro_intro_userinfo)){return true;}
 
-                if($intro_intro_intro_userinfo->group_id == 3){
+                if($intro_intro_userinfo->group_id == 3){
 
                     $recharge_c2a_rate = $config_site['recharge_c2a_rate'];
-                    $jewelA = bcdiv(bcmul($jewelC,$recharge_c2a_rate),100);
+                    $jewelA = bcdiv(bcmul($gold,$recharge_c2a_rate),100);
 
-                    $result = $this->lockChangeAccountRemain($intro_intro_intro_userinfo->id,'agentjewel',$jewelA,51, $userinfo->username.'充值','pay_order',$payorder_id);
+                    $result = $this->lockChangeAccountRemain($intro_intro_userinfo->id,'agentjewel',$jewelA,51, $userinfo->username.'充值','pay_order',$payorder_id);
                     if($result['status']===false)
                     {
                         //Db::rollback();
@@ -252,9 +232,58 @@ class Alltools {
                     }
                 }
 
+                return true;
             }
 
-            return true;
+
+
+            //上级是普通用户,那自己肯定也是普通,则上级可能是D1、C1,找到上上级,如果也是普通C1,停止。如果上上级是B1,则一直追到A1
+            if(1 == 2 && $intro_userinfo->group_id == 1){
+                //先给上级普通用户返
+                $recharge_d2c_rate = $config_site['recharge_d2c_rate'];//d2c  或   e2d
+                $jewelC = bcdiv(bcmul($gold,$recharge_d2c_rate),100);
+
+                $result = $this->lockChangeAccountRemain($intro_userinfo->id,'agentjewel',$jewelC,51, $userinfo->username.'充值','pay_order',$payorder_id);
+                if($result['status']===false)
+                {
+                    //Db::rollback();
+                    return false;
+                }
+
+                //充值者上上级
+                $intro_intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','agent_id','gender'])->where('id',$intro_userinfo->intro_uid)->first();
+                if(empty($intro_intro_userinfo)){return true;}
+
+                //上上级也是普通C1,说明自己在E1,上级是D1,停止
+                if($intro_intro_userinfo->group_id == 1){
+                    return true;
+                }
+
+                //上上级是B1,上级是C1,自己是D1,
+                if($intro_intro_userinfo->group_id == 2){
+
+
+                    //充值者上上级,也就是A
+                    $intro_intro_intro_userinfo = DB::table('mt_user')->select(['id','username','group_id','intro_uid','invite_uid','agent_id','gender'])->where('id',$intro_intro_userinfo->intro_uid)->first();
+                    if(empty($intro_intro_intro_userinfo)){return true;}
+
+                    if($intro_intro_intro_userinfo->group_id == 3){
+
+                        $recharge_c2a_rate = $config_site['recharge_c2a_rate'];
+                        $jewelA = bcdiv(bcmul($jewelC,$recharge_c2a_rate),100);
+
+                        $result = $this->lockChangeAccountRemain($intro_intro_intro_userinfo->id,'agentjewel',$jewelA,51, $userinfo->username.'充值','pay_order',$payorder_id);
+                        if($result['status']===false)
+                        {
+                            //Db::rollback();
+                            return false;
+                        }
+                    }
+
+                }
+
+                return true;
+            }
         }
 
         return true;