瀏覽代碼

文字聊天修改收费规则

lizhen_gitee 3 年之前
父節點
當前提交
d039374495
共有 2 個文件被更改,包括 64 次插入15 次删除
  1. 63 14
      application/api/controller/Usercenter.php
  2. 1 1
      application/config.php

+ 63 - 14
application/api/controller/Usercenter.php

@@ -438,27 +438,60 @@ class Usercenter extends Api
     }
     //打字聊天每句话调用一次
     public function typing_once(){
+        //检测用户
         $to_user_id = input_post('to_user_id');
-        $to_user_info = Db::name('user')->field('id,gender,free_video,free_audio,free_typing')->where('id',$to_user_id)->find();
+        $to_user_info = Db::name('user')->field('id,real_status,gender,free_video,free_audio,free_typing')->where('id',$to_user_id)->find();
         if(!$to_user_info){
             $this->error('不存在的用户');
         }
 
+        //正常价格
+        $price = config('site.typing_min_price');  //扣费金币
+        $bili  = config('site.money_to_gold');    //兑换比例
+        $gift_plat_scale = config('site.gift_plat_scale');  //抽成比例
+        $money = bcdiv($price,$bili,2);           //对应人民币
+        $money = bcdiv(bcmul($money,100 - $gift_plat_scale,2),100,2); //抽成后收益
 
-        //设置价格
-        $price = config('site.typing_min_price');
-        $bili  = config('site.money_to_gold');
-        $money = bcdiv($price,$bili,2);
+        //发起用户的分数,被发起用户的分数。按性别给分
+        $auth_level = 0;
+        $tous_level = 0;
 
+        //打分
+        if($this->auth->gender == 0 && $this->auth->real_status == 1){
+            $auth_level = 30;//实名女最高
+        }
+        if($this->auth->gender == 0 && $this->auth->real_status != 1){
+            $auth_level = 20;//未实名女次之
+        }
+        if($this->auth->gender == 1){
+            $auth_level = 10;//男性最低
+        }
+        if($to_user_info['gender'] == 0 && $to_user_info['real_status'] == 1){
+            $tous_level = 30;
+        }
+        if($to_user_info['gender'] == 0 && $to_user_info['real_status'] != 1){
+            $tous_level = 20;
+        }
+        if($to_user_info['gender'] == 1){
+            $tous_level = 10;
+        }
 
-        Db::startTrans();
+        //同性不收钱
+        //都是男的,不扣钱
+        //都是实名认证的女性,不扣钱
+        //都是未实名认证的女性,不扣钱
+        if($auth_level == $tous_level){
+            $price = 0;$money = 0;
+        }
 
+        Db::startTrans();
         //记录日志
         $data = [
             'user_id' => $this->auth->id,
             'price'   => $price,
             'createtime' => time(),
             'to_user_id' => $to_user_id,
+            'money' => $money,
         ];
 
         $log_id = Db::name('user_match_typing_log')->insertGetId($data);
@@ -467,25 +500,41 @@ class Usercenter extends Api
             $this->error('扣费失败');
         }
 
-        //扣费
-        //男的,或 未实名认证的女的 都要扣费
-        if($price > 0 && (($this->auth->gender == 1) || ($this->auth->gender == 0 && $this->auth->idcard_status != 1))){
-            $rs = model('wallet')->lockChangeAccountRemain($this->auth->id,'gold',-$price,13,'','user_match_typing_log',$log_id);
+        //同性别,提前结束
+        if($auth_level == $tous_level){
+            Db::commit();
+            $this->success('success');
+        }
+
+        //扣钱uid,收钱uid,收钱free_video
+        //分数少扣钱,分数多收益
+        if($auth_level < $tous_level){
+            $kou_user = $this->auth->id;
+            $get_user = $to_user_info['id'];
+            $get_user_free = $to_user_info['free_typing'];
+        }else{
+            $kou_user = $to_user_info['id'];
+            $get_user = $this->auth->id;
+            $get_user_free = $this->auth->free_typing;
+        }
+
+        //有性别差,扣费
+        if($price > 0){
+            $rs = model('wallet')->lockChangeAccountRemain($kou_user,'gold',-$price,13,'','user_match_typing_log',$log_id);
             if($rs['status'] === false){
                 Db::rollback();
                 $this->error($rs['msg']);
             }
         }
-        //另一方加钱,设置0收费
-        if($money > 0 && $to_user_info['gender'] == 0 && $to_user_info['free_typing'] == 0){
-            $rs = model('wallet')->lockChangeAccountRemain($to_user_id,'money',$money,23,'','user_match_typing_log',$log_id);
+        //另一方加钱,0收费
+        if($money > 0 && $get_user_free == 0){
+            $rs = model('wallet')->lockChangeAccountRemain($get_user,'money',$money,23,'','user_match_typing_log',$log_id);
             if($rs['status'] === false){
                 Db::rollback();
                 $this->error($rs['msg']);
             }
         }
 
-
         //tag任务赠送金币
         //搭讪奖励
         $task_rs = \app\common\model\TaskLog::tofinish($this->auth->id,15);

+ 1 - 1
application/config.php

@@ -19,7 +19,7 @@ return [
     'app_namespace'          => 'app',
     // 应用调试模式
     'app_debug'              => Env::get('app.debug', false),
-    'app_debug'              => false,
+    'app_debug'              => true,
     // 应用Trace
     'app_trace'              => Env::get('app.trace', false),
     'app_trace'              => false,