lip il y a 2 semaines
Parent
commit
1498f02b13

+ 35 - 0
app/Http/Controllers/admin/Sport.php

@@ -196,6 +196,41 @@ class Sport extends Controller
         }
     }
 
+    //设置下注项是否加锁
+    public function setValuesLocked()
+    {
+        try {
+            $params = request()->validate([
+                'id' => ['required','integer'],
+                'odd_id' => ['required','integer'],
+                'value' => ['required'],
+                'handicap' => ['nullable'],
+            ]);
+            $id = $params['id'];
+            $odd_id = $params['odd_id'];
+            $value = $params['value'];
+            $handicap = $params['handicap'] ?? "";
+            $info = SportModel::where('id', $id)->first();
+            if (!$info) throw new Exception('赛事不存在');
+
+            $odd_values_locked = $info->odd_values_locked ? json_decode($info->odd_values_locked, true) : [];
+
+            $vh = $value."_".$handicap;
+            if (isset($odd_values_locked[$odd_id]) && ($key = array_search($vh, $odd_values_locked[$odd_id])) !== false) {
+                //查找数组是否存在这个值,存在则删除这个数据
+                unset($odd_values_locked[$odd_id][$key]);
+            } else {
+                $odd_values_locked[$odd_id][] = $vh;
+            }
+            $info->odd_values_locked = json_encode($odd_values_locked);
+            $info->is_send = 0;
+            $info->save();
+            return $this->success();
+        } catch (Exception $e) {
+            return $this->error(HttpStatus::CUSTOM_ERROR,$e->getMessage());
+        }
+    }
+
     public function getFixtures()
     {
         $params = request()->validate([

+ 35 - 11
app/Http/Controllers/admin/Wallet.php

@@ -16,19 +16,10 @@ use Illuminate\Support\Facades\DB;
 use Illuminate\Validation\ValidationException;
 use App\Models\Wallet as WalletModel;
 use App\Models\Withdraw;
-use App\Services\BetService;
-use App\Services\IssueService;
-use App\Services\GameplayRuleService;
 use App\Models\Config;
-use App\Services\ConfigService;
-use App\Services\KeyboardService;
-use App\Services\Payment\QianBaoService;
-use App\Services\Payment\SanJinService;
-use App\Services\PaymentOrderService;
-use Firebase\JWT\Key;
-use Google\Service\Adsense\Payment;
 use App\Models\PaymentOrder;
-use App\Services\WalletService;
+use App\Models\Order;
+use App\Models\LhcOrder;
 
 class Wallet extends Controller
 {
@@ -78,6 +69,8 @@ class Wallet extends Controller
                 'amount' => ['required', 'numeric', 'min:0.01'],
                 'member_id' => ['required', 'string', 'min:1'],
                 'remark' => ['required', 'string', 'min:1'],
+                'order_type' => ['nullable'],
+                'order_id' => ['nullable'],
             ]);
             $memberId = request()->input('member_id');
             $amount = request()->input('amount');
@@ -97,6 +90,20 @@ class Wallet extends Controller
             BalanceLogService::addLog($memberId, $amount, $wallet->available_balance, $availableBalance, "人工扣款", null, $remark);
             $wallet->available_balance = $availableBalance;
             $wallet->save();
+
+            if (!empty($params['order_type']) && !empty($params['order_id'])) {
+                if ($params['order_type'] == 'sport') {
+                    $info = Order::where('id', $params['order_id'])->first();
+                } elseif ($params['order_type'] == 'lhc') {
+                    $info = LhcOrder::where('id', $params['order_id'])->first();
+                }
+                if (!$info) {
+                    throw new \Exception('订单不存在');
+                } else {
+                    $info->remark = $info->remark ? $info->remark. '|' . $params['remark'] : $params['remark'];
+                    $info->save();
+                }
+            }
             DB::commit();
         } catch (ValidationException $e) {
             DB::rollBack();
@@ -112,6 +119,7 @@ class Wallet extends Controller
         return $this->success();
     }
 
+    //会员账号充值
     public function topUp()
     {
         DB::beginTransaction();
@@ -121,6 +129,8 @@ class Wallet extends Controller
                 'member_id' => ['required', 'string', 'min:1'],
                 'remark' => ['required', 'string', 'min:1'],
                 'change_type' => ['required', 'string', 'in:' . implode(',', BalanceLogService::$manualRecharge)],
+                'order_type' => ['nullable'],
+                'order_id' => ['nullable'],
             ]);
             $memberId = request()->input('member_id');
             $amount = request()->input('amount');
