97 lines
2.3 KiB
SQL
97 lines
2.3 KiB
SQL
-- name: CreateSysMenu :one
|
|
INSERT INTO sys_menu (
|
|
name,
|
|
display_name,
|
|
url,
|
|
type,
|
|
parent_id,
|
|
parent_path,
|
|
avatar,
|
|
style,
|
|
visible,
|
|
is_list,
|
|
status,
|
|
sort,
|
|
created_at,
|
|
updated_at
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14
|
|
) RETURNING *;
|
|
|
|
-- name: UpdateSysMenu :one
|
|
UPDATE sys_menu
|
|
SET name = $2,
|
|
display_name = $3,
|
|
url = $4,
|
|
type = $5,
|
|
parent_id = $6,
|
|
parent_path = $7,
|
|
avatar = $8,
|
|
style = $9,
|
|
visible = $10,
|
|
is_list = $11,
|
|
status = $12,
|
|
sort = $13,
|
|
updated_at = $14
|
|
WHERE id = $1
|
|
RETURNING *;
|
|
|
|
-- name: GetSysMenu :one
|
|
SELECT * FROM sys_menu
|
|
WHERE id = $1 LIMIT 1;
|
|
|
|
-- name: GetSysMenuByUrl :one
|
|
SELECT * FROM sys_menu
|
|
WHERE url = $1 LIMIT 1;
|
|
|
|
-- name: AllSysMenu :many
|
|
SELECT * FROM sys_menu
|
|
WHERE status = 0
|
|
ORDER BY sort DESC;
|
|
|
|
-- name: ListSysMenuByRoleID :many
|
|
SELECT * FROM sys_menu
|
|
WHERE id IN (SELECT menu_id
|
|
FROM sys_role_menu
|
|
WHERE role_id = $1);
|
|
|
|
-- name: ListSysMenuIDByRoleID :many
|
|
SELECT menu_id
|
|
FROM sys_role_menu
|
|
WHERE role_id = $1;
|
|
|
|
-- name: ExistsMenu :one
|
|
SELECT EXISTS (
|
|
SELECT 1 FROM sys_menu
|
|
);
|
|
|
|
-- name: RecursiveSysMenus :many
|
|
WITH RECURSIVE dist AS (SELECT sys_menu.*
|
|
FROM sys_menu
|
|
WHERE status = 0
|
|
AND is_list = true
|
|
UNION ALL
|
|
SELECT sys_menu.*
|
|
FROM sys_menu,
|
|
dist
|
|
WHERE sys_menu.id = dist.parent_id)
|
|
SELECT *
|
|
FROM dist
|
|
ORDER BY dist.sort DESC, dist.id ASC;
|
|
|
|
-- name: RecursiveSysMenusByRoleID :many
|
|
WITH RECURSIVE dist AS (SELECT sys_menu.*
|
|
FROM sys_menu
|
|
WHERE status = 0
|
|
AND is_list = true
|
|
AND id IN (SELECT menu_id
|
|
FROM sys_role_menu
|
|
WHERE role_id = $1)
|
|
UNION ALL
|
|
SELECT sys_menu.*
|
|
FROM sys_menu,
|
|
dist
|
|
WHERE sys_menu.id = dist.parent_id)
|
|
SELECT *
|
|
FROM dist
|
|
ORDER BY dist.sort DESC, dist.id ASC; |