瀏覽代碼

持续扣费,合并数据

lizhen_gitee 9 月之前
父節點
當前提交
41d0a161e2
共有 2 個文件被更改,包括 16 次插入16 次删除
  1. 8 8
      application/api/controller/Demo.php
  2. 8 8
      application/common/model/Wallet.php

+ 8 - 8
application/api/controller/Demo.php

@@ -40,18 +40,18 @@ class Demo extends Api
      */
     public function test()
     {
-        exit;
 
-        $user_id = 1;
+
+        $user_id = 6064;
         $accountType = 'gold';
-        $number = -3.1;
-        $logtype = 1;
-        $remark = 'bz';
-        $table = 'demo';
-        $table_id = 1;
+        $number = -100;
+        $logtype = 11;
+        $remark = '与106063视频通话';
+        $table = 'user_match_video_log';
+        $table_id = 134;
 
         Db::startTrans();
-        $rs_wallet = model('wallet')->lockChangeAccountRemain($user_id,$accountType,$number,$logtype,$remark,$table,$table_id);
+        $rs_wallet = model('wallet')->lockChangeAccountRemain($user_id,$accountType,$number,$logtype,$remark,$table,$table_id,$table_id);
         if($rs_wallet['status'] === false){
             Db::rollback();
             $this->error($rs_wallet['msg']);

+ 8 - 8
application/common/model/Wallet.php

@@ -154,7 +154,7 @@ class Wallet extends Model
                     $data['createtime'] = time();
                     $data['updatetime'] = time();
 
-                    $result = $this->wallet_do($user_id,$accountType,$data,$result);
+                    $result = $this->wallet_do($user_id,$accountType,$data,$result,$request_id,$logtype,$table);
                     if($result['status'] == false){
                         return $result;
                     }
@@ -180,7 +180,7 @@ class Wallet extends Model
                 $data['createtime'] = time();
                 $data['updatetime'] = time();
 
-                $result = $this->wallet_do($user_id,'jewel',$data,$result);
+                $result = $this->wallet_do($user_id,'jewel',$data,$result,$request_id,$logtype,$table);
                 if($result['status'] == false){
                     return $result;
                 }
@@ -204,7 +204,7 @@ class Wallet extends Model
                 $data['createtime'] = time();
                 $data['updatetime'] = time();
 
-                $result = $this->wallet_do($user_id,$accountType,$data,$result);
+                $result = $this->wallet_do($user_id,$accountType,$data,$result,$request_id,$logtype,$table);
                 if($result['status'] == false){
                     return $result;
                 }
@@ -239,14 +239,14 @@ class Wallet extends Model
             $data['createtime'] = time();
             $data['updatetime'] = time();
 
-            $result = $this->wallet_do($user_id,$accountType,$data,$result,$request_id,$logtype);
+            $result = $this->wallet_do($user_id,$accountType,$data,$result,$request_id,$logtype,$table);
             return $result;
         }
 
 
     }
 
-    private function wallet_do($user_id,$accountType,$data,$result,$request_id,$logtype){
+    private function wallet_do($user_id,$accountType,$data,$result,$request_id,$logtype,$table){
 
         //获取小数点
         $point = 1;
@@ -263,14 +263,14 @@ class Wallet extends Model
 
         //查询是否有消费记录
         $user_log_info = [];
-        if ($request_id) { //目前只有视频通话,语音通话才走这里,$request_id === $table_id
-            $user_log_info = Db::name($log_table)->where(['user_id' => $user_id, 'log_type' => $logtype, 'request_id' => $request_id])->find();
+        if (!empty($request_id)) { //目前只有视频通话,语音通话才走这里,$request_id === $table_id
+            $user_log_info = Db::name($log_table)->where(['user_id' => $user_id,'money_type' => $accountType, 'log_type' => $logtype, 'table' => $table , 'table_id' => $request_id])->find();
         }
         if ($user_log_info) {
             //修改钱币记录
             $update_log = [];
             $update_log['change_value'] = bcadd($user_log_info['change_value'], $data['change_value']);
-            $update_log['remain']       = $data['remain'];//拿最新的余额
+            $update_log['remain']       = $data['remain'];//拿最新的余额, 此时只有 before是最早的,也可能是错误的
             $update_log['remark']       = $data['remark'];
             $update_log['updatetime']   = $data['updatetime'];