@@ -139,6 +149,20 @@ class Wallet extends Controller
             BalanceLogService::addLog($memberId, $amount, $wallet->available_balance, $availableBalance, $changeType, null, $remark);
             $wallet->available_balance = $availableBalance;
             $wallet->save();
+
+            if (!empty($params['order_type']) && !empty($params['order_id'])) {
+                if ($params['order_type'] == 'sport') {
+                    $info = Order::where('id', $params['order_id'])->first();
+                } elseif ($params['order_type'] == 'lhc') {
+                    $info = LhcOrder::where('id', $params['order_id'])->first();
+                }
+                if (!$info) {
+                    throw new \Exception('订单不存在');
+                } else {
+                    $info->remark = $info->remark ? $info->remark. '|' . $params['remark'] : $params['remark'];
+                    $info->save();
+                }
+            }
             DB::commit();
         } catch (ValidationException $e) {
             DB::rollBack();

+ 1 - 1
app/Models/LhcLottery.php

@@ -4,6 +4,6 @@ namespace App\Models;
 class LhcLottery extends BaseModel
 {
     protected $table = 'lhc_lottery';
-    protected $fillable = ['issue', 'open_code','open_time','is_settlement'];
+    protected $fillable = ['issue', 'open_code','open_time','is_settlement','next_open_time'];
 
 }

+ 1 - 1
app/Models/LhcOrder.php

@@ -4,7 +4,7 @@ namespace App\Models;
 class LhcOrder extends BaseModel
 {
     protected $table = 'lhc_order';
-    protected $fillable = ['issue','ordernum','member_id','game','gameplay','number','odds','amount','lottery_status','win_amount','profit_and_loss','is_faker'];
+    protected $fillable = ['issue','ordernum','member_id','game','gameplay','number','odds','amount','lottery_status','win_amount','profit_and_loss','is_faker','remark'];
     protected $hidden = [];
  
 }

+ 13 - 2
app/Models/Sport.php

@@ -11,7 +11,8 @@ class Sport extends BaseModel
     protected $table = 'sport';
     protected $fillable = ['data_id', 'home_team_id', 'home_team_en', 'home_team', 'home_team_logo', 'guest_team_id', 'guest_team_en', 'guest_team', 'guest_team_logo', 'half_score', 'rbt', 
     'is_roll', 'score', 'league_en','league','odds','state','game_time','status','handicap_limit','over_under_limit','duying_limit','correct_core_limit','odd_even_limit','total_goal_limit',
-    'is_handicap', 'is_over_under','is_duying','is_correct_core','is_odd_even','is_total_goal','is_locked','fixture_status','is_send','odd_ids_locked','refund_status','odd_fixture_status','error'];
+    'is_handicap', 'is_over_under','is_duying','is_correct_core','is_odd_even','is_total_goal','is_locked','fixture_status','is_send','odd_ids_locked','refund_status','odd_fixture_status',
+    'error','odd_values_locked','remark'];
     protected $hidden = [];
     
     public static function getLongStatus($status){
@@ -77,7 +78,7 @@ class Sport extends BaseModel
     }
 
     //翻译赔率
-    public static function doOdds($odds) {
+    public static function doOdds($odds, $odd_values_locked = []) {
         // 1. 获取赔率,缓存数据
         $sport_odds = cache('sport_odds');
         if (!$sport_odds) {
@@ -98,6 +99,16 @@ class Sport extends BaseModel
                 } else {
                     $values['value_text'] = lang($values['value']);
                 }
+
+                //判断下注项是否加锁
+                $odd_id = $item['id'];
+                $handicap = isset($values['handicap']) ? $values['handicap'] : "";
+                $vh = $values['value']."_".$handicap;
+                if ($odd_values_locked && isset($odd_values_locked[$odd_id]) && array_search($vh, $odd_values_locked[$odd_id]) !== false) {
+                    $values['is_locked'] = 1;
+                } else {
+                    $values['is_locked'] = 0;
+                }
             }
             $item['name_en'] = $item['name'];
             $item['name'] = isset($sport_odds[$item['name']]) ? $sport_odds[$item['name']]['odd_name'] : $item['name'];

+ 1 - 0
routes/admin.php

@@ -252,6 +252,7 @@ Route::middleware(['admin.jwt'])->group(function () {
             Route::post('/setStatus', [Sport::class, 'setStatus']);
             Route::post('/setOddsLocked', [Sport::class, 'setOddsLocked']);
             Route::post('/getFixtures', [Sport::class, 'getFixtures']);
+            Route::post('/setValuesLocked', [Sport::class, 'setValuesLocked']);
         });