Tree 9 órája
szülő
commit
a55fa03fa7

+ 1 - 1
app/Game/Config/GameBasicConfig.php

@@ -5,7 +5,7 @@ namespace App\Game\Config;
 class GameBasicConfig
 {
     public static $DOLLAR="$";
-    public static $HallServer="wss://hall.usgamewin.com:443";
+    public static $HallServer="wss://mxhall.usgamewin.com:443";
 
     public static $ApiServer="https://testapi.usgamewin.com";
 }

+ 1 - 1
app/Game/Services/BetbyService.php

@@ -131,7 +131,7 @@ PpwSndlHML59u+kKz6VtRqsCAwEAAQ==
             }
         }
         return [
-            'error' => new ErrorItem(['name' => 'UnknownError', 'description' => 'An unknown error occurred.'])
+            'error' => new ErrorItem(['name' => 'UnknownError', 'description' => trans('messages.api.description.unknown_error')])
         ];
     }
 

+ 1 - 1
app/Game/Services/BetbyTestService.php

@@ -126,7 +126,7 @@ JeepqOs7zNo2srXBfJIQ3n0ZZULIO/hdZInTLXnAGaP+5eUjkSqsQWt3OttRXmA7
             }
         }
         return [
-            'error' => new ErrorItem(['name' => 'UnknownError', 'description' => 'An unknown error occurred.'])
+            'error' => new ErrorItem(['name' => 'UnknownError', 'description' => trans('messages.api.description.unknown_error')])
         ];
     }
 

+ 89 - 95
app/Http/Controllers/Admin/ConfigController.php

@@ -85,32 +85,32 @@ class ConfigController extends Controller
         $kindID = 3018;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场'
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             foreach (range(0, 4) as $v1) {
                 $key = "jackpot_{$kindID}_{$v}_{$v1}";
                 $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-                $descriptions[$key] = "{$rooms[$v]} jackpot彩金池 {$v1}池";
+                $descriptions[$key] = __('config_descriptions.jackpot_pool', ['room' => $rooms[$v], 'pool' => $v1]);
                 $key = "jackpotBase_{$kindID}_{$v}_{$v1}";
                 $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-                $descriptions[$key] = "{$rooms[$v]} jackpot爆出线 {$v1}池";
+                $descriptions[$key] = __('config_descriptions.jackpot_base', ['room' => $rooms[$v], 'pool' => $v1]);
                 $key = "jackpotRate_{$kindID}_{$v}_{$v1}";
                 $config[$key] = $redis->get($key).'%';
-                $descriptions[$key] = "{$rooms[$v]} jackpot占税收比例 {$v1}池";
+                $descriptions[$key] = __('config_descriptions.jackpot_rate', ['room' => $rooms[$v], 'pool' => $v1]);
             }
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -130,30 +130,30 @@ class ConfigController extends Controller
         $kindID = 6001;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场'
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             $key = "jackpot_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} jackpot彩金池";
+            $descriptions[$key] = __('config_descriptions.jackpot_pool_single', ['room' => $rooms[$v]]);
             $key = "jackpotBase_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} jackpot爆出线";
+            $descriptions[$key] = __('config_descriptions.jackpot_base_single', ['room' => $rooms[$v]]);
             $key = "jackpotRate_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) . '%';
-            $descriptions[$key] = "{$rooms[$v]} jackpot占税收比例";
+            $descriptions[$key] = __('config_descriptions.jackpot_rate_single', ['room' => $rooms[$v]]);
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) . '%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -169,21 +169,21 @@ class ConfigController extends Controller
         $kindID = 3019;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场'
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -200,23 +200,22 @@ class ConfigController extends Controller
         $kindID = 5002;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场',
-
-            4 => '超级场'
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high'),
+            4 => __('config_descriptions.room.super')
         ];
         $config = [];
         foreach (range(1, 4) as $v) {
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -231,22 +230,21 @@ class ConfigController extends Controller
         $kindID = 5006;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场',
-
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -261,22 +259,21 @@ class ConfigController extends Controller
         $kindID = 5007;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场',
-
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -291,22 +288,21 @@ class ConfigController extends Controller
         $kindID = 5007;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场',
-
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -321,22 +317,21 @@ class ConfigController extends Controller
         $kindID = 5005;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场',
-
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -380,32 +375,32 @@ class ConfigController extends Controller
         $kindID = 3020;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场'
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             foreach (range(0, 3) as $v1) {
                 $key = "jackpot_{$kindID}_{$v}_{$v1}";
                 $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-                $descriptions[$key] = "{$rooms[$v]} jackpot彩金池 {$v1}池";
+                $descriptions[$key] = __('config_descriptions.jackpot_pool', ['room' => $rooms[$v], 'pool' => $v1]);
                 $key = "jackpotBase_{$kindID}_{$v}_{$v1}";
                 $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-                $descriptions[$key] = "{$rooms[$v]} jackpot爆出线 {$v1}池";
+                $descriptions[$key] = __('config_descriptions.jackpot_base', ['room' => $rooms[$v], 'pool' => $v1]);
                 $key = "jackpotRate_{$kindID}_{$v}_{$v1}";
                 $config[$key] = $redis->get($key).'%';
-                $descriptions[$key] = "{$rooms[$v]} jackpot占税收比例 {$v1}池";
+                $descriptions[$key] = __('config_descriptions.jackpot_rate', ['room' => $rooms[$v], 'pool' => $v1]);
             }
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key).'%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -421,31 +416,31 @@ class ConfigController extends Controller
         $kindID = 3014;
         $descriptions = [];
         $rooms = [
-            1 => '体验场',
-            2 => '初级场',
-            3 => '中级场',
-            4 => '高级场'
+            1 => __('config_descriptions.room.trial'),
+            2 => __('config_descriptions.room.primary'),
+            3 => __('config_descriptions.room.mid'),
+            4 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 4) as $v) {
             $key = "jackpot_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} jackpot彩金池";
+            $descriptions[$key] = __('config_descriptions.jackpot_pool_single', ['room' => $rooms[$v]]);
             $key = "jackpotBase_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} jackpot爆出线";
+            $descriptions[$key] = __('config_descriptions.jackpot_base_single', ['room' => $rooms[$v]]);
             $key = "jackpotRate_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) . '%';
-            $descriptions[$key] = "{$rooms[$v]} jackpot占税收比例";
+            $descriptions[$key] = __('config_descriptions.jackpot_rate_single', ['room' => $rooms[$v]]);
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) . '%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -461,30 +456,30 @@ class ConfigController extends Controller
         $kindID = 3021;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场'
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
             $key = "jackpot_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} jackpot彩金池";
+            $descriptions[$key] = __('config_descriptions.jackpot_pool_single', ['room' => $rooms[$v]]);
             $key = "jackpotBase_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} jackpot爆出线";
+            $descriptions[$key] = __('config_descriptions.jackpot_base_single', ['room' => $rooms[$v]]);
             $key = "jackpotRate_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) . '%';
