\App\Http\Controllers\AdminUserConfigController

用户配置控制器

职责:用户配置模块全部 HTTP 接口的入口,校验入参、编排服务、组装统一响应, 业务下沉 UserConfigService(缓存查询走 PermissionCacheService,导出走 UserConfigExporter)。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 列表与统计 index / overview / show / byPost 分区 2 · 用户写操作 batchStatus / store / update / resetPassword destroy / export / import 分区 3 · 角色与个人权限 syncUserRoles / permissions / syncPermissions 分区 4 · 任职与数据范围 memberships / syncMemberships / scopes / syncScopes └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
__construct()
index()
overview()
show()
byPost()
batchStatus()
store()
update()
resetPassword()
destroy()
export()
import()
syncUserRoles()
permissions()
syncPermissions()
memberships()
syncMemberships()
scopes()
syncScopes()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
$userConfigService
$cacheService
N/A

Properties

$userConfigService

$userConfigService : \App\Services\Admin\UserConfigService

Type

UserConfigService

Methods

__construct()

__construct(\App\Services\Admin\UserConfigService  $userConfigService, \App\Services\Admin\PermissionCacheService  $cacheService) : mixed

Parameters

\App\Services\Admin\UserConfigService $userConfigService
\App\Services\Admin\PermissionCacheService $cacheService

Returns

mixed —

index()

index(\App\Http\Requests\Admin\UserConfigIndexRequest  $request) : \Illuminate\Http\JsonResponse

用户列表

分页查询所有系统用户,支持按用户名、邮箱、真实姓名搜索,支持按状态/部门筛选。

Parameters

\App\Http\Requests\Admin\UserConfigIndexRequest $request

Returns

\Illuminate\Http\JsonResponse —

overview()

overview() : \Illuminate\Http\JsonResponse

用户统计概览

返回总用户数、启用/停用数、超管数,供列表页顶部统计卡。

Returns

\Illuminate\Http\JsonResponse —

show()

show(\App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

用户详情

返回用户信息、角色列表、权限码集合。

Parameters

\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

byPost()

byPost() : \Illuminate\Http\JsonResponse

岗位视角用户分组(岗位表,不进 API 文档)

启用岗位(挂部门)→ 其任职用户(含负责人标记),前端与组织树合并渲染。 数据范围与用户列表同规。

Returns

\Illuminate\Http\JsonResponse —

batchStatus()

batchStatus(\App\Http\Requests\Admin\UserConfigBatchStatusRequest  $request) : \Illuminate\Http\JsonResponse

批量启用/停用

按 id 列表批量切换用户状态。停用的用户会被立即强制下线, 会话与权限缓存同步失效。

Parameters

\App\Http\Requests\Admin\UserConfigBatchStatusRequest $request

Returns

\Illuminate\Http\JsonResponse —

store()

store(\App\Http\Requests\Admin\UserConfigRequest  $request) : \Illuminate\Http\JsonResponse

创建用户

仅超级管理员可将 is_super 置为 1,否则返回 403。

Parameters

\App\Http\Requests\Admin\UserConfigRequest $request

Returns

\Illuminate\Http\JsonResponse —

update()

update(\App\Http\Requests\Admin\UserConfigRequest  $request, \App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

更新用户

非超管操作超管目标、或将 is_super 置 1,返回 403; 停用或超管身份变更后目标用户会被立即强制下线。

Parameters

\App\Http\Requests\Admin\UserConfigRequest $request
\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

resetPassword()

resetPassword(\App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

密码重置

非豁免操作者只能重置自己数据范围内用户的密码,越权返回 403。

Parameters

\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

destroy()

destroy(\App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

删除用户

删除用户及其直授角色、任职、个人数据范围与个人权限记录, 相关缓存自动失效。禁止删除自己,数据范围越权返回 403。

Parameters

\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

export()

export() : \Symfony\Component\HttpFoundation\StreamedResponse

导出用户 CSV

按当前列表筛选条件导出全量可见用户为 CSV 文件, 响应为附件下载流,字段含用户名、姓名、部门、角色、状态等。

Returns

\Symfony\Component\HttpFoundation\StreamedResponse —

import()

import(\App\Http\Requests\Admin\UserConfigRequest  $request) : \Illuminate\Http\JsonResponse

导入用户 CSV

每个导入成功的用户由系统生成随机初始密码,响应 data.passwords 返回 {用户名: 明文初始密码} 列表,仅本次响应可见,请立即分发给对应用户。 非超管导入时,行内"超管=是"的记录会被跳过。

Parameters

\App\Http\Requests\Admin\UserConfigRequest $request

Returns

\Illuminate\Http\JsonResponse —

syncUserRoles()

syncUserRoles(\App\Http\Requests\Admin\UserConfigSyncRolesRequest  $request, \App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

用户角色分配

覆盖式同步用户直授角色:提交的 role_ids 即用户最终直授角色, 限定 kind=2 用户角色,同步后用户权限缓存失效。

Parameters

\App\Http\Requests\Admin\UserConfigSyncRolesRequest $request
\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

permissions()

permissions(\App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

用户个人权限列表(不进 API 文档,理由同 memberships)

返回当前个人权限 id 集 + 可选目录(启用/隐藏菜单下挂的按钮/接口权限,按菜单分组)。

Parameters

\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

syncPermissions()

syncPermissions(\App\Http\Requests\Admin\UserConfigSyncPermissionsRequest  $request, \App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

同步用户个人权限(不进 API 文档,覆盖式)

覆盖式重建:提交的 permission_ids 即该用户最终个人权限(仅按钮/接口权限, 菜单页面可见性仍由角色决定),与角色权限并集生效。

Parameters

\App\Http\Requests\Admin\UserConfigSyncPermissionsRequest $request
\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

memberships()

memberships(\App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

用户任职列表(不进 API 文档)

Parameters

\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

syncMemberships()

syncMemberships(\App\Http\Requests\Admin\UserConfigSyncMembershipsRequest  $request, \App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

同步用户任职(不进 API 文档)

覆盖式更新:每条 = 部门 + 岗位(post_id,任职仅为归属标记, 不再携带数据范围;可见性由岗位范围与个人范围决定)。 任职影响有效权限与数据范围,同步后清缓存。

Parameters

\App\Http\Requests\Admin\UserConfigSyncMembershipsRequest $request
\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

scopes()

scopes(\App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

用户个人数据范围列表(不进 API 文档,理由同 memberships)

Parameters

\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —

syncScopes()

syncScopes(\App\Http\Requests\Admin\UserConfigSyncScopesRequest  $request, \App\Models\SysUser  $user) : \Illuminate\Http\JsonResponse

同步用户个人数据范围(不进 API 文档,覆盖式)

覆盖式重建:提交的 items 即该用户最终个人数据范围(组织 + 部门,dept_id=0 表示整组织), 与岗位范围并集生效。

Parameters

\App\Http\Requests\Admin\UserConfigSyncScopesRequest $request
\App\Models\SysUser $user

Returns

\Illuminate\Http\JsonResponse —