配置接口lang请求头

This commit is contained in:
2026-03-10 11:42:39 +08:00
parent 9452fd28e2
commit 275f94f96d
8 changed files with 178 additions and 10 deletions

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace app\api\controller;
use app\api\util\ApiLang;
use plugin\saiadmin\basic\OpenController;
use support\Response;
/**
* API 控制器基类:根据请求头 langen=英文zh=中文)对返回 message 做双语适配
*/
class BaseController extends OpenController
{
/**
* 成功返回message 按请求头 langen/zh翻译
*/
public function success(array|string $data = [], string $msg = 'success', int $option = JSON_UNESCAPED_UNICODE): Response
{
if (is_string($data)) {
$msg = $data;
$data = [];
}
$msg = ApiLang::translate((string) $msg);
return parent::success($data, $msg, $option);
}
/**
* 失败返回message 按 lang 翻译
*/
public function fail(string $msg = 'fail', int $code = 400): Response
{
$msg = ApiLang::translate($msg);
return parent::fail($msg, $code);
}
}

View File

@@ -13,13 +13,14 @@ use app\dice\model\config\DiceConfig;
use app\dice\model\play_record\DicePlayRecord;
use app\dice\model\player\DicePlayer;
use app\dice\model\reward_config\DiceRewardConfig;
use plugin\saiadmin\basic\OpenController;
use app\api\controller\BaseController;
use app\api\util\ApiLang;
use plugin\saiadmin\exception\ApiException;
/**
* 游戏相关接口(购买抽奖券等)
*/
class GameController extends OpenController
class GameController extends BaseController
{
/**
* 获取游戏配置(按 group 分组)
@@ -115,7 +116,8 @@ class GameController extends OpenController
$minCoin = abs($minEv + 100);
$coin = (float) $player->coin;
if ($coin < $minCoin) {
return $this->success([], '当前玩家余额'.$coin.'小于'.$minCoin.'无法继续游戏');
$msg = ApiLang::translateParams('当前玩家余额%s小于%s无法继续游戏', [$coin, $minCoin], $request);
return $this->success([], $msg);
}
try {

View File

@@ -10,13 +10,13 @@ use app\api\logic\UserLogic;
use app\api\util\ReturnCode;
use app\dice\model\play_record\DicePlayRecord;
use app\dice\model\player_wallet_record\DicePlayerWalletRecord;
use plugin\saiadmin\basic\OpenController;
use app\api\controller\BaseController;
/**
* API 用户登录等
* 登录接口 /api/user/Login 无需 token其余接口需在请求头携带 tokenbase64(username.-.time)),由 TokenMiddleware 鉴权并注入 request->player_id / request->player
*/
class UserController extends OpenController
class UserController extends BaseController
{
/**
* 登录form-data 参数)

View File

@@ -4,8 +4,8 @@ declare(strict_types=1);
namespace app\api\controller\v1;
use app\api\cache\AuthTokenCache;
use app\api\controller\BaseController;
use app\api\util\ReturnCode;
use plugin\saiadmin\basic\OpenController;
use support\Request;
use support\Response;
use Tinywan\Jwt\JwtToken;
@@ -16,7 +16,7 @@ use Tinywan\Jwt\JwtToken;
* GET 参数signature, secret, time, agent_id
* 签名signature = md5(agent_id.secret.time)
*/
class AuthTokenController extends OpenController
class AuthTokenController extends BaseController
{
/**
* 获取 auth-token

View File

@@ -10,7 +10,7 @@ use app\dice\model\play_record\DicePlayRecord;
use app\dice\model\player_wallet_record\DicePlayerWalletRecord;
use app\dice\model\player_ticket_record\DicePlayerTicketRecord;
use support\think\Db;
use plugin\saiadmin\basic\OpenController;
use app\api\controller\BaseController;
use support\Request;
use support\Response;
@@ -18,7 +18,7 @@ use support\Response;
* 平台 v1 游戏接口
* 请求头auth-token
*/
class GameController extends OpenController
class GameController extends BaseController
{
/**
* 获取游戏地址