浏览代码

扣除茶宝

afa 7 月之前
父节点
当前提交
97ef5fc4dd
共有 1 个文件被更改,包括 41 次插入27 次删除
  1. 41 27
      application/common/model/LedgerWalletModel.php

+ 41 - 27
application/common/model/LedgerWalletModel.php

@@ -163,37 +163,51 @@ class LedgerWalletModel extends Model
         if (empty($available)) $ledgerWalletModel->insertGetId(['user_id' => $uid]);  // 创建钱包
 
         //运费/手续费:扣除
-        if($icn == '-'){
-            $totalAmount = bcadd($available['token'], $available['frozen'], 6);
-            //扣除冻结金额
-            if($available['frozen'] > $amount) $walletUpdate['frozen']  = bcsub($available['frozen'], $amount, 6);
-            if($available['frozen'] <= $amount) $walletUpdate = ['token' => bcadd($totalAmount, -$amount, 6), 'frozen' => 0];
-            //添加冻结
-            $newAmount = $walletUpdate['frozen'];
-        
-        }else{
-
-            if($available->token < $amount) throw new Exception('茶宝不足');
-            $newAmount = bcadd($available->frozen, $amount, 6);
-            $chabao =  bcsub($available['token'], $amount, 6);
-            //添加冻结
-            $walletUpdate =['frozen' =>$newAmount ];
-
-            //添加账变记录
-            $this->changeWalletAccount($uid, Asset::TOKEN, -$amount, LedgerTokenChangeModel::Super, $from_id);
+        $totalAmount = bcadd($available['token'], $available['frozen'], 6);
+        if($totalAmount < $amount) throw new Exception('茶宝不足');
+
+        //扣除冻结金额
+        if($available['frozen'] > $amount) $walletUpdate['frozen']  = bcsub($available['frozen'], $amount, 6);
+
+        if($available['frozen'] <= $amount) {
+            //扣除所需茶宝
+            $subAmount = bcsub($amount, $available['frozen'], 6);
+            $walletUpdate = ['token' => bcadd($totalAmount, -$amount, 6), 'frozen' => 0];
+           // 创建茶宝账变记录
+            $insertRs = (new LedgerTokenChangeModel())->insert([
+                'user_id'        => $uid,
+                'from_id'        => $from_id,
+                'change_amount'  => $icn.$subAmount,
+                'present_amount' => bcsub($available['token'], $subAmount, 6),
+                'create_time'    => time(),
+                'action'         => $action
+            ]);
         }
+  
+        //添加冻结
+        /* if($available->token < $amount) throw new Exception('茶宝不足');
+        $newAmount = bcadd($available->frozen, $amount, 6);
+        $chabao =  bcsub($available['token'], $amount, 6);
+        //添加冻结
+        $walletUpdate =['frozen' =>$newAmount ];
+
+        //添加账变记录
+        $this->changeWalletAccount($uid, Asset::TOKEN, -$amount, LedgerTokenChangeModel::Super, $from_id);
+        */
 
         $ledgerWalletModel->where('user_id', $uid)->update($walletUpdate);
-        // 创建账变记录
-        $insertRs = (new LedgerFrozenChangeModel())->insert([
-            'user_id'        => $uid,
-            'from_id'        => $from_id,
-            'change_amount'  => $icn.$amount,
-            'present_amount' => $newAmount,
-            'create_time'    => time(),
-            'action'         => $action
-        ]);
 
+        // 手续费账变记录
+        if ($available['frozen'] > 0) {
+            $insertRs = (new LedgerFrozenChangeModel())->insert([
+                'user_id'        => $uid,
+                'from_id'        => $from_id,
+                'change_amount'  => $icn.$amount,
+                'present_amount' => $walletUpdate['frozen'],
+                'create_time'    => time(),
+                'action'         => $action
+            ]);
+        }
         if (empty($insertRs)) {
             throw new Exception('创建账变记录失败');
         }