-            $descriptions[$key] = "{$rooms[$v]} jackpot占税收比例";
+            $descriptions[$key] = __('config_descriptions.jackpot_rate_single', ['room' => $rooms[$v]]);
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) . '%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [
@@ -499,22 +494,21 @@ class ConfigController extends Controller
         $kindID = 5004;
         $descriptions = [];
         $rooms = [
-            1 => '初级场',
-            2 => '中级场',
-            3 => '高级场'
+            1 => __('config_descriptions.room.primary'),
+            2 => __('config_descriptions.room.mid'),
+            3 => __('config_descriptions.room.high')
         ];
         $config = [];
         foreach (range(1, 3) as $v) {
-
             $key = "FreeWinMax_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线以下玩家最多赢多少";
+            $descriptions[$key] = __('config_descriptions.free_win_max', ['room' => $rooms[$v]]);
             $key = "RechargeControl_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) / NumConfig::NUM_VALUE;
-            $descriptions[$key] = "{$rooms[$v]} 充值控制线";
+            $descriptions[$key] = __('config_descriptions.recharge_control', ['room' => $rooms[$v]]);
             $key = "RechargeMaxPercent_{$kindID}_{$v}";
             $config[$key] = $redis->get($key) . '%';
-            $descriptions[$key] = "{$rooms[$v]} 控制线以上玩家 充值上限比例";
+            $descriptions[$key] = __('config_descriptions.recharge_max_percent', ['room' => $rooms[$v]]);
         }
 
         return view('admin.config.treasure_slot', [

+ 2 - 2
app/Http/Controllers/Admin/LotteryController.php

@@ -16,13 +16,13 @@ class LotteryController
         if ($request->method() == 'POST') {
             $val =abs($request->StatusValue) ?: 0;
             $val *= 100;
-            $r = DB::table('QPAccountsDB.dbo.SystemStatusInfo')->where('StatusName','GrantScoreCountNew')->update(['StatusValue'=>$val]);
+            $r = DB::table('QPAccountsDB.dbo.SystemStatusInfo')->where('StatusName','GrantScoreCount')->update(['StatusValue'=>$val]);
             if ($r) {
                 return apiReturnSuc();
             }
             return apiReturnFail('彩金控制修改失败');
         }else{
-            $value = DB::table('QPAccountsDB.dbo.SystemStatusInfo')->where('StatusName','GrantScoreCountNew')->value('StatusValue');
+            $value = DB::table('QPAccountsDB.dbo.SystemStatusInfo')->where('StatusName','GrantScoreCount')->value('StatusValue');
             $value = $value / 100;
             return view('admin.lottery.index',compact('value'));
         }

+ 118 - 70
app/Http/Controllers/Admin/RechargeController.php

@@ -13,6 +13,7 @@ use App\Models\Order;
 use App\Models\Platform\MonthCard;
 use App\Services\OrderServices;
 use App\Services\PayMentService;
+use App\Game\Services\OuroGameService;
 use Carbon\Carbon;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
@@ -325,10 +326,7 @@ class RechargeController extends Controller
                 'request' => $request,
                 'payMethod' => $payMethod,
                 'payMethods' => [
-                    1 => 'cashapp',
-                    2 => 'paypal',
-                    4 => 'applepay',
-                    8 => 'googlepay'
+                    1 => 'SPEI'
                 ]
             ]);
         }
@@ -805,6 +803,63 @@ class RechargeController extends Controller
         }
     }
 
+    /**
+     * 模拟上报 FB 支付事件(仅管理员可用)
+     */
+    public function fbReportMock(Request $request, $id)
+    {
+        try {
+            $admin = $request->session()->get('admin');
+            $roleId = $admin->roles[0]->id ?? 0;
+            if (!in_array($roleId, [1, 12])) {
+                return apiReturnFail('无权限执行该操作');
+            }
+
+            $order = DB::connection('write')->table('agent.dbo.order')->where('id', $id)->first();
+            if (!$order) {
+                return apiReturnFail('订单不存在!');
+            }
+
+            // 只允许对未成功的订单做模拟上报(已到账的默认认为已正常上报)
+            if ((int)$order->pay_status === 1) {
+                return apiReturnFail('仅对未成功订单开放模拟上报');
+            }
+
+            $userId = $order->user_id;
+            $payAmt = $order->amount; // 内部金额单位,保持与原上报一致
+
+            // 构造模拟上报的 params
+            $item = [
+                'regtime' => time(),        // 当前时间
+                'isd0'    => 1,             // 固定为首日
+                'first'   => 1,             // 固定视为首充
+                'golds'   => $payAmt,       // 金额
+                'udis'    => $userId,       // 注意:按需求使用 udis 字段
+                'order_sn'=> $order->order_sn,
+            ];
+
+            // 通过 OuroGameService 模拟一次 pay_finish 上报
+            OuroGameService::notifyWebHall(
+                $userId,
+                '',
+                'pay_finish',
+                [
+                    'Golds' => $payAmt,
+                    'PayNum'=> $payAmt,
+                    'event' => 'pay',
+                    'params'=> $item,
+                ]
+            );
+
+            return apiReturnSuc();
+        } catch (\Exception $exception) {
+            Log::error('模拟 FB 上报失败:' . $exception->getMessage(), [
+                'order_id' => $id,
+            ]);
+            return apiReturnFail('上报失败,请稍后重试');
+        }
+    }
+
 
     public function search($orderId)
     {
@@ -859,7 +914,7 @@ class RechargeController extends Controller
                     ->update([
                         'sort' => 0,
                         'status' => 2
-                ]);
+                    ]);
             }
         }
         return apiReturnSuc();
@@ -929,7 +984,7 @@ class RechargeController extends Controller
             $give = (float)$request->give;
             $pay_methods = (int)$request->pay_methods ?: 0;  // 支付方式位掩码
             $in_shop = (int)$request->input('in_shop', 1);   // 是否在商城展示
-            
+
             $logic = new RechargeLogic();
             $res = $logic->add($money, $status, '', $favorable_price, $give, $pay_methods, $in_shop);
             return apiReturnSuc();
@@ -946,20 +1001,13 @@ class RechargeController extends Controller
             $second_give = (int)($request->second_give ?: 0);
             $pay_methods = (int)($request->pay_methods ?: 0);  // 支付方式位掩码
             $in_shop = (int)$request->input('in_shop', 1);     // 是否在商城展示
-            
+
             // 构建支付方式数组
             $gearData = [];
             $payMethodsMap = [
-                1 => 'cashapp',
-                2 => 'paypal',
-                4 => 'applepay',
-                8 => 'googlepay',
-                64 => 'usdt-trc20',
-                128 => 'usdt-erc20',
-                256 => 'usdc-trc20',
-                512 => 'usdc-erc20'
+                1 => 'SPEI',
             ];
