Fn_find_modleAllId (function)
根据sModleId获取sAllId
- Type: FUNCTION
-
Returns:
varchar(255) - Deterministic: NO
- SQL data access: CONTAINS SQL
Parameters
| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | p_sModelId |
varchar(255) |
Body
Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTIONFnfind_modleAllId'._
Narrative
Business context: Permission system, one-time initialization.
This is a niche helper, not a runtime utility — it's called by exactly
one routine: sp_do_initsysjurisdiction, which is the proc that
populates the per-user permission table (sysjurisdiction) when an
administrator runs the "initialize permissions" action on the
permission-management page. The function builds the module's full
ancestor-id chain so jurisdictions granted at a parent module
"inherit" to descendants via a LIKE '-{ancestor}-%' match on the
denormalized gdsmodule.sAllId column.
What it does: walks gdsmodule.sParentId up from the input module
and returns the ancestor path joined with -, in the shape
-{root}-{l4}-{l3}-{l2}-{l1}-{p_sModelId}. The leading dash is
intentional — it makes the column suitable for prefix matching.
Where it sits in the module tree: not user-visible; runs only
during permission initialization. Normal page loads read the
already-stored gdsmodule.sAllId column directly.
Caveats:
-
Depth-limited to 5 ancestors. The body unrolls the parent walk
five times; modules deeper than 5 levels fall off the end and the
function returns NULL (no final
RETURNstatement). - The live module tree is ≤4 levels deep today, so this hasn't bitten.