1.优化渠道管理中直属投注额度和总投注额度

2.管理员管理中三个菜单数据显示限制
This commit is contained in:
2026-05-30 15:53:36 +08:00
parent 16a7ef7413
commit f6197a9af5
13 changed files with 195 additions and 92 deletions

View File

@@ -7,6 +7,8 @@ namespace app\common\controller;
use Throwable;
use app\admin\library\Auth;
use app\common\service\AdminChannelScopeService;
use app\common\service\AdminCommissionDistributionService;
use support\think\Db;
use app\common\library\token\TokenExpirationException;
use app\admin\library\traits\Backend as BackendTrait;
use support\Response;
@@ -542,4 +544,49 @@ class Backend extends Api
return array_values(array_unique($paths));
}
/**
* 角色组管理范围内可见的管理员 ID本人 + 代理树下级 + 本人所在组及下级组内管理员)
* 超管或全平台只读范围返回空数组表示不限制
*
* @return int[]
*/
protected function getManageableScopeAdminIds(): array
{
if ($this->auth === null || !$this->auth->isLogin()) {
return [0];
}
if ($this->auth->isSuperAdmin() || $this->hasGlobalReadScope()) {
return [];
}
$operatorId = intval($this->auth->id);
$ids = AdminCommissionDistributionService::getVisibleAdminIdsForOperator($operatorId, false);
$ownGroupIds = Db::name('admin_group_access')->where('uid', $operatorId)->column('group_id');
$childGroupIds = $this->auth->getAdminChildGroups();
$groupIds = array_values(array_unique(array_merge(
array_map(static fn($id) => intval(strval($id)), $ownGroupIds),
array_map(static fn($id) => intval(strval($id)), $childGroupIds)
)));
if ($groupIds !== []) {
$groupAdminIds = Db::name('admin_group_access')
->where('group_id', 'in', $groupIds)
->column('uid');
foreach ($groupAdminIds as $uid) {
$uidInt = intval(strval($uid));
if ($uidInt > 0) {
$ids[] = $uidInt;
}
}
}
if ($operatorId > 0) {
$ids[] = $operatorId;
}
$ids = array_values(array_unique(array_filter($ids, static fn(int $id): bool => $id > 0)));
return $ids === [] ? [0] : $ids;
}
}

View File

@@ -124,7 +124,7 @@ return [
'viewCommissionRecords' => 'View commission records',
'viewDividendRecords' => 'View paid dividend records',
'viewDirectBetRecords' => 'View direct bet records',
'viewSettlementBetRecords' => 'View settlement-scope bets',
'viewSettlementBetRecords' => 'View company bet records',
'viewAllChannels' => 'View all channels',
// 其它中文按钮文案

View File

@@ -56,7 +56,7 @@ return [
'viewCommissionRecords' => '查看代理佣金记录',
'viewDividendRecords' => '查看已分红记录',
'viewDirectBetRecords' => '查看直属投注记录',
'viewSettlementBetRecords' => '查看总投注金额',
'viewSettlementBetRecords' => '查看公司总投注记录',
'viewAllChannels' => '查看所有渠道',
'walletAdjust' => '钱包加减点',
'Markdown文档' => 'Markdown文档',