\App\Services\AdminLogOperService

操作日志服务

职责:操作审计台账的只读查询——分页列表(search 命中操作人/模块/请求路径/ 客户端 IP,module 与 business_type 精确筛选)与单条详情(含脱敏参数 与响应摘要)。日志表只增不改,本服务无写路径(写入由 LogOperMiddleware 完成)。 数据范围:非超管仅可见本人行。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 分页查询 paginate 分区 2 · 单条详情 show 分区 3 · 数据范围 单源 ScopesLogsToVisible └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
paginate()
show()
No public properties found
No constants found
scopeToVisible()
applySearch()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

paginate()

paginate(array  $filters, int  $perPage, bool  $ownOnly = false) : \Illuminate\Contracts\Pagination\LengthAwarePaginator

操作日志分页查询。

筛选语义:search 模糊命中操作人/模块/请求路径/客户端 IP; module 精确匹配功能模块中文名;business_type 精确匹配(0-4)。 ownOnly=true 恒为本人行(个人中心语义,超管同规)。

Parameters

array $filters
int $perPage
bool $ownOnly

Returns

\Illuminate\Contracts\Pagination\LengthAwarePaginator —

show()

show(int  $id, bool  $ownOnly = false) : \App\Models\LogSysOper

操作日志单条详情

Parameters

int $id
bool $ownOnly

Returns

\App\Models\LogSysOper —

scopeToVisible()

scopeToVisible(\Illuminate\Database\Eloquent\Builder  $query, bool  $ownOnly = false) : void

日志数据范围(单源:登录/操作/拒绝/错误/队列五服务共用): ownOnly=true 恒为本人行(个人中心语义,超管同规,匿名行亦不可见); 否则非超管仅见本人行(user_id 为空的匿名行仅超管可见)。

Parameters

\Illuminate\Database\Eloquent\Builder $query
bool $ownOnly

applySearch()

applySearch(\Illuminate\Database\Eloquent\Builder  $query, mixed  $search, string[]  $columns) : void

多列模糊搜索(单源:日志分页 search 参数同构)。 空 search 直接跳过;命中任一列即返回(OR 语义,与既有行为一致)。

Parameters

\Illuminate\Database\Eloquent\Builder $query
mixed $search
string[] $columns

参与模糊匹配的列名