|
|
@@ -11,6 +11,7 @@ use App\Models\Rebate;
|
|
|
use App\Models\User;
|
|
|
use App\Models\LhcOrder;
|
|
|
use App\Models\Config;
|
|
|
+use App\Models\LhcOrderItem;
|
|
|
use Illuminate\Support\Facades\App;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
@@ -784,6 +785,9 @@ class BetService extends BaseService
|
|
|
$item = [];
|
|
|
$item['lottery_status'] = self::model()::STATUS_LOSS;
|
|
|
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 = [];
|
|
|
|
|
|
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 {
|
|
|
- $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'];
|
|
|
- $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['win_amount'] = $profit;
|
|
|
+ $total_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' => $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']]['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 {
|
|
|
- $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']);
|
|
|
|