\App\Services\AdminJobTypeService

队列类型注册表服务

职责:队列申请/编辑/删除的规则锚点——type_code 唯一且创建后不可改(业务代码已引用)、 handler 绑定校验(mail 须绑已注册场景、sms 须绑启用短信模板、custom 须为 SystemJob 子类)、payload_schema 结构归一与载荷校验(必填/strict 未声明拦截/ email/phone 格式)、内置锁定(is_system 禁删禁改编码)、已有队列日志禁删(可停用)。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 列表与读取 list / requireEnabled / schemaFields 分区 2 · 申请与维护 create / update / destroy 分区 3 · 载荷校验 validatePayload 分区 4 · 内部辅助 normalizeSchema / assertHandlerBinding / typeNameMap └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
list()
requireEnabled()
schemaFields()
create()
update()
destroy()
validatePayload()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
normalizeSchema()
assertHandlerBinding()
flattenKeys()
No private properties found
N/A

Methods

list()

list() : array<int,array<string,mixed>>

全部队列类型 + 今日执行统计(队列申请页列表数据源)。

Returns

array> —

requireEnabled()

requireEnabled(string  $typeCode) : \App\Models\SysJobType

取启用队列(投递前置校验)。

Parameters

string $typeCode

Throws

\InvalidArgumentException

队列不存在 / 已停用

Returns

\App\Models\SysJobType —

schemaFields()

schemaFields(\App\Models\SysJobType  $type) : array

载荷字段声明(schema 缺省归一为空清单)

Parameters

\App\Models\SysJobType $type

Returns

array —

create()

create(array<string,mixed>  $data) : \App\Models\SysJobType

申请队列:创建注册表行(界面表单 → 立即可投递,无需代码)。

Parameters

array $data

已通过 Request 校验的字段

Returns

\App\Models\SysJobType —

update()

update(int  $id, array<string,mixed>  $data) : \App\Models\SysJobType

编辑队列:编码/处理器创建后不可改(Request 已 prohibited), 其余字段可调;内置行禁改编码(is_system 锁定)。

Parameters

int $id
array $data

Returns

\App\Models\SysJobType —

destroy()

destroy(int  $id) : void

删除队列:内置锁定与已有队列日志双重拦截(台账不可丢),需停用替代。

Parameters

int $id

Throws

\InvalidArgumentException

内置队列 / 已有队列日志

validatePayload()

validatePayload(\App\Models\SysJobType  $type, array  $payload) : void

载荷校验:必填缺参 / strict 未声明字段 / email、phone 格式。

Parameters

\App\Models\SysJobType $type
array $payload

Throws

\InvalidArgumentException

载荷不满足 schema 声明

normalizeSchema()

normalizeSchema(mixed  $raw) : ?array

schema 归一:{strict, fields:[{name,label,type,required,sensitive,desc}]}; 过滤非法条目(无 name/类型不在白名单/重名去重),保证界面表单与校验同构。

Parameters

mixed $raw

Returns

?array —

assertHandlerBinding()

assertHandlerBinding(\App\Models\SysJobType  $type) : void

处理器绑定校验:mail 场景须已注册 / sms 模板须启用存在 / custom 类须为 SystemJob 子类

Parameters

\App\Models\SysJobType $type

flattenKeys()

flattenKeys(array  $payload, string  $prefix = '') : array

载荷拍平为点路径键(strict 未声明字段比对用;数组元素按 [n] 忽略细节直接拒)

Parameters

array $payload
string $prefix

Returns

array —