Browse Source

入金升级,带动上级升级

lizhen_gitee 2 months ago
parent
commit
c9d3ab0269

+ 52 - 1
application/api/controller/Notify.php

@@ -75,9 +75,11 @@ class Notify extends Api
             return false;
         }
 
+        $user_id = $orderInfo['user_id'];
+
         //逻辑开始
         //$args = json_decode($orderInfo['args'],true);
-        $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],'money',$orderInfo['order_amount'],10, '余额充值','pay_order',$orderInfo['id']);
+        $result = model('Wallet')->lockChangeAccountRemain($user_id,'money',$orderInfo['order_amount'],10, '余额充值','pay_order',$orderInfo['id']);
         if($result['status']===false)
         {
             Db::rollback();
@@ -93,11 +95,60 @@ class Notify extends Api
             return false;
         }
 
+        //vip价格
+        $user_info = Db::name('user')->field('is_vipprice')->where('id',$user_id)->find();
+        if($user_info['is_vipprice'] == 0){
+            $recharge_sum = Db::name('user_money_log')->where('user_id',$user_id)->where('log_type',10)->sum('change_value');
+            if($recharge_sum >= config('site.vipprice_recharge_sum')){
+                Db::name('user')->where('id',$user_id)->update(['is_vipprice' => 1]);
+            }
+        }
+
+        //入金
+        if($orderInfo['order_amount'] >= config('site.intro_rujin_money')){
+
+            $user_wallet = Db::name('user_wallet')->field('intro_level,intro_uid')->where('user_id',$user_id)->find();//我的
+
+            //自己入金
+            if($user_wallet['intro_level'] == '-1'){
+
+                //星级配置
+                $intro_level_config = Db::name('intro_level_config')->order('id asc')->select();
+
+                //看看直推了几个,就给升到对应的星级
+                $intro_num = Db::name('user_wallet')->where('intro_uid',$user_id)->where('intro_level','neq','-1')->count();//我直推的个数(入金的)
+                $level = $this->get_intro_level($intro_level_config,$intro_num);
+                Db::name('user_wallet')->where('user_id',$user_id)->update(['intro_level'=>$level]); //我升级了,最低入金,最高顶级
+
+                //上级升级
+                $intro_uid = $user_wallet['intro_uid'];
+                $up_wallet = Db::name('user_wallet')->field('intro_level')->where('user_id',$intro_uid)->find();//上级
+                if($up_wallet && $up_wallet['intro_level'] != 5){
+                    //看看直推了几个,就给升到对应的星级
+                    $intro_num = Db::name('user_wallet')->where('intro_uid',$intro_uid)->where('intro_level','neq','-1')->count();//直推的个数(入金的)
+                    $level = $this->get_intro_level($intro_level_config,$intro_num);
+                    Db::name('user_wallet')->where('user_id',$intro_uid)->update(['intro_level'=>$level]); //升级了
+                }
+            }
+
+        }
+
         //默认提交
         Db::commit();
         return true;
     }
 
+    //根据直推人数,得出应升的等级
+    private function get_intro_level($intro_level_config,$intro_num){
+        $level = 0;
+        foreach($intro_level_config as $key => $level){
+            if($intro_num >= $level['intro_count']){
+                $level = $level['id'];
+            }
+        }
+        return $level;
+    }
+
 
 ////////////////////////////////////////////////////////////////////////
 

+ 3 - 0
application/api/controller/User.php

@@ -166,7 +166,10 @@ class User extends Api
             $intro_user = Db::name('user')->where('introcode',$introcode)->field('id,intro_uid')->find();
 
             if(!empty($intro_user) && $intro_user['id'] != $this->auth->id && $intro_user['intro_uid'] != $this->auth->id){
+                Db::startTrans();
                 Db::name('user')->where('id',$this->auth->id)->update(['intro_uid'=>$intro_user['id']]);
+                Db::name('user_wallet')->where('user_id',$this->auth->id)->update(['intro_uid'=>$intro_user['id']]);
+                Db::commit();
             }
         }
 

+ 4 - 1
application/extra/site.php

@@ -48,7 +48,7 @@ return array (
   'kefuphoneno' => '400-1234-1175',
   'hexiao_takecash_min_money' => '1',
   'hexiao_takecash_max_money' => '10000',
-  'hexiao_takecash_plat_bili' => '6',
+  'hexiao_takecash_plat_bili' => '7',
   'hexiao_takecash_days' => 
   array (
     0 => '21',
@@ -73,4 +73,7 @@ return array (
     5 => '26',
   ),
   'index_show_product' => '18',
+  'intro_rujin_money' => '1000',
+  'intro_chuju_min_money' => '500',
+  'vipprice_recharge_sum' => '299',
 );