feat: enhance admin role management and reconciliation features

- Updated AGENTS.md to clarify site admin roles and their associated permissions.
- Refactored reconciliation controllers to include admin user validation and improved access control based on admin roles.
- Enhanced AdminReconcileJobService to support player-specific reconciliation and site-based job creation.
- Removed deprecated rebate commission report functionality from the API and related services.
- Improved dashboard overview builders to accommodate new site operator roles and their specific functionalities.
This commit is contained in:
2026-06-16 16:04:01 +08:00
parent 3a59cc3f42
commit 4e370a79dc
35 changed files with 1230 additions and 180 deletions

View File

@@ -38,7 +38,12 @@ php artisan lottery:admin-auth-audit # 仅体检:受保护路由是
- 后台查询范围统一为:`site_scope ∩ agent_subtree_scope`
- 新增统一入口 `App\Support\AdminScopePolicy`,查询应优先通过该策略应用数据范围。
- `auth/me` 继续返回 `permissions``prd.*`)兼容前端,同时新增 `operational_permissions` 字段用于显式表达可操作权限集合。
- `auth/me` 字段分工:
- `permissions`legacy `prd.*` 产品权限(侧栏、角色 UI、旧页面门控
- `operational_permissions``admin_menu_actions.permission_code`(与 API 中间件鉴权一致)
- `account_kind``super_admin` | `site_admin` | `site_finance` | `site_cs` | `agent_operator` | `platform_account`
前端新代码优先使用 `useAdminPermission().hasAnyCode()``operational_permissions``permissions` / `prd.*` 逐步废弃。
## 已废弃的 `prd.*`(请求体仍可传入,会自动归一)
@@ -70,8 +75,13 @@ php artisan lottery:admin-auth-audit # 仅体检:受保护路由是
### 路径 B平台运营账号单站
1. 平台 **角色管理** 有三个内置角色:**超级管理员**(平台唯一账号,`admin_users.is_super_admin`,不绑定站点,自动拥有全部 `prd.*`)、**站点管理员**`slug=site_admin`,接入站点自动创建的后台账号默认角色,含站点仪表盘 + 代理/玩家/结算运营)、**代理**(经营主账号默认模板)。若需更细的平台运营分工,可在「平台账号」上绑定 **站点管理员****代理** 后按需收窄权限;勿授予 `prd.agent-line.provision`、全站接入密钥类权限。
2. **系统 → 平台账号 → 新建**:填写账号信息,**选择目标站点**`admin_site_id`),勾选上一步角色。
1. 平台 **角色管理** 内置角色:
- **超级管理员**`is_super_admin`,全库唯一,不绑站点)
- **站点管理员**`slug=site_admin`):接入站点默认主运营;代理/玩家/信用结算/钱包对账/经营报表(含导出)/期号只读
- **站点财务**`slug=site_finance`):财务工作台(对账异常、待确认/待收付账单);对账、报表导出、补单冲正、结算收付;不含代理树经营
- **站点客服**`slug=site_cs`):客服工作台(玩家/今日注单);玩家/注单/单用户钱包查询;不含全局报表与代理
- **代理**`slug=agent`):经营主账号默认模板
2. **系统 → 平台账号 → 新建**:填写账号信息,**选择目标站点**`admin_site_id`),勾选角色(默认接入站自动绑 `site_admin`)。
3. 对方登录后仅见绑定站点数据;`auth/me.accessible_sites` 列出可访问站点(单站时一项)。
改角色绑定时须带上同一 `admin_site_id``PUT /api/v1/admin/admin-users/{id}/roles`),仅替换该站点上的角色 pivot不影响其他站点绑定。