|
|
@@ -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('创建账变记录失败');
|
|
|
}
|