-            
+
             foreach ($payMethodsMap as $value => $name) {
                 if ($pay_methods & $value) {
                     $gearData[] = [
@@ -969,7 +1017,7 @@ class RechargeController extends Controller
                     ];
                 }
             }
-            
+
             $data = [
                 'money' => $money,
                 'favorable_price' => $favorable_price,
@@ -982,7 +1030,7 @@ class RechargeController extends Controller
             return apiReturnSuc();
         } else {
             $info = DB::table('agent.dbo.recharge_gear')->where('id', $id)->first();
-            
+
             // 解析gear字段,计算pay_methods用于回显
             $pay_methods = 0;
             if (!empty($info->gear)) {
@@ -996,7 +1044,7 @@ class RechargeController extends Controller
                 }
             }
             $info->pay_methods = $pay_methods;
-            
+
             return view('admin.recharge.update_config', ['info' => $info]);
         }
 
@@ -1296,7 +1344,7 @@ class RechargeController extends Controller
     public function gift_add(Request $request)
     {
         \Log::info('gift_add method called', ['method' => $request->method()]);
-        
+
         if ($request->isMethod('post')) {
             try {
                 // 获取最大ID
@@ -1315,48 +1363,48 @@ class RechargeController extends Controller
                     'recommend' => round((float)$request->recommend ?: 0, 2),
                 ];
 
-            // 处理每日奖励
-            if ($request->has('day_rewards_enable') && $request->day_rewards_enable) {
-                $day_rewards = [
-                    'total_bonus' => (float)$request->day_rewards_total_bonus ?: 0,
-                    'bonus_day' => (int)$request->day_rewards_bonus_day ?: 0,
-                    'start_day' => (int)$request->day_rewards_start_day ?: 0,
-                    'bonus' => array_map('floatval', explode(',', $request->day_rewards_bonus ?: ''))
-                ];
-                $data['day_rewards'] = json_encode($day_rewards);
-            } else {
-                $data['day_rewards'] = '';
-            }
+                // 处理每日奖励
+                if ($request->has('day_rewards_enable') && $request->day_rewards_enable) {
+                    $day_rewards = [
+                        'total_bonus' => (float)$request->day_rewards_total_bonus ?: 0,
+                        'bonus_day' => (int)$request->day_rewards_bonus_day ?: 0,
+                        'start_day' => (int)$request->day_rewards_start_day ?: 0,
+                        'bonus' => array_map('floatval', explode(',', $request->day_rewards_bonus ?: ''))
+                    ];
+                    $data['day_rewards'] = json_encode($day_rewards);
+                } else {
+                    $data['day_rewards'] = '';
+                }
 
-            // 处理下注奖励
-            if ($request->has('betting_bonus_enable') && $request->betting_bonus_enable) {
-                $betting_bonus = [
-                    'total_bonus' => (float)$request->betting_bonus_total_bonus ?: 0,
-                    'per_bet' => (int)$request->betting_bonus_per_bet ?: 0,
-                    'per_bet_bonus' => (float)$request->betting_bonus_per_bet_bonus ?: 0
-                ];
-                $data['betting_bonus'] = json_encode($betting_bonus);
-            } else {
-                $data['betting_bonus'] = '';
-            }
+                // 处理下注奖励
+                if ($request->has('betting_bonus_enable') && $request->betting_bonus_enable) {
+                    $betting_bonus = [
+                        'total_bonus' => (float)$request->betting_bonus_total_bonus ?: 0,
+                        'per_bet' => (int)$request->betting_bonus_per_bet ?: 0,
+                        'per_bet_bonus' => (float)$request->betting_bonus_per_bet_bonus ?: 0
+                    ];
+                    $data['betting_bonus'] = json_encode($betting_bonus);
+                } else {
+                    $data['betting_bonus'] = '';
+                }
 
-            // 处理下注任务
-            if ($request->has('betting_task_enable') && $request->betting_task_enable) {
-                $betting_task = [
-                    'total_bonus' => (float)$request->betting_task_total_bonus ?: 0,
-                    'bet_pay_times' => (int)$request->betting_task_bet_pay_times ?: 0
-                ];
-                $data['betting_task'] = json_encode($betting_task);
-            } else {
-                $data['betting_task'] = '';
-            }
+                // 处理下注任务
+                if ($request->has('betting_task_enable') && $request->betting_task_enable) {
+                    $betting_task = [
+                        'total_bonus' => (float)$request->betting_task_total_bonus ?: 0,
+                        'bet_pay_times' => (int)$request->betting_task_bet_pay_times ?: 0
+                    ];
+                    $data['betting_task'] = json_encode($betting_task);
+                } else {
+                    $data['betting_task'] = '';
+                }
 
-            // 处理每日任务奖励(数字字段,保留两位小数)
-            if ($request->has('task_bonus')) {
-                $data['task_bonus'] = round((float)$request->task_bonus ?: 0, 2);
-            } else {
-                $data['task_bonus'] = null;
-            }
+                // 处理每日任务奖励(数字字段,保留两位小数)
+                if ($request->has('task_bonus')) {
+                    $data['task_bonus'] = round((float)$request->task_bonus ?: 0, 2);
+                } else {
+                    $data['task_bonus'] = null;
+                }
 
                 DB::connection('write')->table('agent.dbo.recharge_gift')->insert($data);
                 return apiReturnSuc();
@@ -1381,17 +1429,17 @@ class RechargeController extends Controller
     public function gift_update(Request $request, $id)
     {
         if ($request->isMethod('post')) {
-                $data = [
-                    'bonus_instantly' => (int)$request->bonus_instantly ?: 0,
-                    'total_bonus' => (int)$request->total_bonus ?: 0,
-                    'first_pay' => (int)$request->first_pay ?: 0,
-                    'is_vip' => (int)$request->is_vip ?: 0,
-                    'valid_h' => (int)$request->valid_h ?: 0,
-                    'valid_h_2' => (int)$request->valid_h_2 ?: 0,
-                    'gift_id' => (int)$request->gift_id ?: 0,
-                    'gift_name' => $request->gift_name ?: '',
-                    'recommend' => round((float)$request->recommend ?: 0, 2),
-                ];
+            $data = [
+                'bonus_instantly' => (int)$request->bonus_instantly ?: 0,
+                'total_bonus' => (int)$request->total_bonus ?: 0,
+                'first_pay' => (int)$request->first_pay ?: 0,
+                'is_vip' => (int)$request->is_vip ?: 0,
+                'valid_h' => (int)$request->valid_h ?: 0,
+                'valid_h_2' => (int)$request->valid_h_2 ?: 0,
+                'gift_id' => (int)$request->gift_id ?: 0,
+                'gift_name' => $request->gift_name ?: '',
+                'recommend' => round((float)$request->recommend ?: 0, 2),
+            ];
 
             // 处理每日奖励
             if ($request->has('day_rewards_enable') && $request->day_rewards_enable) {

+ 26 - 26
app/Http/Controllers/Game/ActivityController.php

@@ -1006,7 +1006,7 @@ class ActivityController extends Controller
     {
         return [
             'stage1' => [
-                'reward' => 10,
+                'reward' => 50,
                 'tasks' => [
                     [
                         'id' => 'stage1_task1',
@@ -1017,35 +1017,35 @@ class ActivityController extends Controller
                     ],
                     [
                         'id' => 'stage1_task2',
-                        'title' => 'Bet amount reaches 100',
+                        'title' => 'Bet amount reaches 500',
                         'type' => 'bet_amount',
-                        'target' => 100,
+                        'target' => 500,
                         'progress_key' => 'total_bet'
                     ],
                     [
                         'id' => 'stage1_task3',
-                        'title' => 'Deposit amount reaches 29',
+                        'title' => 'Deposit amount reaches 200',
                         'type' => 'recharge',
-                        'target' => 29,
+                        'target' => 200,
                         'progress_key' => 'recharge_count'
                     ]
                 ]
             ],
             'stage2' => [
-                'reward' => 10,
+                'reward' => 50,
                 'tasks' => [
                     [
                         'id' => 'stage2_task1',
-                        'title' => 'Deposit amount reaches 100',
+                        'title' => 'Deposit amount reaches 500',
                         'type' => 'recharge',
-                        'target' => 100,
+                        'target' => 500,
                         'progress_key' => 'played_games_count'
                     ],
                     [
                         'id' => 'stage2_task2',
-                        'title' => 'Bet amount reaches 200',
+                        'title' => 'Bet amount reaches 1000',
                         'type' => 'bet_amount',
-                        'target' => 200,
+                        'target' => 1000,
                         'progress_key' => 'total_bet'
                     ],
                     [
@@ -1063,8 +1063,8 @@ class ActivityController extends Controller
                         'id' => 'stage3_task1',
                         'title_template' => 'Deposit amount reaches {target}', // 使用模板,动态替换目标值
                         'type' => 'recharge',
-                        'target' => 200,
-                        'reward' => 20,
+                        'target' => 500,
+                        'reward' => 50,
                         'progress_key' => 'stage3_recharge_progress',
                         'target_key' => 'stage3_recharge_target'
                     ],
@@ -1072,8 +1072,8 @@ class ActivityController extends Controller
                         'id' => 'stage3_task2',
                         'title_template' => 'Bet amount reaches {target}', // 使用模板,动态替换目标值
                         'type' => 'bet_amount',
-                        'target' => 1000,
-                        'reward' => 20,
+                        'target' => 5000,
+                        'reward' => 50,
                         'progress_key' => 'stage3_bet_progress',
                         'target_key' => 'stage3_bet_target'
                     ]
@@ -1107,8 +1107,8 @@ class ActivityController extends Controller
             'stage3_task2' => false,
             'stage3_task1_withdrawn' => false,
             'stage3_loop_count' => 0,
-            'stage3_recharge_target' => 200,  // 充值目标(初始200,每次+100)
-            'stage3_bet_target' => 1000,       // 下注目标(初始1000,每次+1000)
+            'stage3_recharge_target' => 1000,  // 充值目标(初始200,每次+100)
+            'stage3_bet_target' => 5000,       // 下注目标(初始1000,每次+1000)
             'stage3_recharge_progress' => 0,   // 当前充值总额
             'stage3_bet_progress' => 0,        // 当前下注流水
             'stage3_current_bet' => 0,
@@ -1139,14 +1139,14 @@ class ActivityController extends Controller
 
         // 获取充值次数
         $rechargeCount = $userTotalStatistics?$userTotalStatistics->Recharge:0;
-        $taskData['recharge_count'] = min($rechargeCount,29);
+        $taskData['recharge_count'] = min($rechargeCount,200);
 
         // 获取玩过的游戏数量(去重)
 //        $playedGames = DB::table('QPRecordDB.dbo.RecordUserGameCount')
 //            ->where('UserID', $userId)
 //            ->distinct()
 //            ->count('GameID');
-        $taskData['played_games_count'] = min($rechargeCount,100);;
+        $taskData['played_games_count'] = min($rechargeCount,500);;
 
         // 邀请人数从Redis读取(通过 triggerInvite 方法触发)
         if (!isset($taskData['invite_count'])) {
@@ -1208,10 +1208,10 @@ class ActivityController extends Controller
             
             // 初始化目标值(如果不存在)
             if (!isset($taskData['stage3_recharge_target'])) {
-                $taskData['stage3_recharge_target'] = 200;
+                $taskData['stage3_recharge_target'] = 1000;
             }
             if (!isset($taskData['stage3_bet_target'])) {
-                $taskData['stage3_bet_target'] = 1000;
+                $taskData['stage3_bet_target'] = 5000;
             }
         }
         
@@ -1237,16 +1237,16 @@ class ActivityController extends Controller
     {
         // 阶段1任务检查
         $taskData['stage1_task1'] = $taskData['sign_in_count'] >= 1;
-        $taskData['stage1_task2'] = $taskData['total_bet'] >= 100;
-        $taskData['stage1_task3'] = $taskData['recharge_count'] >= 29;
+        $taskData['stage1_task2'] = $taskData['total_bet'] >= 500;
+        $taskData['stage1_task3'] = $taskData['recharge_count'] >= 200;
         $taskData['stage1_completed'] = $taskData['stage1_task1'] && 
                                          $taskData['stage1_task2'] && 
                                          $taskData['stage1_task3'];
 
         // 阶段2任务检查
         if ($taskData['stage1_completed']) {
-            $taskData['stage2_task1'] = $taskData['played_games_count'] >= 100;
-            $taskData['stage2_task2'] = $taskData['total_bet'] >= 200;
+            $taskData['stage2_task1'] = $taskData['played_games_count'] >= 500;
+            $taskData['stage2_task2'] = $taskData['total_bet'] >= 1000;
             $taskData['stage2_task3'] = $taskData['invite_count'] >= 1;
             $taskData['stage2_completed'] = $taskData['stage2_task1'] && 
                                              $taskData['stage2_task2'] && 
@@ -1255,8 +1255,8 @@ class ActivityController extends Controller
 
         // 阶段3任务检查(循环):需要充值总额和下注流水两个条件都完成
         if ($taskData['stage2_completed']) {
-            $rechargeTarget = $taskData['stage3_recharge_target'] ?? 200;
-            $betTarget = $taskData['stage3_bet_target'] ?? 1000;
+            $rechargeTarget = $taskData['stage3_recharge_target'] ?? 1000;
+            $betTarget = $taskData['stage3_bet_target'] ?? 5000;
             $rechargeProgress = $taskData['stage3_recharge_progress'] ?? 0;
             $betProgress = $taskData['stage3_bet_progress'] ?? 0;
             

+ 1 - 1
app/Http/Controllers/Game/BetbyCenterController.php

@@ -111,7 +111,7 @@ class BetbyCenterController extends Controller
             }
         }
         return [
-            'error' => new ErrorItem(['name' => 'UnknownError', 'description' => 'An unknown error occurred.'])
+            'error' => new ErrorItem(['name' => 'UnknownError', 'description' => trans('messages.api.description.unknown_error')])
         ];
     }
 

+ 48 - 23
app/Http/Controllers/Game/PPlayController.php

@@ -39,6 +39,23 @@ class PPlayController extends Controller
         TelegramBot::getDefault()->sendMsgWithEnv($e->getMessage().$e->getTraceAsString());
     }
 
+    /** Set API response locale from request (lang param or Accept-Language) for description translation */
+    private function setApiLocale(Request $request)
+    {
+        $lang = $request->get('lang') ?: $request->header('Accept-Language', '');
+        if ($lang && preg_match('/^es/i', $lang)) {
+            \App::setLocale('es');
+        } else {
+            \App::setLocale('en');
+        }
+    }
+
+    /** Get translated API description by key */
+    private function desc($key)
+    {
+        return trans('messages.api.description.' . $key);
+    }
+
 
 
     private function callSubApi($ext_player_id,$request)
@@ -159,10 +176,11 @@ window.location.href='".$rs['gameURL']."';
     }
 
     public function authenticate(Request $request){
+        $this->setApiLocale($request);
         $post = $request->all();
         Util::WriteLog('pp_authenticate',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
         $token = $post['token'];
 
@@ -171,20 +189,21 @@ window.location.href='".$rs['gameURL']."';
         }
 
         $user = GlobalUserInfo::getGameUserInfo('GlobalUID', $token);
-        if (!$user) return response()->json(['error' => 2,'description' => 'Player not found ']);
+        if (!$user) return response()->json(['error' => 2,'description' => $this->desc('player_not_found')]);
         $response = [
             'userId' => $token,//$user->UserID,
             'currency' => $this->currency,
             'cash' => GlobalUserInfo::getScoreByUserID($user->UserID),
             'bonus' => 0,
             'error' => 0,
-            'description' => 'Success'
+            'description' => $this->desc('success')
         ];
         return response()->json($response);
     }
 
     public function balance(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
 
         if(!ServerService::IsLocalUser($post['userId'])) {
@@ -194,20 +213,21 @@ window.location.href='".$rs['gameURL']."';
 
         Util::WriteLog('pp_balance',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
         $response = [
             'currency' => $this->currency,
             'cash' => GlobalUserInfo::getScoreByUserID($UserID),
             'bonus' => 0,
             'error' => 0,
-            'description' => 'Success'
+            'description' => $this->desc('success')
         ];
         return response()->json($response);
     }
 
     public function bet(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
 
 
@@ -218,7 +238,7 @@ window.location.href='".$rs['gameURL']."';
 
         Util::WriteLog('pp_bet',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
 
@@ -228,11 +248,11 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_bet'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_bet_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         if(round($post['amount'],2)>round($score,2)){
-            return response()->json(['error' => 1,'description' => 'Insufficient balance']);
+            return response()->json(['error' => 1,'description' => $this->desc('insufficient_balance')]);
         }
 
         $bet = intval($post['amount']*NumConfig::NUM_VALUE);
@@ -243,11 +263,12 @@ window.location.href='".$rs['gameURL']."';
         Redis::set($betKey,$bet);
         Redis::expire($betKey,600);
 
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score-$post['amount'],2),'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score-$post['amount'],2),'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function result(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
 
         if(!ServerService::IsLocalUser($post['userId'])) {
@@ -258,7 +279,7 @@ window.location.href='".$rs['gameURL']."';
 
         Util::WriteLog('pp_result',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $transactionId = $post['reference'];
@@ -267,7 +288,7 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_result'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_win_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         $betKey = 'pp_bet_amount_'.$transactionId;
@@ -283,11 +304,12 @@ window.location.href='".$rs['gameURL']."';
         }
 
         PlatformService::platformWin($UserID,'pp',$post['gameId'],intval($win*NumConfig::NUM_VALUE),$bet,intval($score+$win)*NumConfig::NUM_VALUE);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$win,2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$win,2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function bonusWin(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
 
         if(!ServerService::IsLocalUser($post['userId'])) {
@@ -297,7 +319,7 @@ window.location.href='".$rs['gameURL']."';
 
         Util::WriteLog('pp_bonusWin',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
 
@@ -307,15 +329,16 @@ window.location.href='".$rs['gameURL']."';
 //        $res = SetNXLock::getExclusiveLock('pp_bonusWin'.$transactionId, 600);
 //        if (!$res) {
 //            Util::WriteLog('pp_bonusWin_repeat',$post);
-//            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+//            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
 //        }
 //
 //        PlatformService::platformWin($UserID,'pp','bonusWin',intval($post['amount']*NumConfig::NUM_VALUE),0,intval($score+$post['amount'])*NumConfig::NUM_VALUE);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score,2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score,2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function jackpotWin(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
 
         if(!ServerService::IsLocalUser($post['userId'])) {
@@ -325,7 +348,7 @@ window.location.href='".$rs['gameURL']."';
 
         Util::WriteLog('pp_jackpotWin',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
 
@@ -335,15 +358,16 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_jackpotWin'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_jackpotWin_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         PlatformService::platformWin($UserID,'pp',@$post['gameId'],intval($post['amount']*NumConfig::NUM_VALUE),0,intval($score+$post['amount'])*NumConfig::NUM_VALUE);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function refund(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
         if(!ServerService::IsLocalUser($post['userId'])) {
             return $this->callSubApi($post['userId'],$request);
@@ -352,7 +376,7 @@ window.location.href='".$rs['gameURL']."';
 
         Util::WriteLog('pp_refund',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $transactionId = $post['reference'];
@@ -363,11 +387,12 @@ window.location.href='".$rs['gameURL']."';
             DB::connection('write')->table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->increment('Score', $bet);
         }
 
-        return ['transactionId' => $transactionId,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function promoWin(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
 
         if(!ServerService::IsLocalUser($post['userId'])) {
@@ -377,7 +402,7 @@ window.location.href='".$rs['gameURL']."';
 
         Util::WriteLog('pp_promoWin',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $transactionId = $post['reference'];
@@ -386,11 +411,11 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_promoWin'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_promoWin_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         PlatformService::platformWin($UserID,'pp',@$post['gameId'],intval($post['amount']*NumConfig::NUM_VALUE),0,intval($score+$post['amount'])*NumConfig::NUM_VALUE);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
 
     }
 

+ 42 - 23
app/Http/Controllers/Game/PPlayTestController.php

@@ -32,6 +32,21 @@ class PPlayTestController extends Controller
         $this->currency=env('CONFIG_24680_CURRENCY',$this->currency);
     }
 
+    /** Set API response locale from request for description translation */
+    private function setApiLocale(Request $request)
+    {
+        $lang = $request->get('lang') ?: $request->header('Accept-Language', '');
+        if ($lang && preg_match('/^es/i', $lang)) {
+            \App::setLocale('es');
+        } else {
+            \App::setLocale('en');
+        }
+    }
+
+    private function desc($key)
+    {
+        return trans('messages.api.description.' . $key);
+    }
 
     public function backLobby()
     {
@@ -123,48 +138,51 @@ window.location.href='".$rs['gameURL']."';
     }
 
     public function authenticate(Request $request){
+        $this->setApiLocale($request);
         $post = $request->all();
         Util::WriteLog('pp_authenticate',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
         $token = $post['token'];
         $user = GlobalUserInfo::getGameUserInfo('GlobalUID', $token);
-        if (!$user) return response()->json(['error' => 2,'description' => 'Player not found ']);
+        if (!$user) return response()->json(['error' => 2,'description' => $this->desc('player_not_found')]);
         $response = [
             'userId' => $user->UserID,
             'currency' => $this->currency,
             'cash' => GlobalUserInfo::getScoreByUserID($user->UserID),
             'bonus' => 0,
             'error' => 0,
-            'description' => 'Success'
+            'description' => $this->desc('success')
         ];
         return response()->json($response);
     }
 
     public function balance(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
         Util::WriteLog('pp_balance',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
         $response = [
             'currency' => $this->currency,
             'cash' => GlobalUserInfo::getScoreByUserID($post['userId']),
             'bonus' => 0,
             'error' => 0,
-            'description' => 'Success'
+            'description' => $this->desc('success')
         ];
         return response()->json($response);
     }
 
     public function bet(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
         Util::WriteLog('pp_bet',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $UserID = $post['userId'];
@@ -174,11 +192,11 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_bet'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_bet_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         if(round($post['amount'],2)>round($score,2)){
-            return response()->json(['error' => 1,'description' => 'Insufficient balance']);
+            return response()->json(['error' => 1,'description' => $this->desc('insufficient_balance')]);
         }
 
         $bet = intval($post['amount']*100);
@@ -189,15 +207,16 @@ window.location.href='".$rs['gameURL']."';
         Redis::set($betKey,$bet);
         Redis::expire($betKey,600);
 
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score-$post['amount'],2),'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score-$post['amount'],2),'bonus' => 0,'usedPromo' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function result(Request $request)
     {
+        $this->setApiLocale($request);
         $post = $request->all();
         Util::WriteLog('pp_result',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $UserID = $post['userId'];
@@ -207,7 +226,7 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_result'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_win_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         $betKey = 'pp_bet_amount_'.$transactionId;
@@ -223,7 +242,7 @@ window.location.href='".$rs['gameURL']."';
         }
 
         PlatformService::platformWin($UserID,'PP',$post['gameId'],intval($win*100),$bet,intval($score+$win)*100);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$win,2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$win,2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function bonusWin(Request $request)
@@ -231,7 +250,7 @@ window.location.href='".$rs['gameURL']."';
         $post = $request->all();
         Util::WriteLog('pp_bonusWin',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $UserID = $post['userId'];
@@ -241,11 +260,11 @@ window.location.href='".$rs['gameURL']."';
 //        $res = SetNXLock::getExclusiveLock('pp_bonusWin'.$transactionId, 600);
 //        if (!$res) {
 //            Util::WriteLog('pp_bonusWin_repeat',$post);
-//            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+//            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
 //        }
 //
 //        PlatformService::platformWin($UserID,'PP','bonusWin',intval($post['amount']*100),0,intval($score+$post['amount'])*100);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score,2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score,2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function jackpotWin(Request $request)
@@ -253,7 +272,7 @@ window.location.href='".$rs['gameURL']."';
         $post = $request->all();
         Util::WriteLog('pp_jackpotWin',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $UserID = $post['userId'];
@@ -263,11 +282,11 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_jackpotWin'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_jackpotWin_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         PlatformService::platformWin($UserID,'PP',@$post['gameId'],intval($post['amount']*100),0,intval($score+$post['amount'])*100);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function refund(Request $request)
@@ -275,7 +294,7 @@ window.location.href='".$rs['gameURL']."';
         $post = $request->all();
         Util::WriteLog('pp_refund',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
         $transactionId = $post['reference'];
         $UserID = $post['userId'];
@@ -286,7 +305,7 @@ window.location.href='".$rs['gameURL']."';
             DB::connection('write')->table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->increment('Score', $bet);
         }
 
-        return ['transactionId' => $transactionId,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'error' => 0,'description' => $this->desc('success')];
     }
 
     public function promoWin(Request $request)
@@ -294,7 +313,7 @@ window.location.href='".$rs['gameURL']."';
         $post = $request->all();
         Util::WriteLog('pp_promoWin',$post);
         if(!$this->ppSoftService->checkHash($post)){
-            return response()->json(['error' => 5,'description' => 'Invalid hash code']);
+            return response()->json(['error' => 5,'description' => $this->desc('invalid_hash')]);
         }
 
         $UserID = $post['userId'];
@@ -304,11 +323,11 @@ window.location.href='".$rs['gameURL']."';
         $res = SetNXLock::getExclusiveLock('pp_promoWin'.$transactionId, 600);
         if (!$res) {
             Util::WriteLog('pp_promoWin_repeat',$post);
-            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => 'Success'];
+            return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' => $score,'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
         }
 
         PlatformService::platformWin($UserID,'PP',@$post['gameId'],intval($post['amount']*NumConfig::NUM_VALUE),0,intval($score+$post['amount'])*NumConfig::NUM_VALUE);
-        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => 'Success'];
+        return ['transactionId' => $transactionId,'currency' => $this->currency,'cash' =>round($score+$post['amount'],2),'bonus' => 0,'error' => 0,'description' => $this->desc('success')];
 
     }
 

+ 7 - 7
app/Http/Controllers/Game/PayRechargeController.php

@@ -1195,15 +1195,15 @@ class PayRechargeController extends Controller
 
         // 4. 按规则选择礼包金额
         $amount = null;
-        if ($totalRecharge < 50) {
-            $amount = $avgRecharge < 15 ? 9.99 : 19.99;
+        if ($totalRecharge < 300) {
+            $amount = $avgRecharge < 100 ? 100 : 200;
         } else {
-            if ($avgRecharge < 15) {
-                $amount = 19.99;
-            } elseif ($avgRecharge >= 15 && $avgRecharge < 20) {
-                $amount = 29.99;
+            if ($avgRecharge < 100) {
+                $amount = 200;
+            } elseif ($avgRecharge >= 100 && $avgRecharge < 500) {
+                $amount = 500;
             } else {
-                $amount = 39.99;
+                $amount = 1000;
             }
         }
 

+ 1 - 1
app/Http/Controllers/Game/WebRouteController.php

@@ -142,7 +142,7 @@ class WebRouteController extends Controller
 
 
 
-        $data=['code'=>0,'data'=>$routes,'blocks'=>$blocks,'styles'=>$styles,'user'=>$user];
+        $data=['code'=>0,'data'=>$routes,'blocks'=>$blocks,'styles'=>$styles,'user'=>$user,'me' => GlobalUserInfo::$me];
 
 
         $origin = $request->server('HTTP_ORIGIN') ?? $request->server('HTTP_REFERER')?? '*';

+ 5 - 5
app/Http/Controllers/Game/WithDrawInfoController.php

@@ -30,8 +30,8 @@ class WithDrawInfoController
         $user = $request->user();
         $userScoreData = GlobalUserInfo::getScoreDataByUserID($user->UserID);
         if(!$userScoreData['Recharge']){
-            $totalWithdraw = max($userScoreData['InsureScore'],40);
-            if($userScoreData['InsureScore']<40){
+            $totalWithdraw = max($userScoreData['InsureScore'],200);
+            if($userScoreData['InsureScore']<200){
                 //第一种状态,我免费领了10块钱,但是金额不足40,点进去页面填信息后点击提现,提示我去玩游戏
                 return apiReturnSuc(['state' => 1, 'total' => $totalWithdraw,'InsureScore' => $userScoreData['InsureScore']]);
             }else{
@@ -40,11 +40,11 @@ class WithDrawInfoController
             }
         }else{
             //第四种状态,VIP状态下,金额不足了,进度条颜色红色,按钮灰色(不可点击),次日整个消失
-            if($userScoreData['InsureScore']<10){
-                return apiReturnSuc(['state' => 4, 'total' => max($userScoreData['InsureScore'],40),'InsureScore' => max($userScoreData['InsureScore'],40)]);
+            if($userScoreData['InsureScore']<20){
+                return apiReturnSuc(['state' => 4, 'total' => max($userScoreData['InsureScore'],200),'InsureScore' => max($userScoreData['InsureScore'],200)]);
             }else{
                 //第三种状态,进去完成了充值未提现,提现按钮会高光,引导用户完成提现
-                return apiReturnSuc(['state' => 3, 'total' => max($userScoreData['InsureScore'],40),'InsureScore' => max($userScoreData['InsureScore'],40)]);
+                return apiReturnSuc(['state' => 3, 'total' => max($userScoreData['InsureScore'],200),'InsureScore' => max($userScoreData['InsureScore'],200)]);
             }
         }
     }

+ 5 - 19
app/Http/logic/admin/RechargeLogic.php

@@ -131,16 +131,9 @@ class RechargeLogic extends BaseApiLogic
 
         $names = DB::table('agent.dbo.admin_configs')->where('type', 'pay')->pluck('name', 'id');
         $payMethodsNames = [
-            'cashapp' => 'CashApp',
-            'paypal' => 'PayPal',
-            'applepay' => 'ApplePay',
-            'googlepay' => 'GooglePay',
-            'usdt-trc20' => 'USDT-TRC20',
-            'usdt-erc20' => 'USDT-ERC20',
-            'usdc-trc20' => 'USDC-TRC20',
-            'usdc-erc20' => 'USDC-ERC20'
+            'SPEI' => 'SPEI',
         ];
-        
+
         foreach ($list as &$value) {
 
             $name = [];
@@ -267,16 +260,9 @@ class RechargeLogic extends BaseApiLogic
         // 构建支付方式数组
         $gearData = [];
         $payMethodsMap = [
-            1 => 'cashapp',
-            2 => 'paypal',
-            4 => 'applepay',
-            8 => 'googlepay',
-            64 => 'usdt-trc20',
-            128 => 'usdt-erc20',
-            256 => 'usdc-trc20',
-            512 => 'usdc-erc20'
+            1 => 'SPEI',
         ];
-        
+
         foreach ($payMethodsMap as $value => $name) {
             if ($pay_methods & $value) {
                 $gearData[] = [
@@ -286,7 +272,7 @@ class RechargeLogic extends BaseApiLogic
                 ];
             }
         }
-        
+
         $add_data = [
             'money' => round($money, 2),
             'status' => $status,

+ 1 - 1
app/Services/OrderServices.php

@@ -509,7 +509,7 @@ class  OrderServices
                 DB::connection('write')->table('QPTreasureDB.dbo.GameScoreInfo')
                     ->where('UserID', $user_id)
                     ->update([
-                        'InsureScore' => max($scoreInfo->Score,10000),  // 将Score复制到InsureScore
+                        'InsureScore' => max($scoreInfo->Score,50000),  // 将Score复制到InsureScore
                         'Score' => 0,                         // Score置0
                         'ScoreChange' => 1,                   // ScoreChange设置成1
                         'MaxScore' => 0,                      // MaxScore清0

+ 23 - 0
resources/lang/en/config_descriptions.php

@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * English strings for admin game config descriptions (ConfigController).
+ */
+return [
+    'room' => [
+        'primary' => 'Primary field',
+        'mid' => 'Intermediate field',
+        'high' => 'Advanced field',
+        'trial' => 'Trial field',
+        'super' => 'Super field',
+    ],
+    'jackpot_pool' => ':room jackpot pool :pool',
+    'jackpot_pool_single' => ':room jackpot pool',
+    'jackpot_base' => ':room jackpot trigger line :pool',
+    'jackpot_base_single' => ':room jackpot trigger line',
+    'jackpot_rate' => ':room jackpot tax ratio :pool',
+    'jackpot_rate_single' => ':room jackpot tax ratio',
+    'free_win_max' => ':room max win below recharge control line',
+    'recharge_control' => ':room recharge control line',
+    'recharge_max_percent' => ':room recharge cap ratio above control line',
+];

+ 7 - 0
resources/lang/en/messages.php

@@ -201,6 +201,13 @@ return [
             "unknown_product" => "Unknown product",
             "paytype_error_simple" => "Payment type error"
         ],
+        "description" => [
+            "invalid_hash" => "Invalid hash code",
+            "player_not_found" => "Player not found",
+            "success" => "Success",
+            "insufficient_balance" => "Insufficient balance",
+            "unknown_error" => "An unknown error occurred.",
+        ],
         "game_api" => [
             "user_info_lost" => "User information is lost",
             "player_info_inconsistent" => "Player information is inconsistent",

+ 45 - 0
resources/lang/es/auto.php

@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Spanish translations for admin (auto) - description and content related keys.
+ * Keys are in Chinese (same as en_US/auto.php) for Laravel __('auto.xxx') lookup.
+ */
+return [
+    // 描述相关 (Description related)
+    '角色描述' => 'Descripción del rol',
+    '配置描述' => 'Descripción de la configuración',
+    '输入奖品描述' => 'Ingrese la descripción del premio',
+    '输入商品描述' => 'Ingrese la descripción del producto',
+    '卡券描述:' => 'Descripción del cupón:',
+    '输入卡券描述,商品分类为卡券时必填' => 'Ingrese la descripción del cupón. Obligatorio cuando la categoría del producto es cupón.',
+
+    // 内容相关 (Content related - 描述/内容类)
+    '请在此处编辑内容' => 'Por favor edite el contenido aquí',
+    '消息内容' => 'Contenido del mensaje',
+    '请编辑更新公告内容' => 'Por favor edite el contenido del anuncio de actualización',
+    '版本更新内容' => 'Contenido de la actualización de versión',
+    '请编辑公告内容' => 'Por favor edite el contenido del anuncio',
+    '修改发布内容' => 'Editar contenido publicado',
+    '图片内容' => 'Contenido de la imagen',
+    '发布内容' => 'Contenido publicado',
+    '请编辑礼包内容' => 'Por favor edite el contenido del paquete de regalo',
+    '输入邮件内容' => 'Ingrese el contenido del correo',
+    '附件内容' => 'Contenido del adjunto',
+    '文本内容' => 'Contenido del texto',
+    '单控操作内容' => 'Contenido de la operación de control individual',
+    '请编辑奖品内容' => 'Por favor edite el contenido del premio',
+    '请编辑商品内容' => 'Por favor edite el contenido del producto',
+    '请编辑兑换码内容' => 'Por favor edite el contenido del código de canje',
+    '跟进内容:' => 'Contenido del seguimiento:',
+    '内容' => 'Contenido',
+    '跟进内容不能为空' => 'El contenido del seguimiento no puede estar vacío',
+    '请编辑邮件内容' => 'Por favor edite el contenido del correo',
+    '反馈内容' => 'Contenido de la retroalimentación',
+    '邮件回复内容' => 'Contenido de la respuesta por correo',
+    '举报内容:' => 'Contenido del reporte:',
+    '请选择举报内容' => 'Por favor seleccione el contenido del reporte',
+    '举报内容' => 'Contenido del reporte',
+    '邮件内容' => 'Contenido del correo',
+    '操作内容' => 'Contenido de la operación',
+    '单控生效内容' => 'Contenido efectivo del control individual',
+];

+ 23 - 0
resources/lang/es/config_descriptions.php

@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * Spanish strings for admin game config descriptions (ConfigController).
+ */
+return [
+    'room' => [
+        'primary' => 'Campo inicial',
+        'mid' => 'Campo intermedio',
+        'high' => 'Campo avanzado',
+        'trial' => 'Campo de prueba',
+        'super' => 'Campo súper',
+    ],
+    'jackpot_pool' => ':room pool de jackpot :pool',
+    'jackpot_pool_single' => ':room pool de jackpot',
+    'jackpot_base' => ':room línea de activación jackpot :pool',
+    'jackpot_base_single' => ':room línea de activación jackpot',
+    'jackpot_rate' => ':room proporción de impuesto jackpot :pool',
+    'jackpot_rate_single' => ':room proporción de impuesto jackpot',
+    'free_win_max' => ':room ganancia máxima bajo línea de control de recarga',
+    'recharge_control' => ':room línea de control de recarga',
+    'recharge_max_percent' => ':room proporción tope de recarga por encima de la línea de control',
+];

+ 7 - 0
resources/lang/es/messages.php

@@ -141,6 +141,13 @@ return [
         "adjust" => [
             "not_found" => "No encontrado"
         ],
+        "description" => [
+            "invalid_hash" => "Código hash inválido",
+            "player_not_found" => "Jugador no encontrado",
+            "success" => "Éxito",
+            "insufficient_balance" => "Saldo insuficiente",
+            "unknown_error" => "Ocurrió un error desconocido.",
+        ],
         "register" => [
             "multiple_accounts_ip" => "No se pueden registrar múltiples cuentas desde una IP",
             "phone_empty" => "El número de teléfono está vacío",

+ 3 - 31
resources/views/admin/recharge/add.blade.php

@@ -27,38 +27,10 @@
                                 <div class="form-group">
                                     <label for="pay_methods">*支持的支付方式</label><br>
                                     <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="cashapp" value="1">
-                                        <label class="form-check-label" for="cashapp">CashApp</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="paypal" value="2">
-                                        <label class="form-check-label" for="paypal">PayPal</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="applepay" value="4">
-                                        <label class="form-check-label" for="applepay">ApplePay</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="googlepay" value="8">
-                                        <label class="form-check-label" for="googlepay">GooglePay</label>
-                                    </div>
-                                    <br><br>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdt-trc20" value="64">
-                                        <label class="form-check-label" for="usdt-trc20">USDT-TRC20</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdt-erc20" value="128">
-                                        <label class="form-check-label" for="usdt-erc20">USDT-ERC20</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdc-trc20" value="256">
-                                        <label class="form-check-label" for="usdc-trc20">USDC-TRC20</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdc-erc20" value="512">
-                                        <label class="form-check-label" for="usdc-erc20">USDC-ERC20</label>
+                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="SPEI" value="1">
+                                        <label class="form-check-label" for="SPEI">SPEI</label>
                                     </div>
+
                                 </div>
 
                                 <div class="form-group">

+ 3 - 31
resources/views/admin/recharge/update_config.blade.php

@@ -40,38 +40,10 @@
                                 <div class="form-group">
                                     <label for="pay_methods">*支持的支付方式</label><br>
                                     <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="cashapp" value="1" {{ (($info->pay_methods ?? 0) & 1) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="cashapp">CashApp</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="paypal" value="2" {{ (($info->pay_methods ?? 0) & 2) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="paypal">PayPal</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="applepay" value="4" {{ (($info->pay_methods ?? 0) & 4) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="applepay">ApplePay</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="googlepay" value="8" {{ (($info->pay_methods ?? 0) & 8) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="googlepay">GooglePay</label>
-                                    </div>
-                                    <br><br>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdt-trc20" value="64" {{ (($info->pay_methods ?? 0) & 64) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="usdt-trc20">USDT-TRC20</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdt-erc20" value="128" {{ (($info->pay_methods ?? 0) & 128) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="usdt-erc20">USDT-ERC20</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdc-trc20" value="256" {{ (($info->pay_methods ?? 0) & 256) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="usdc-trc20">USDC-TRC20</label>
-                                    </div>
-                                    <div class="form-check form-check-inline">
-                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="usdc-erc20" value="512" {{ (($info->pay_methods ?? 0) & 512) ? 'checked' : '' }}>
-                                        <label class="form-check-label" for="usdc-erc20">USDC-ERC20</label>
+                                        <input class="form-check-input" type="checkbox" name="pay_methods[]" id="SPEI" value="1" {{ (($info->pay_methods ?? 0) & 1) ? 'checked' : '' }}>
+                                        <label class="form-check-label" for="SPEI">SPEI</label>
                                     </div>
+
                                 </div>
 
                                 <button type="button" onclick="commit({{$info->id}})" class="btn btn-sm btn-gradient-primary btn-icon-text">