483 lines
12 KiB
Go
483 lines
12 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.28.0
|
|
// source: sys_menu.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
const allSysMenu = `-- name: AllSysMenu :many
|
|
SELECT id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at FROM sys_menu
|
|
WHERE status = 0
|
|
ORDER BY sort DESC
|
|
`
|
|
|
|
func (q *Queries) AllSysMenu(ctx context.Context) ([]*SysMenu, error) {
|
|
rows, err := q.db.Query(ctx, allSysMenu)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []*SysMenu{}
|
|
for rows.Next() {
|
|
var i SysMenu
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, &i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const createSysMenu = `-- 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 id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at
|
|
`
|
|
|
|
type CreateSysMenuParams struct {
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
Url string `json:"url"`
|
|
Type string `json:"type"`
|
|
ParentID int32 `json:"parent_id"`
|
|
ParentPath string `json:"parent_path"`
|
|
Avatar string `json:"avatar"`
|
|
Style string `json:"style"`
|
|
Visible bool `json:"visible"`
|
|
IsList bool `json:"is_list"`
|
|
Status int32 `json:"status"`
|
|
Sort int32 `json:"sort"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) CreateSysMenu(ctx context.Context, arg *CreateSysMenuParams) (*SysMenu, error) {
|
|
row := q.db.QueryRow(ctx, createSysMenu,
|
|
arg.Name,
|
|
arg.DisplayName,
|
|
arg.Url,
|
|
arg.Type,
|
|
arg.ParentID,
|
|
arg.ParentPath,
|
|
arg.Avatar,
|
|
arg.Style,
|
|
arg.Visible,
|
|
arg.IsList,
|
|
arg.Status,
|
|
arg.Sort,
|
|
arg.CreatedAt,
|
|
arg.UpdatedAt,
|
|
)
|
|
var i SysMenu
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return &i, err
|
|
}
|
|
|
|
const existsMenu = `-- name: ExistsMenu :one
|
|
SELECT EXISTS (
|
|
SELECT 1 FROM sys_menu
|
|
)
|
|
`
|
|
|
|
func (q *Queries) ExistsMenu(ctx context.Context) (bool, error) {
|
|
row := q.db.QueryRow(ctx, existsMenu)
|
|
var exists bool
|
|
err := row.Scan(&exists)
|
|
return exists, err
|
|
}
|
|
|
|
const getSysMenu = `-- name: GetSysMenu :one
|
|
SELECT id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at FROM sys_menu
|
|
WHERE id = $1 LIMIT 1
|
|
`
|
|
|
|
func (q *Queries) GetSysMenu(ctx context.Context, id int32) (*SysMenu, error) {
|
|
row := q.db.QueryRow(ctx, getSysMenu, id)
|
|
var i SysMenu
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return &i, err
|
|
}
|
|
|
|
const getSysMenuByUrl = `-- name: GetSysMenuByUrl :one
|
|
SELECT id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at FROM sys_menu
|
|
WHERE url = $1 LIMIT 1
|
|
`
|
|
|
|
func (q *Queries) GetSysMenuByUrl(ctx context.Context, url string) (*SysMenu, error) {
|
|
row := q.db.QueryRow(ctx, getSysMenuByUrl, url)
|
|
var i SysMenu
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return &i, err
|
|
}
|
|
|
|
const listSysMenuByRoleID = `-- name: ListSysMenuByRoleID :many
|
|
SELECT id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at FROM sys_menu
|
|
WHERE id IN (SELECT menu_id
|
|
FROM sys_role_menu
|
|
WHERE role_id = $1)
|
|
`
|
|
|
|
func (q *Queries) ListSysMenuByRoleID(ctx context.Context, roleID int32) ([]*SysMenu, error) {
|
|
rows, err := q.db.Query(ctx, listSysMenuByRoleID, roleID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []*SysMenu{}
|
|
for rows.Next() {
|
|
var i SysMenu
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, &i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listSysMenuIDByRoleID = `-- name: ListSysMenuIDByRoleID :many
|
|
SELECT menu_id
|
|
FROM sys_role_menu
|
|
WHERE role_id = $1
|
|
`
|
|
|
|
func (q *Queries) ListSysMenuIDByRoleID(ctx context.Context, roleID int32) ([]int32, error) {
|
|
rows, err := q.db.Query(ctx, listSysMenuIDByRoleID, roleID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []int32{}
|
|
for rows.Next() {
|
|
var menu_id int32
|
|
if err := rows.Scan(&menu_id); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, menu_id)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const recursiveSysMenus = `-- name: RecursiveSysMenus :many
|
|
WITH RECURSIVE dist AS (SELECT sys_menu.id, sys_menu.name, sys_menu.display_name, sys_menu.url, sys_menu.type, sys_menu.parent_id, sys_menu.parent_path, sys_menu.avatar, sys_menu.style, sys_menu.visible, sys_menu.is_list, sys_menu.status, sys_menu.sort, sys_menu.created_at, sys_menu.updated_at
|
|
FROM sys_menu
|
|
WHERE status = 0
|
|
AND is_list = true
|
|
UNION ALL
|
|
SELECT sys_menu.id, sys_menu.name, sys_menu.display_name, sys_menu.url, sys_menu.type, sys_menu.parent_id, sys_menu.parent_path, sys_menu.avatar, sys_menu.style, sys_menu.visible, sys_menu.is_list, sys_menu.status, sys_menu.sort, sys_menu.created_at, sys_menu.updated_at
|
|
FROM sys_menu,
|
|
dist
|
|
WHERE sys_menu.id = dist.parent_id)
|
|
SELECT id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at
|
|
FROM dist
|
|
ORDER BY dist.sort DESC, dist.id ASC
|
|
`
|
|
|
|
type RecursiveSysMenusRow struct {
|
|
ID int32 `json:"id"`
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
Url string `json:"url"`
|
|
Type string `json:"type"`
|
|
ParentID int32 `json:"parent_id"`
|
|
ParentPath string `json:"parent_path"`
|
|
Avatar string `json:"avatar"`
|
|
Style string `json:"style"`
|
|
Visible bool `json:"visible"`
|
|
IsList bool `json:"is_list"`
|
|
Status int32 `json:"status"`
|
|
Sort int32 `json:"sort"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) RecursiveSysMenus(ctx context.Context) ([]*RecursiveSysMenusRow, error) {
|
|
rows, err := q.db.Query(ctx, recursiveSysMenus)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []*RecursiveSysMenusRow{}
|
|
for rows.Next() {
|
|
var i RecursiveSysMenusRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, &i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const recursiveSysMenusByRoleID = `-- name: RecursiveSysMenusByRoleID :many
|
|
WITH RECURSIVE dist AS (SELECT sys_menu.id, sys_menu.name, sys_menu.display_name, sys_menu.url, sys_menu.type, sys_menu.parent_id, sys_menu.parent_path, sys_menu.avatar, sys_menu.style, sys_menu.visible, sys_menu.is_list, sys_menu.status, sys_menu.sort, sys_menu.created_at, sys_menu.updated_at
|
|
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.id, sys_menu.name, sys_menu.display_name, sys_menu.url, sys_menu.type, sys_menu.parent_id, sys_menu.parent_path, sys_menu.avatar, sys_menu.style, sys_menu.visible, sys_menu.is_list, sys_menu.status, sys_menu.sort, sys_menu.created_at, sys_menu.updated_at
|
|
FROM sys_menu,
|
|
dist
|
|
WHERE sys_menu.id = dist.parent_id)
|
|
SELECT id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at
|
|
FROM dist
|
|
ORDER BY dist.sort DESC, dist.id ASC
|
|
`
|
|
|
|
type RecursiveSysMenusByRoleIDRow struct {
|
|
ID int32 `json:"id"`
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
Url string `json:"url"`
|
|
Type string `json:"type"`
|
|
ParentID int32 `json:"parent_id"`
|
|
ParentPath string `json:"parent_path"`
|
|
Avatar string `json:"avatar"`
|
|
Style string `json:"style"`
|
|
Visible bool `json:"visible"`
|
|
IsList bool `json:"is_list"`
|
|
Status int32 `json:"status"`
|
|
Sort int32 `json:"sort"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) RecursiveSysMenusByRoleID(ctx context.Context, roleID int32) ([]*RecursiveSysMenusByRoleIDRow, error) {
|
|
rows, err := q.db.Query(ctx, recursiveSysMenusByRoleID, roleID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []*RecursiveSysMenusByRoleIDRow{}
|
|
for rows.Next() {
|
|
var i RecursiveSysMenusByRoleIDRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, &i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const updateSysMenu = `-- 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 id, name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort, created_at, updated_at
|
|
`
|
|
|
|
type UpdateSysMenuParams struct {
|
|
ID int32 `json:"id"`
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
Url string `json:"url"`
|
|
Type string `json:"type"`
|
|
ParentID int32 `json:"parent_id"`
|
|
ParentPath string `json:"parent_path"`
|
|
Avatar string `json:"avatar"`
|
|
Style string `json:"style"`
|
|
Visible bool `json:"visible"`
|
|
IsList bool `json:"is_list"`
|
|
Status int32 `json:"status"`
|
|
Sort int32 `json:"sort"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) UpdateSysMenu(ctx context.Context, arg *UpdateSysMenuParams) (*SysMenu, error) {
|
|
row := q.db.QueryRow(ctx, updateSysMenu,
|
|
arg.ID,
|
|
arg.Name,
|
|
arg.DisplayName,
|
|
arg.Url,
|
|
arg.Type,
|
|
arg.ParentID,
|
|
arg.ParentPath,
|
|
arg.Avatar,
|
|
arg.Style,
|
|
arg.Visible,
|
|
arg.IsList,
|
|
arg.Status,
|
|
arg.Sort,
|
|
arg.UpdatedAt,
|
|
)
|
|
var i SysMenu
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.DisplayName,
|
|
&i.Url,
|
|
&i.Type,
|
|
&i.ParentID,
|
|
&i.ParentPath,
|
|
&i.Avatar,
|
|
&i.Style,
|
|
&i.Visible,
|
|
&i.IsList,
|
|
&i.Status,
|
|
&i.Sort,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return &i, err
|
|
}
|