Gogs 1 bulan lalu
induk
melakukan
da4d985e2f
1 mengubah file dengan 31 tambahan dan 32 penghapusan
  1. 31 32
      app/Http/Controllers/api/Settle.php

+ 31 - 32
app/Http/Controllers/api/Settle.php

@@ -3,9 +3,8 @@
 namespace App\Http\Controllers\api;
 
 use App\Http\Controllers\Controller;
+use App\Models\Bet;
 use App\Models\Issue;
-use App\Models\LhcOrder;
-use App\Models\LhcOrderItem;
 use App\Models\PcIssue;
 use App\Services\BalanceLogService;
 use App\Services\GameplayRuleService;
@@ -65,52 +64,52 @@ class Settle extends Controller
 
         DB::beginTransaction();
         try {
-            $order = new LhcOrder();
+            $order = new Bet();
             $order->fill([
-                'amount'          => $amount,
-                'number'          => $keywords,
-                'member_id'       => $member_id,
-                'issue'           => $issue_no,
-                'lhc_number_id'   => $issue->id,
-                'odds'            => $odds,
-                'type'            => $type,
-                'lottery_status'  => LhcOrder::STATUS_WIN,
-                'win_amount'      => $win_amount,
-                'profit_and_loss' => $yl,
-                'total_amount'    => $amount,
+                'issue_no'  => $issue_no,
+                'keywords'  => $keywords,
+                'amount'    => $amount,
+                'odds'      => $odds,
+                'status'    => Bet::STATUS_SETTLED,
+                'profit'    => $win_amount,
+                'issue_id'  => $issue->id,
+                'member_id' => $member_id,
+                'user_id'   => $member_id,
             ]);
             $order->timestamps = false;
             $order->created_at = $bet_ts;
             $order->updated_at = $bet_ts;
             $order->save();
 
-            $orderItem = new LhcOrderItem();
-            $orderItem->fill([
-                'ordernum'        => $order->ordernum,
-                'number'          => $keywords,
-                'member_id'       => $member_id,
-                'lottery_status'  => LhcOrder::STATUS_WIN,
-                'win_amount'      => $win_amount,
-                'profit_and_loss' => $yl,
-            ]);
-            $orderItem->timestamps = false;
-            $orderItem->created_at = $bet_ts;
-            $orderItem->updated_at = $bet_ts;
-            $orderItem->save();
-
             $walletInfo = WalletService::findOne(['member_id' => $member_id]);
             if (!$walletInfo) {
                 DB::rollBack();
                 return response()->json(['code' => 404, 'msg' => 'wallet not found']);
             }
             $balance = floatval($walletInfo['available_balance']);
-            WalletService::updateBalance($member_id, $win_amount);
+            $betType = ($game === 'ca28') ? '加拿大28投注' : '极速28投注';
 
+            // 扣下注金额
+            WalletService::updateBalance($member_id, -$amount);
+            $balance_after_bet = bcsub($balance, $amount, 2);
             BalanceLogService::addLog(
                 $member_id,
-                $win_amount,
+                $amount,
                 $balance,
-                bcadd($balance, $win_amount, 2),
+                $balance_after_bet,
+                $betType,
+                $order->id,
+                "期号:{$issue_no}"
+            );
+
+            // 加中奖金额
+            WalletService::updateBalance($member_id, $win_amount);
+            $balance_after_win = bcadd($balance_after_bet, $win_amount, 2);
+            BalanceLogService::addLog(
+                $member_id,
+                $win_amount,
+                $balance_after_bet,
+                $balance_after_win,
                 '中奖',
                 $order->id,
                 "盈利:{$yl}"
@@ -128,7 +127,7 @@ class Settle extends Controller
                 'win_amount'     => $win_amount,
                 'profit'         => $yl,
                 'balance_before' => $balance,
-                'balance_after'  => bcadd($balance, $win_amount, 2),
+                'balance_after'  => $balance_after_win,
                 'order_id'       => $order->id,
                 'bet_time'       => date('Y-m-d H:i:s', $bet_ts),
             ]);