1.将部门修改为渠道,并且所有dice_表关联渠道表
2.将所有配置表,记录表设置关联渠道 3.优化后台页面设置
This commit is contained in:
@@ -10,6 +10,7 @@ use support\think\Db;
|
||||
use app\api\logic\GameLogic;
|
||||
use app\api\logic\PlayStartLogic;
|
||||
use app\api\util\ReturnCode;
|
||||
use app\dice\helper\AdminScopeHelper;
|
||||
use app\dice\model\config\DiceConfig;
|
||||
use app\dice\model\ante_config\DiceAnteConfig;
|
||||
use app\dice\model\play_record\DicePlayRecord;
|
||||
@@ -34,7 +35,12 @@ class GameController extends BaseController
|
||||
*/
|
||||
public function config(Request $request): Response
|
||||
{
|
||||
$rows = DiceConfig::select('name', 'group', 'title', 'title_en', 'value', 'value_en', 'create_time', 'update_time')->get();
|
||||
$configDeptId = $this->resolvePlayerConfigDeptIdFromRequest($request);
|
||||
$rows = (new DiceConfig())
|
||||
->field('name,group,title,title_en,value,value_en,create_time,update_time')
|
||||
->where('dept_id', $configDeptId)
|
||||
->select()
|
||||
->toArray();
|
||||
$lang = $request->header('lang', 'zh');
|
||||
if (!is_string($lang) || $lang === '') {
|
||||
$lang = 'zh';
|
||||
@@ -43,15 +49,15 @@ class GameController extends BaseController
|
||||
$isEn = $langLower === 'en' || str_starts_with($langLower, 'en-');
|
||||
$data = [];
|
||||
foreach ($rows as $row) {
|
||||
$group = $row->group ?? '';
|
||||
$group = $row['group'] ?? '';
|
||||
if (!isset($data[$group])) {
|
||||
$data[$group] = [];
|
||||
}
|
||||
$title = $row->title;
|
||||
$value = $row->value;
|
||||
$title = $row['title'] ?? '';
|
||||
$value = $row['value'] ?? '';
|
||||
if ($isEn) {
|
||||
$titleEn = $row->title_en ?? '';
|
||||
$valueEn = $row->value_en ?? '';
|
||||
$titleEn = $row['title_en'] ?? '';
|
||||
$valueEn = $row['value_en'] ?? '';
|
||||
if ($titleEn !== '') {
|
||||
$title = $titleEn;
|
||||
}
|
||||
@@ -60,11 +66,11 @@ class GameController extends BaseController
|
||||
}
|
||||
}
|
||||
$data[$group][] = [
|
||||
'name' => $row->name,
|
||||
'name' => $row['name'] ?? '',
|
||||
'title' => $title,
|
||||
'value' => $value,
|
||||
'create_time' => $row->create_time,
|
||||
'update_time' => $row->update_time,
|
||||
'create_time' => $row['create_time'] ?? '',
|
||||
'update_time' => $row['update_time'] ?? '',
|
||||
];
|
||||
}
|
||||
return $this->success($data);
|
||||
@@ -107,7 +113,8 @@ class GameController extends BaseController
|
||||
*/
|
||||
public function lotteryPool(Request $request): Response
|
||||
{
|
||||
$list = DiceRewardConfig::getCachedList();
|
||||
$configDeptId = $this->resolvePlayerConfigDeptIdFromRequest($request);
|
||||
$list = DiceRewardConfig::getCachedList($configDeptId);
|
||||
$list = array_values(array_filter($list, function ($row) {
|
||||
return (string) ($row['tier'] ?? '') !== 'BIGWIN';
|
||||
}));
|
||||
@@ -145,9 +152,9 @@ class GameController extends BaseController
|
||||
*/
|
||||
public function anteConfig(Request $request): Response
|
||||
{
|
||||
// 用于后续抽奖校验:在接口中实例化 model,后续逻辑可复用相同的数据读取方式。
|
||||
$configDeptId = $this->resolvePlayerConfigDeptIdFromRequest($request);
|
||||
$anteConfigModel = new DiceAnteConfig();
|
||||
$rows = $anteConfigModel->order('id', 'asc')->select()->toArray();
|
||||
$rows = $anteConfigModel->where('dept_id', $configDeptId)->order('id', 'asc')->select()->toArray();
|
||||
return $this->success($rows);
|
||||
}
|
||||
|
||||
@@ -200,7 +207,8 @@ class GameController extends BaseController
|
||||
$rewardTier = array_key_exists('reward_tier', $data) ? (string) ($data['reward_tier'] ?? '') : '';
|
||||
$targetIndex = array_key_exists('target_index', $data) ? (int) ($data['target_index'] ?? 0) : 0;
|
||||
if ($rewardTier !== 'BIGWIN' && $targetIndex > 0) {
|
||||
$configRow = DiceRewardConfig::getCachedById($targetIndex);
|
||||
$configDeptId = AdminScopeHelper::resolvePlayerConfigDeptId($player);
|
||||
$configRow = DiceRewardConfig::getCachedById($targetIndex, $configDeptId);
|
||||
if ($configRow !== null) {
|
||||
$uiText = '';
|
||||
$uiTextEn = '';
|
||||
@@ -273,4 +281,20 @@ class GameController extends BaseController
|
||||
Db::execute('SELECT RELEASE_LOCK(?)', [$lockName]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从 token 注入的 player_id 解析所属渠道配置 ID
|
||||
*/
|
||||
private function resolvePlayerConfigDeptIdFromRequest(Request $request): int
|
||||
{
|
||||
$userId = (int) ($request->player_id ?? 0);
|
||||
if ($userId <= 0) {
|
||||
return AdminScopeHelper::DEFAULT_TEMPLATE_DEPT;
|
||||
}
|
||||
$player = DicePlayer::find($userId);
|
||||
if (!$player) {
|
||||
return AdminScopeHelper::DEFAULT_TEMPLATE_DEPT;
|
||||
}
|
||||
return AdminScopeHelper::resolvePlayerConfigDeptId($player);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user