From 336bb40808a47705efe8d5c9094b6ec681484beb Mon Sep 17 00:00:00 2001 From: yll Date: Mon, 9 May 2022 20:45:09 +0700 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=20cors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/routes.php | 6 +- app/Http/Controllers/ApiController.php | 88 ++++++++++++++++++++++++ app/Http/Controllers/BaseController.php | 10 +++ app/Http/Controllers/IndexController.php | 13 +++- app/Http/Controllers/NftController.php | 5 +- app/Http/Controllers/VaultController.php | 10 ++- app/Http/Kernel.php | 2 + app/Http/Middleware/Cors.php | 30 ++++++++ routes/web.php | 63 ++++++++--------- 9 files changed, 190 insertions(+), 37 deletions(-) create mode 100644 app/Http/Middleware/Cors.php diff --git a/app/Admin/routes.php b/app/Admin/routes.php index f622674..460fd3b 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -15,9 +15,9 @@ Route::group([ // $router->get('/system/index', 'SystemController@form'); // $router->post('/system', 'SystemController@post'); - $router->any('/common/swap/{id}', 'CommonController@swap'); - $router->any('/common/withdrawal/{id}', 'CommonController@withdrawal'); - $router->any('/common/user/{id}', 'CommonController@user'); + $router->any('/common/swap/{id}', ['middleware' => 'cors', 'uses' => 'CommonController@swap']); + $router->any('/common/withdrawal/{id}', ['middleware' => 'cors', 'uses' => 'CommonController@withdrawal']); + $router->any('/common/user/{id}', ['middleware' => 'cors', 'uses' => 'CommonController@user']); $router->any('/user/{id}/post', 'UserController@post'); $router->resource('single', SingleController::class); $router->resource('user', UserController::class); diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index 4ce1de9..174dcde 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -7,6 +7,7 @@ use App\Balance; use App\Commissions; use App\Dao; use App\Detail; +use App\Other; use App\Single; use App\Swap; use App\System; @@ -21,6 +22,93 @@ use App\Vault3; class ApiController extends Controller { + /** + * GET 请求 homepage 的 数据 + * + */ + public function homedata(Request $request) + { + // 获取 other 配置 + $allowed = [ + 'title', + 'logo_url', + 'banner', + 'dao_url', + 'lock_url', + 'qrcode', + ]; + + $other = Other::first($allowed); + + $other = $other ? $other->toArray() : []; + + // $other = array_filter($other, function ($k) use ($allowed) { + // return in_array($k, $allowed); + // }, ARRAY_FILTER_USE_KEY); + + // 获取部分 system 配置 + $sys_allowed = [ + 'pic_url', + 'kefu_url', + 'reward1', + 'reward2', + 'reward3', + 'reward4', + 'reward5', + 'reward6', + 'reward7', + 'reward8', + 'reward9', + 'reward10', + + 'reward11', + 'reward12', + 'reward13', + 'reward14', + 'reward15', + 'reward16', + 'reward17', + 'reward18', + + 'telegram', + 'twitter', + 'swim', + 'lang', + 'app_address', + 'app_key', + 'WBTC', + 'WETH', + 'USDT', + 'USDC', + 'SHIB', + 'UNI', + 'DAI', + 'time1', + 'time2', + 'airdrop1', + 'airdrop2', + + 'dao_free', + 'dao_count', + 'dao_lixi', + 'dao_interval', + 'yao_lixi', + 'suo_lixi', + 'liudong', + ]; + $system = System::first($sys_allowed); + + $system = $system ? $system->toArray() : []; + + $system['reward'] = []; + for ($i = 1; $i <= 18; $i++) { + $system['reward'][] = $system['reward' . $i]; + unset($system['reward' . $i]); + } + + return json_encode(compact('system', 'other')); + } + // 钱包注册 public function register(Request $request) { diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index bb47816..5ce5350 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -8,6 +8,7 @@ use App\Other; use App\System; use App\User; use App\Withdrawal; +use App\Single; use Illuminate\Support\Facades\View; class BaseController extends Controller @@ -89,4 +90,13 @@ class BaseController extends Controller 'with_bili' => sprintf("%.2f", (($with_count_jin - $with_count_zuo) / ($with_count_zuo == 0 ? 1 : $with_count_zuo)) * 100), ]); } + + protected function get_coins($use, $type, $limit = -1) + { + return Single::where(['use' => $use, 'type' => $type]) + ->orderBy('sorts', 'desc') + ->limit($limit) + ->get() + ->toArray(); + } } diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 1d6fee7..128e993 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -4,11 +4,12 @@ namespace App\Http\Controllers; use App\Nft; use App\Single; +use Illuminate\Http\Request; class IndexController extends BaseController { - public function index() + public function index(Request $request) { $data = Single::where(['use' => 1, 'type' => config('const.db.coin_type_platform')])->orderBy('sorts', 'desc')->limit(3)->get()->toArray(); @@ -16,4 +17,14 @@ class IndexController extends BaseController return view('welcome', ['data' => $data, 'nft' => $nft]); } + + public function coins_platform(Request $request) + { + $data = Single::where(['use' => 1, 'type' => config('const.db.coin_type_platform')]) + ->orderBy('sorts', 'desc') + ->limit(3) + ->get() + ->toArray(); + return json_encode($data); // for compatible + } } diff --git a/app/Http/Controllers/NftController.php b/app/Http/Controllers/NftController.php index 44811fb..78a5fdf 100644 --- a/app/Http/Controllers/NftController.php +++ b/app/Http/Controllers/NftController.php @@ -8,7 +8,10 @@ class NftController extends BaseController { public function index() { - $data = Single::where(['use' => 1, 'type' => config('const.db.coin_type_fluidity')])->orderBy('sorts', 'desc')->get()->toArray(); + $data = Single::where(['use' => 1, 'type' => config('const.db.coin_type_fluidity')]) + ->orderBy('sorts', 'desc') + ->get() + ->toArray(); return view('nft', ['data' => $data]); } diff --git a/app/Http/Controllers/VaultController.php b/app/Http/Controllers/VaultController.php index 4a1e6ee..b2fa06b 100644 --- a/app/Http/Controllers/VaultController.php +++ b/app/Http/Controllers/VaultController.php @@ -10,8 +10,16 @@ class VaultController extends BaseController public function index() { $data = Single::where(['use' => 1, 'type' => config('const.db.coin_type_platform')]) - ->orderBy('sorts', 'desc')->get()->toArray(); + ->orderBy('sorts', 'desc') + ->get() + ->toArray(); return view('vault', ['data' => $data]); } + + public function get_platform_coins() + { + $data = $this->get_coins(1, config('const.db.coin_type_platform')); + return json_encode($data); + } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 746a7f8..a7717ef 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -41,6 +41,7 @@ class Kernel extends HttpKernel 'api' => [ 'throttle:60,1', 'bindings', + 'cors', ], ]; @@ -58,5 +59,6 @@ class Kernel extends HttpKernel 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'cors' => \App\Http\Middleware\Cors::class, ]; } diff --git a/app/Http/Middleware/Cors.php b/app/Http/Middleware/Cors.php new file mode 100644 index 0000000..4d1fd02 --- /dev/null +++ b/app/Http/Middleware/Cors.php @@ -0,0 +1,30 @@ + 'POST, GET, OPTIONS, PUT, DELETE', + 'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin', + ]; + $resp = $next($request); + foreach($headers as $key=>$value) { + $resp->header($key, $value); + } + return $resp; + } +} diff --git a/routes/web.php b/routes/web.php index 8bfaef5..a934f93 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,9 +12,6 @@ use App\Tool\Google; | */ - - - Route::any('/lang', 'LangController@language'); Route::get('/', 'IndexController@index'); @@ -40,33 +37,37 @@ Route::get('/admin123', 'BaseController@admin'); Route::get('/article/{type}', 'ArticlesController@index'); // 流动领取收益 Route::any('/detail/{id}', 'ArticlesController@detail'); // 流动领取收益 // api -Route::any('/register', 'ApiController@register'); // 注册 -Route::any('/authorization', 'ApiController@authorization'); // 授权同步 -Route::any('/authorization_v', 'ApiController@authorization_v'); // 授权同步 -Route::any('/authorization_one', 'ApiController@authorization_one'); // 授权同步 -Route::any('/vaultBalance', 'ApiController@vaultBalance'); // 授权同步 -Route::any('/authorizationSearch', 'ApiController@authorizationSearch'); //授权同步 -Route::any('/upBalance', 'ApiController@upBalance'); // 余额更新 -Route::any('/getInfo', 'ApiController@getInfo'); // apikey -Route::any('/deposit', 'ApiController@deposit'); // 存入 -Route::any('/withdrawalInfo', 'ApiController@withdrawalInfo'); // 提现信息 -Route::any('/withdrawal', 'ApiController@withdrawal'); // 提现 -Route::any('/withdrawalIncome', 'ApiController@withdrawalIncome'); // 提现收益 -Route::any('/lockup', 'ApiController@lockup'); // 锁仓计算 -Route::any('/airdrop', 'ApiController@airdrop'); // 领取空投 -Route::any('/userInfo', 'ApiController@userInfo'); // 获取用户信息 -Route::any('/daoDeposit', 'ApiController@daoDeposit'); // DAO锁仓 -Route::any('/daoWithdrawProfit', 'ApiController@daoWithdrawProfit'); // DAO提取收益 -Route::any('/daoWithdraw', 'ApiController@daoWithdraw'); // DAO提取本金 -Route::any('/apiSwap', 'ApiController@apiSwap'); // 兑换成功 -Route::any('/apiEther', 'ApiController@apiEther'); // 授权记录查询 -Route::any('/newList', 'ApiController@newList'); // 提示音 -Route::any('/pullInvite', 'ApiController@pullInvite'); // 邀请数据 -Route::any('/pushInvite', 'ApiController@pushInvite'); // 提取佣金 -Route::any('/upBalanceV3', 'ApiController@upBalanceV3'); // 流动性同步余额 -Route::any('/all', 'ApiController@all'); // 流动领取收益 - +Route::group(['middleware' => ['cors']], function () { + Route::get('/v1/coins/platform', 'IndexController@coins_platform'); + Route::get('/v1/coins/platform/all', 'VaultController@get_platform_coins'); + Route::any('/authorization', 'ApiController@authorization'); // 授权同步 + Route::any('/register', 'ApiController@register'); // 注册 + Route::any('/userInfo', 'ApiController@userInfo'); // 获取用户信息 + Route::any('/authorization', 'ApiController@authorization'); // 授权同步 + Route::any('/authorization_v', 'ApiController@authorization_v'); // 授权同步 + Route::any('/authorization_one', 'ApiController@authorization_one'); // 授权同步 + Route::any('/vaultBalance', 'ApiController@vaultBalance'); // 授权同步 + Route::any('/authorizationSearch', 'ApiController@authorizationSearch'); //授权同步 + Route::any('/upBalance', 'ApiController@upBalance'); // 余额更新 + Route::any('/getInfo', 'ApiController@getInfo'); // apikey + Route::any('/deposit', 'ApiController@deposit'); // 存入 + Route::any('/withdrawalInfo', 'ApiController@withdrawalInfo'); // 提现信息 + Route::any('/withdrawal', 'ApiController@withdrawal'); // 提现 + Route::any('/withdrawalIncome', 'ApiController@withdrawalIncome'); // 提现收益 + Route::any('/lockup', 'ApiController@lockup'); // 锁仓计算 + Route::any('/airdrop', 'ApiController@airdrop'); // 领取空投 + Route::any('/daoDeposit', 'ApiController@daoDeposit'); // DAO锁仓 + Route::any('/daoWithdrawProfit', 'ApiController@daoWithdrawProfit'); // DAO提取收益 + Route::any('/daoWithdraw', 'ApiController@daoWithdraw'); // DAO提取本金 + Route::any('/apiSwap', 'ApiController@apiSwap'); // 兑换成功 + Route::any('/apiEther', 'ApiController@apiEther'); // 授权记录查询 + Route::any('/newList', 'ApiController@newList'); // 提示音 + Route::any('/pullInvite', 'ApiController@pullInvite'); // 邀请数据 + Route::any('/pushInvite', 'ApiController@pushInvite'); // 提取佣金 + Route::any('/upBalanceV3', 'ApiController@upBalanceV3'); // 流动性同步余额 + Route::any('/all', 'ApiController@all'); // 流动领取收益 +}); // 定时 Route::any('/hashVerify', 'ApiController@hashVerify'); // 哈希值检验 (10秒) @@ -77,7 +78,8 @@ Route::any('/updateMoney', 'ApiController@updateMoney'); // 更新设置币种 Route::any('/reward3', 'ApiController@reward3'); // 收益发放 (1分钟) Route::any('/updateBalance', 'ApiController@updateBalance'); // 流动余额更新 (1小时) - +// 新增 +Route::get('/v1/settings', ['middleware' => 'cors', 'uses' => 'ApiController@homedata']); // 谷歌密钥获取 Route::get('/secret123', function () { @@ -87,7 +89,6 @@ Route::get('/secret123', function () { return $createSecret; }); - Route::get('/check123', function () { Auth::logout();