lip 11 timmar sedan
förälder
incheckning
8dc03986cd
1 ändrade filer med 134 tillägg och 117 borttagningar
  1. 134 117
      app/Services/BetService.php

+ 134 - 117
app/Services/BetService.php

@@ -11,6 +11,7 @@ use App\Models\Rebate;
 use App\Models\User;
 use App\Models\User;
 use App\Models\LhcOrder;
 use App\Models\LhcOrder;
 use App\Models\Config;
 use App\Models\Config;
+use App\Models\LhcOrderItem;
 use Illuminate\Support\Facades\App;
 use Illuminate\Support\Facades\App;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\Cache;
@@ -784,6 +785,9 @@ class BetService extends BaseService
             $item = [];
             $item = [];
             $item['lottery_status'] = self::model()::STATUS_LOSS;
             $item['lottery_status'] = self::model()::STATUS_LOSS;
             self::model()::where('id', $v['id'])->update($item);
             self::model()::where('id', $v['id'])->update($item);
+
+            //下注项状态更新为未中奖
+            LhcOrderItem::where('ordernum', $v['ordernum'])->update(['lottery_status' => self::model()::STATUS_LOSS]);
         }
         }
 
 
     }
     }
@@ -813,110 +817,36 @@ class BetService extends BaseService
         $memberList = [];
         $memberList = [];
         
         
         foreach ($list->toArray() as $k => $v) {
         foreach ($list->toArray() as $k => $v) {
-            if (isset($keywordsList[$v['number']])) {
-                $keywordsList[$v['number']] += $v['amount'];
-            } else {
-                $keywordsList[$v['number']] = $v['amount'];
-            }
-            $lastStr = self::hideMiddleDigits($v['member_id'], 4);
-            $item = [];
-            $item['id'] = $v['id'];
-            $item['lottery_status'] = self::model()::STATUS_LOSS;//未中奖
-            $item['profit_and_loss'] = -$v['amount'];
-
-            if (in_array($v['number'], $awards)) {
-                $amount = $v['amount'];
-                $odds = $v['odds'];
-
-//                玩 大单 小单 大双 小双 :如果开出13和14 总注小于10000 1.5赔率含本,大于等于10000退本金。
-                if (in_array('13操', $awards) || in_array('14操', $awards)) {
-                    // 13 14特殊处理倍率
-                    if (in_array($v['number'], self::$OTHER_BET_2)) {
-                        if ($sum < 10000) {
-                            $odds = 1.5;
-                        } else {
-                            $odds = 1;
-                        }
-                    }
-                }
-
-                $profit = bcmul($amount, $odds, 2); // 保留两位小数
-
-                if ($profit > 1000000) {
-                    $profit = 1000000; // 单注最高奖金1000000
-                }
-
-                $item['lottery_status'] = self::model()::STATUS_WIN;//中奖
-                $item['win_amount'] = $profit;
-                $yl = bcsub($profit, $amount, 2); // 盈利
-                $item['profit_and_loss'] = $yl;
-                $rebate = Rebate::updateProfit([
-                    'member_id' => $v['member_id'],
-                    'profit' => $yl,
-                ]);
-
-                if (!in_array('13操', $awards) && !in_array('14操', $awards)) {
-                    RebateService::updateEffectiveBettingAmount($rebate, $v['amount']);
-                    ActivityUserService::updateBettingAmount($v['member_id'],$v['amount']);
-                }
-
-                $memberList[$v['member_id']][] = [
-                    'member_id' => $v['member_id'],
-                    'keywords' => $v['number'],
-                    'amount' => $v['amount'],
-                    'profit' => $profit,
-                    'yl' => $yl,
-                ];
 
 
-                $walletInfo = WalletService::findOne(['member_id' => $v['member_id']]);
-                $balance = $walletInfo['available_balance'];
-                WalletService::updateBalance($v['member_id'], $profit);
-                BalanceLogService::addLog($v['member_id'], $profit, $balance, ($balance + $profit), '中奖', $v['id'], "盈利:{$yl}");
-
-                if (isset($openList[$v['member_id']])) {
-                    $openList[$v['member_id']]['member_id'] = $v['member_id'];
-                    $openList[$v['member_id']]['amount'] += $v['amount'];
-                    $openList[$v['member_id']]['profit'] += $profit;
-                    $openList[$v['member_id']]['lastStr'] = $lastStr;
-                    $openList[$v['member_id']]['openKeywords'][] = $v['number'] . "({$odds}" . lang("倍率") . ")";
-                    $openList[$v['member_id']]['keywords'][] = $v['number'];
-                    $openList[$v['member_id']]['win_amount'] += $v['amount'];
+            $order_item = LhcOrderItem::where('ordernum', $v['ordernum'])->get()->toArray();
+            $total_amount = 0;
+            foreach($order_item as $value) {
+                $number = $value['number'];
 
 
+                if (isset($keywordsList[$number])) {
+                    $keywordsList[$number] += $v['amount'];
                 } else {
                 } else {
-                    $openList[$v['member_id']]['member_id'] = $v['member_id'];
-                    $openList[$v['member_id']]['amount'] = $v['amount'];
-                    $openList[$v['member_id']]['profit'] = $profit;
-                    $openList[$v['member_id']]['lastStr'] = $lastStr;
-                    $openList[$v['member_id']]['openKeywords'] = [];
-                    $openList[$v['member_id']]['keywords'] = [];
-                    $openList[$v['member_id']]['openKeywords'][] = $v['number'] . "({$odds}" . lang("倍率") . ")";
-                    $openList[$v['member_id']]['keywords'][] = $v['number'];
-                    $openList[$v['member_id']]['win_amount'] = $v['amount'];
-                    $openList[$v['member_id']]['is_send'] = true;
-
+                    $keywordsList[$number] = $v['amount'];
                 }
                 }
-            } //
-            else {
-                $rebate = Rebate::updateProfit([
-                    'member_id' => $v['member_id'],
-                    'profit' => ($v['amount'] * -1),
-                ]);
+                $lastStr = self::hideMiddleDigits($v['member_id'], 4);
+                $item = [];
+                $item['id'] = $value['id'];
+                $item['lottery_status'] = self::model()::STATUS_LOSS;//未中奖
+                $item['profit_and_loss'] = -$value['amount'];
 
 
-                if (!in_array('13操', $awards) && !in_array('14操', $awards)) {
-                    RebateService::updateEffectiveBettingAmount($rebate, $v['amount']);
-                    ActivityUserService::updateBettingAmount($v['member_id'],$v['amount']);
-                }
-                $profit = 0;
-//                玩 大单 小单 大双 小双 :如果开出13和14 总注小于10000 1.5赔率含本,大于等于10000退本金。
-                if (in_array('13操', $awards) || in_array('14操', $awards)) {
+                if (in_array($number, $awards)) {
                     $amount = $v['amount'];
                     $amount = $v['amount'];
-                    $odds = 0;
-                    // 13 14特殊处理倍率
-                    if (in_array($v['number'], self::$OTHER_BET_2)) {
-                        if ($sum < 10000) {
-                            $odds = 1.5;
-                        } else {
-                            $odds = 1;
+                    $odds = $v['odds'];
+
+                    //玩 大单 小单 大双 小双 :如果开出13和14 总注小于10000 1.5赔率含本,大于等于10000退本金。
+                    if (in_array('13操', $awards) || in_array('14操', $awards)) {
+                        // 13 14特殊处理倍率
+                        if (in_array($number, self::$OTHER_BET_2)) {
+                            if ($sum < 10000) {
+                                $odds = 1.5;
+                            } else {
+                                $odds = 1;
+                            }
                         }
                         }
                     }
                     }
 
 
@@ -928,35 +858,122 @@ class BetService extends BaseService
 
 
                     $item['lottery_status'] = self::model()::STATUS_WIN;//中奖
                     $item['lottery_status'] = self::model()::STATUS_WIN;//中奖
                     $item['win_amount'] = $profit;
                     $item['win_amount'] = $profit;
+                    $total_amount += $profit;
 
 
                     $yl = bcsub($profit, $amount, 2); // 盈利
                     $yl = bcsub($profit, $amount, 2); // 盈利
                     $item['profit_and_loss'] = $yl;
                     $item['profit_and_loss'] = $yl;
+                    $rebate = Rebate::updateProfit([
+                        'member_id' => $v['member_id'],
+                        'profit' => $yl,
+                    ]);
+
+                    if (!in_array('13操', $awards) && !in_array('14操', $awards)) {
+                        RebateService::updateEffectiveBettingAmount($rebate, $v['amount']);
+                        ActivityUserService::updateBettingAmount($v['member_id'],$v['amount']);
+                    }
+
+                    $memberList[$v['member_id']][] = [
+                        'member_id' => $v['member_id'],
+                        'keywords' => $number,
+                        'amount' => $v['amount'],
+                        'profit' => $profit,
+                        'yl' => $yl,
+                    ];
+
                     $walletInfo = WalletService::findOne(['member_id' => $v['member_id']]);
                     $walletInfo = WalletService::findOne(['member_id' => $v['member_id']]);
                     $balance = $walletInfo['available_balance'];
                     $balance = $walletInfo['available_balance'];
                     WalletService::updateBalance($v['member_id'], $profit);
                     WalletService::updateBalance($v['member_id'], $profit);
-                    BalanceLogService::addLog($v['member_id'], $profit, $balance, ($balance + $profit), '中奖', $v['id'], "盈利:{$yl}");
-                }
-
-                if (isset($openList[$v['member_id']])) {
-                    $openList[$v['member_id']]['member_id'] = $v['member_id'];
-                    $openList[$v['member_id']]['amount'] += $v['amount'];
-                    $openList[$v['member_id']]['profit'] += $profit;
-                    $openList[$v['member_id']]['lastStr'] = $lastStr;
-                    $openList[$v['member_id']]['keywords'][] = $v['number'];
+                    BalanceLogService::addLog($v['member_id'], $profit, $balance, ($balance + $profit), '中奖', $v['id'], "盈利:{$yl}");
+
+                    if (isset($openList[$v['member_id']])) {
+                        $openList[$v['member_id']]['member_id'] = $v['member_id'];
+                        $openList[$v['member_id']]['amount'] += $v['amount'];
+                        $openList[$v['member_id']]['profit'] += $profit;
+                        $openList[$v['member_id']]['lastStr'] = $lastStr;
+                        $openList[$v['member_id']]['openKeywords'][] = $number . "({$odds}" . lang("倍率") . ")";
+                        $openList[$v['member_id']]['keywords'][] = $number;
+                        $openList[$v['member_id']]['win_amount'] += $v['amount'];
+                    } else {
+                        $openList[$v['member_id']]['member_id'] = $v['member_id'];
+                        $openList[$v['member_id']]['amount'] = $v['amount'];
+                        $openList[$v['member_id']]['profit'] = $profit;
+                        $openList[$v['member_id']]['lastStr'] = $lastStr;
+                        $openList[$v['member_id']]['openKeywords'] = [];
+                        $openList[$v['member_id']]['keywords'] = [];
+                        $openList[$v['member_id']]['openKeywords'][] = $number . "({$odds}" . lang("倍率") . ")";
+                        $openList[$v['member_id']]['keywords'][] = $number;
+                        $openList[$v['member_id']]['win_amount'] = $v['amount'];
+                        $openList[$v['member_id']]['is_send'] = true;
+                    }
                 } else {
                 } else {
-                    $openList[$v['member_id']]['member_id'] = $v['member_id'];
-                    $openList[$v['member_id']]['amount'] = $v['amount'];
-                    $openList[$v['member_id']]['profit'] = $profit;
-                    $openList[$v['member_id']]['lastStr'] = $lastStr;
-                    $openList[$v['member_id']]['openKeywords'] = [];
-                    $openList[$v['member_id']]['keywords'] = [];
-                    $openList[$v['member_id']]['keywords'][] = $v['number'];
-                    $openList[$v['member_id']]['win_amount'] = 0;
-                    $openList[$v['member_id']]['is_send'] = true;
+                    $rebate = Rebate::updateProfit([
+                        'member_id' => $v['member_id'],
+                        'profit' => ($v['amount'] * -1),
+                    ]);
+
+                    if (!in_array('13操', $awards) && !in_array('14操', $awards)) {
+                        RebateService::updateEffectiveBettingAmount($rebate, $v['amount']);
+                        ActivityUserService::updateBettingAmount($v['member_id'],$v['amount']);
+                    }
+                    $profit = 0;
+                    //玩 大单 小单 大双 小双 :如果开出13和14 总注小于10000 1.5赔率含本,大于等于10000退本金。
+                    if (in_array('13操', $awards) || in_array('14操', $awards)) {
+                        $amount = $v['amount'];
+                        $odds = 0;
+                        // 13 14特殊处理倍率
+                        if (in_array($number, self::$OTHER_BET_2)) {
+                            if ($sum < 10000) {
+                                $odds = 1.5;
+                            } else {
+                                $odds = 1;
+                            }
+                        }
+
+                        $profit = bcmul($amount, $odds, 2); // 保留两位小数
+
+                        if ($profit > 1000000) {
+                            $profit = 1000000; // 单注最高奖金1000000
+                        }
+
+                        $item['lottery_status'] = self::model()::STATUS_WIN;//中奖
+                        $item['win_amount'] = $profit;
+                        $total_amount += $profit;
+
+                        $yl = bcsub($profit, $amount, 2); // 盈利
+                        $item['profit_and_loss'] = $yl;
+                        $walletInfo = WalletService::findOne(['member_id' => $v['member_id']]);
+                        $balance = $walletInfo['available_balance'];
+                        WalletService::updateBalance($v['member_id'], $profit);
+                        BalanceLogService::addLog($v['member_id'], $profit, $balance, ($balance + $profit), '中奖', $v['id'], "盈利:{$yl}");
+                    }
+
+                    if (isset($openList[$v['member_id']])) {
+                        $openList[$v['member_id']]['member_id'] = $v['member_id'];
+                        $openList[$v['member_id']]['amount'] += $v['amount'];
+                        $openList[$v['member_id']]['profit'] += $profit;
+                        $openList[$v['member_id']]['lastStr'] = $lastStr;
+                        $openList[$v['member_id']]['keywords'][] = $number;
+                    } else {
+                        $openList[$v['member_id']]['member_id'] = $v['member_id'];
+                        $openList[$v['member_id']]['amount'] = $v['amount'];
+                        $openList[$v['member_id']]['profit'] = $profit;
+                        $openList[$v['member_id']]['lastStr'] = $lastStr;
+                        $openList[$v['member_id']]['openKeywords'] = [];
+                        $openList[$v['member_id']]['keywords'] = [];
+                        $openList[$v['member_id']]['keywords'][] = $number;
+                        $openList[$v['member_id']]['win_amount'] = 0;
+                        $openList[$v['member_id']]['is_send'] = true;
+                    }
                 }
                 }
+
+                LhcOrderItem::where('id', $value['id'])->update($item);
             }
             }
 
 
-            self::model()::where('id', $v['id'])->update($item);
+            if ($total_amount > 0) {
+                LhcOrder::where("id", $v['id'])->update(['lottery_status' => '1']);
+            } else {
+                LhcOrder::where("id", $v['id'])->update(['lottery_status' => '2', 'win_amount' => $total_amount]);
+            }
         }
         }
         $openList = array_merge($openList, $fakeOpenData['list']);
         $openList = array_merge($openList, $fakeOpenData['list']);