lizhen_gitee 1 年之前
父節點
當前提交
8f818fe2f0
共有 3 個文件被更改,包括 112 次插入24 次删除
  1. 99 17
      application/api/controller/Notify.php
  2. 2 0
      application/common/model/Wallet.php
  3. 11 7
      application/extra/wallet.php

+ 99 - 17
application/api/controller/Notify.php

@@ -97,9 +97,90 @@ class Notify extends Api
         return true;
     }
 
+    //普通邀请关系,提现
+    private function takecash($user_id,$gold,$table,$table_id){
+        //精确小数点
+        bcscale(1);
+
+        //收益者本人
+        $userinfo = Db::name('user')->field('id,username,group_id,intro_uid,invite_uid,gender')->where('id',$user_id)->find();
+
+        //提现往上(直推)返一级
+        if(!empty($userinfo['invite_uid'])){
+            $takecash_invite_rate = config('site.takecash_invite_rate');
+            $jewel = bcdiv(bcmul($gold,$takecash_invite_rate),100);
+
+            $result = model('Wallet')->lockChangeAccountRemain($userinfo['invite_uid'],'jewel',$jewel,42, $userinfo['username'].'提现',$table,$table_id);
+            if($result['status']===false)
+            {
+                Db::rollback();
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    //四大收益,视频,音频,私聊,礼物
+    private function shouyi($user_id,$gold,$table,$table_id){
+        //精确小数点
+        bcscale(1);
+
+        //枚举
+        $table_enum = [
+            'user_match_audio_log' => [
+                'prefix'=>'audio',
+                'remark'  =>'语音',
+            ],
+            'user_match_typing_log' => [
+                'prefix'=>'typing',
+                'remark'  =>'私聊',
+            ],
+            'user_match_video_log' => [
+                'prefix'=>'video',
+                'remark'  =>'视频',
+            ],
+            'gift_user_typing' => [
+                'prefix'=>'gift',
+                'remark'  =>'收礼',
+            ],
+        ];
+
+        //变量前缀,钱包备注
+        $prefix = $table_enum[$table]['prefix'];
+        $remark = $table_enum[$table]['remark'];
+
+        //收益者本人
+        $userinfo = Db::name('user')->field('id,username,group_id,intro_uid,invite_uid,gender')->where('id',$user_id)->find();
+
+        //没有推荐人,自己等级最高,女性充值不返
+        if(empty($userinfo['intro_uid']) || $userinfo['group_id'] == 3 || $userinfo['gender'] == 0){
+            return true;
+        }
+
+
+    }
+
+    //充值后奖金
     public function recharge($user_id,$gold,$payorder_id){
+        //精确小数点
+        bcscale(1);
+
         //充值者本人
-        $userinfo = Db::name('user')->field('id,username,group_id,intro_uid,gender')->where('id',$user_id)->find();
+        $userinfo = Db::name('user')->field('id,username,group_id,intro_uid,invite_uid,gender')->where('id',$user_id)->find();
+
+        //个人直推邀请充值
+        if(!empty($userinfo['invite_uid']) && $userinfo['gender'] == 1){
+            $recharge_invite_rate = config('site.recharge_invite_rate');
+            $jewel = bcdiv(bcmul($gold,$recharge_invite_rate),100);
+
+            $result = model('Wallet')->lockChangeAccountRemain($userinfo['invite_uid'],'jewel',$jewel,41, $userinfo['username'].'充值','pay_order',$payorder_id);
+            if($result['status']===false)
+            {
+                Db::rollback();
+                return false;
+            }
+        }
 
         //没有推荐人,自己等级最高,女性充值不返
         if(empty($userinfo['intro_uid']) || $userinfo['group_id'] == 3 || $userinfo['gender'] == 0){
@@ -110,16 +191,14 @@ class Notify extends Api
         $intro_userinfo = Db::name('user')->field('id,username,group_id,intro_uid,gender')->where('id',$userinfo['intro_uid'])->find();
         if(empty($intro_userinfo)){return true;}
 
-        //精确小数点
-        bcscale(1);
 
         //上级是一级邀请A,本人为B普、B1(二级邀请人),贡献给A
         if($intro_userinfo['group_id'] == 3){
 
-            $recharge_b2a_rate = config('site.recharge_b2a_rate');
-            $jewel = bcdiv(bcmul($gold,$recharge_b2a_rate),100);
+            $recharge_b2a_rate = config('site.recharge_b2a_rate');//b2a 与 c2a相等
+            $jewelA = bcdiv(bcmul($gold,$recharge_b2a_rate),100);
 
-            $result = model('Wallet')->lockChangeAccountRemain($intro_userinfo['id'],'jewel',$jewel,41, $userinfo['username'].'充值','pay_order',$payorder_id);
+            $result = model('Wallet')->lockChangeAccountRemain($intro_userinfo['id'],'jewel',$jewelA,51, $userinfo['username'].'充值','pay_order',$payorder_id);
             if($result['status']===false)
             {
                 Db::rollback();
@@ -129,12 +208,12 @@ class Notify extends Api
             return true;//结束了
         }
 
-        //上级是二级邀请B0、B1,本人C1,贡献给A和B(表面上说B的钱在A那里,但是有记录,有总额,不能提现即可)
+        //上级是二级邀请B1,本人C1,贡献给B和A(表面上说B的钱在A那里,但是有记录,有总额,不能提现即可)
         if($intro_userinfo['group_id'] == 2){
             $recharge_c2b_rate = config('site.recharge_c2b_rate');
-            $jewel = bcdiv(bcmul($gold,$recharge_c2b_rate),100);
+            $jewelB = bcdiv(bcmul($gold,$recharge_c2b_rate),100);
 
-            $result = model('Wallet')->lockChangeAccountRemain($intro_userinfo['id'],'jewel',$jewel,41, $userinfo['username'].'充值','pay_order',$payorder_id);
+            $result = model('Wallet')->lockChangeAccountRemain($intro_userinfo['id'],'jewel',$jewelB,51, $userinfo['username'].'充值','pay_order',$payorder_id);
             if($result['status']===false)
             {
                 Db::rollback();
@@ -148,9 +227,10 @@ class Notify extends Api
             if($intro_intro_userinfo['group_id'] == 3){
 
                 $recharge_b2a_rate = config('site.recharge_b2a_rate');
-                $jewel = bcdiv(bcmul($jewel,$recharge_b2a_rate),100);
+                $jewelA = bcdiv(bcmul($jewelB,$recharge_b2a_rate),100);
+//                $jewelA = bcadd($jewelA,$jewelB);
 
-                $result = model('Wallet')->lockChangeAccountRemain($intro_intro_userinfo['id'],'jewel',$jewel,41, $userinfo['username'].'充值','pay_order',$payorder_id);
+                $result = model('Wallet')->lockChangeAccountRemain($intro_intro_userinfo['id'],'jewel',$jewelA,51, $userinfo['username'].'充值','pay_order',$payorder_id);
                 if($result['status']===false)
                 {
                     Db::rollback();
@@ -162,12 +242,13 @@ class Notify extends Api
         }
 
         //上级是普通用户,那自己肯定也是普通,则上级可能是D1、C1,找到上上级,如果也是普通C1,停止。如果上上级是B1,则一直追到A1
+        //上级是普通,自己可能是B1,这种不考虑,因为上级只能用普通网,自己相当于独立于超推网里的新分支,是后台新升级来的
         if($intro_userinfo['group_id'] == 1){
             //先给上级普通用户返
             $recharge_d2c_rate = config('site.recharge_d2c_rate');//d2c  或   e2d
-            $jewel = bcdiv(bcmul($gold,$recharge_d2c_rate),100);
+            $jewelC = bcdiv(bcmul($gold,$recharge_d2c_rate),100);
 
-            $result = model('Wallet')->lockChangeAccountRemain($intro_userinfo['id'],'jewel',$jewel,41, $userinfo['username'].'充值','pay_order',$payorder_id);
+            $result = model('Wallet')->lockChangeAccountRemain($intro_userinfo['id'],'jewel',$jewelC,51, $userinfo['username'].'充值','pay_order',$payorder_id);
             if($result['status']===false)
             {
                 Db::rollback();
@@ -188,9 +269,9 @@ class Notify extends Api
 
                 //先给B1
                 $recharge_c2b_rate = config('site.recharge_c2b_rate');
-                $jewel = bcdiv(bcmul($gold,$recharge_c2b_rate),100);
+                $jewelB = bcdiv(bcmul($jewelC,$recharge_c2b_rate),100);
 
-                $result = model('Wallet')->lockChangeAccountRemain($intro_intro_userinfo['id'],'jewel',$jewel,41, $userinfo['username'].'充值','pay_order',$payorder_id);
+                $result = model('Wallet')->lockChangeAccountRemain($intro_intro_userinfo['id'],'jewel',$jewelB,51, $userinfo['username'].'充值','pay_order',$payorder_id);
                 if($result['status']===false)
                 {
                     Db::rollback();
@@ -204,9 +285,10 @@ class Notify extends Api
                 if($intro_intro_intro_userinfo['group_id'] == 3){
 
                     $recharge_b2a_rate = config('site.recharge_b2a_rate');
-                    $jewel = bcdiv(bcmul($jewel,$recharge_b2a_rate),100);
+                    $jewelA = bcdiv(bcmul($jewelB,$recharge_b2a_rate),100);
+//                    $jewelA = bcadd($jewelA,$jewelB);
 
-                    $result = model('Wallet')->lockChangeAccountRemain($intro_intro_intro_userinfo['id'],'jewel',$jewel,41, $userinfo['username'].'充值','pay_order',$payorder_id);
+                    $result = model('Wallet')->lockChangeAccountRemain($intro_intro_intro_userinfo['id'],'jewel',$jewelA,51, $userinfo['username'].'充值','pay_order',$payorder_id);
                     if($result['status']===false)
                     {
                         Db::rollback();

+ 2 - 0
application/common/model/Wallet.php

@@ -95,10 +95,12 @@ class Wallet extends Model
         $number = floatval( $number );
         if( $number == 0 )
         {
+            $result['status'] = true;
             $result['msg'] = '交易金额:0';
             return $result;
         }
         if(0 === bccomp($number, 0)){
+            $result['status'] = true;
             $result['msg'] = '交易金额:0';
             return $result;
         }

+ 11 - 7
application/extra/wallet.php

@@ -8,25 +8,29 @@ return [
 
         10 => '金币充值',//gold +
 
-        11 => '视频通话',//-
-        12 => '语音通话',//-
-        13 => '聊天',//-
-        14 => '聊天赠送礼物',//gold -
+        11 => '视频通话',//gold -
+        12 => '语音通话',//gold -
+        13 => '聊天',//gold -
+        14 => '赠送礼物',//gold -
 
 /////////////////////////////////////
 
         21 => '视频通话',//jewel+
         22 => '语音通话',//jewel+
         23 => '聊天',//jewel+
-        25 => '聊天获得礼物',//jewel +
+        25 => '获得礼物',//jewel +
 
         30 => '提现',      //jewel-
         31 => '提现拒绝返回',  //jewel+
         32 => '完成个人任务',//jewel +
         33 => '签到奖励',//jewel +
+///////////
+        41 => '好友充值',//jewel + 充值的计划任务触发
+        42 => '好友提现',//jewel + 提现审核通过触发
 
-        41 => '邀请充值收益',//jewel +
-
+///////////
+        51 => '超推充值',//jewel + 充值的计划任务触发
+        52 => '超推收益',//jewel + 收益的计划任务触发
 
 
     ],