427 lines
9.9 KiB
Go
427 lines
9.9 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: sys_user.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
const clearSysUserRoles = `-- name: ClearSysUserRoles :exec
|
|
DELETE
|
|
FROM sys_user_role
|
|
WHERE user_id = $1
|
|
`
|
|
|
|
func (q *Queries) ClearSysUserRoles(ctx context.Context, userID int32) error {
|
|
_, err := q.db.Exec(ctx, clearSysUserRoles, userID)
|
|
return err
|
|
}
|
|
|
|
const countSysUsers = `-- name: CountSysUsers :one
|
|
SELECT COUNT(*)
|
|
FROM sys_users
|
|
`
|
|
|
|
func (q *Queries) CountSysUsers(ctx context.Context) (int64, error) {
|
|
row := q.db.QueryRow(ctx, countSysUsers)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const createSysUser = `-- name: CreateSysUser :exec
|
|
INSERT INTO sys_users (account, username, password_hash, avatar_id)
|
|
VALUES ($1, $2, $3, $4)
|
|
`
|
|
|
|
type CreateSysUserParams struct {
|
|
Account string `json:"account"`
|
|
Username string `json:"username"`
|
|
PasswordHash string `json:"password_hash"`
|
|
AvatarID *int32 `json:"avatar_id"`
|
|
}
|
|
|
|
func (q *Queries) CreateSysUser(ctx context.Context, arg CreateSysUserParams) error {
|
|
_, err := q.db.Exec(ctx, createSysUser,
|
|
arg.Account,
|
|
arg.Username,
|
|
arg.PasswordHash,
|
|
arg.AvatarID,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const createSysUserRole = `-- name: CreateSysUserRole :exec
|
|
INSERT INTO sys_user_role (user_id, role_id)
|
|
VALUES ($1, $2)
|
|
`
|
|
|
|
type CreateSysUserRoleParams struct {
|
|
UserID int32 `json:"user_id"`
|
|
RoleID int32 `json:"role_id"`
|
|
}
|
|
|
|
func (q *Queries) CreateSysUserRole(ctx context.Context, arg CreateSysUserRoleParams) error {
|
|
_, err := q.db.Exec(ctx, createSysUserRole, arg.UserID, arg.RoleID)
|
|
return err
|
|
}
|
|
|
|
const deleteSysUser = `-- name: DeleteSysUser :execrows
|
|
DELETE
|
|
FROM sys_users
|
|
WHERE id = $1
|
|
AND id <> 1
|
|
`
|
|
|
|
func (q *Queries) DeleteSysUser(ctx context.Context, id int32) (int64, error) {
|
|
result, err := q.db.Exec(ctx, deleteSysUser, id)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return result.RowsAffected(), nil
|
|
}
|
|
|
|
const getSysAdminMenus = `-- name: GetSysAdminMenus :many
|
|
SELECT id, name, path, component, type, hidden, sort, status, parent_id, icon, created_at, updated_at
|
|
FROM sys_menus
|
|
ORDER BY sort, id
|
|
`
|
|
|
|
func (q *Queries) GetSysAdminMenus(ctx context.Context) ([]SysMenu, error) {
|
|
rows, err := q.db.Query(ctx, getSysAdminMenus)
|
|
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.Path,
|
|
&i.Component,
|
|
&i.Type,
|
|
&i.Hidden,
|
|
&i.Sort,
|
|
&i.Status,
|
|
&i.ParentID,
|
|
&i.Icon,
|
|
&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 getSysUserApis = `-- name: GetSysUserApis :many
|
|
SELECT DISTINCT a.id,
|
|
a.PATH,
|
|
a.METHOD
|
|
FROM sys_users u
|
|
JOIN sys_user_role ur ON u.id = ur.user_id
|
|
JOIN sys_role_permission rp ON rp.role_id = ur.role_id
|
|
JOIN sys_permissions p ON p.id = rp.permission_id
|
|
AND p.TYPE = 1
|
|
JOIN sys_api_permission ap ON ap.permission_id = p.id
|
|
JOIN sys_apis a ON a.id = ap.api_id
|
|
WHERE u.id = $1
|
|
`
|
|
|
|
type GetSysUserApisRow struct {
|
|
ID int32 `json:"id"`
|
|
Path string `json:"path"`
|
|
Method string `json:"method"`
|
|
}
|
|
|
|
func (q *Queries) GetSysUserApis(ctx context.Context, id int32) ([]GetSysUserApisRow, error) {
|
|
rows, err := q.db.Query(ctx, getSysUserApis, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []GetSysUserApisRow{}
|
|
for rows.Next() {
|
|
var i GetSysUserApisRow
|
|
if err := rows.Scan(&i.ID, &i.Path, &i.Method); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const getSysUserByAccount = `-- name: GetSysUserByAccount :one
|
|
SELECT u.id,
|
|
u.account,
|
|
u.username,
|
|
u.password_hash,
|
|
u.avatar_id,
|
|
f.file_path AS avatar_url,
|
|
u.created_at,
|
|
u.updated_at
|
|
FROM sys_users u
|
|
LEFT JOIN files f ON u.avatar_id = f.id
|
|
WHERE u.account = $1
|
|
`
|
|
|
|
type GetSysUserByAccountRow struct {
|
|
ID int32 `json:"id"`
|
|
Account string `json:"account"`
|
|
Username string `json:"username"`
|
|
PasswordHash string `json:"password_hash"`
|
|
AvatarID *int32 `json:"avatar_id"`
|
|
AvatarUrl *string `json:"avatar_url"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt *time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) GetSysUserByAccount(ctx context.Context, account string) (GetSysUserByAccountRow, error) {
|
|
row := q.db.QueryRow(ctx, getSysUserByAccount, account)
|
|
var i GetSysUserByAccountRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Account,
|
|
&i.Username,
|
|
&i.PasswordHash,
|
|
&i.AvatarID,
|
|
&i.AvatarUrl,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSysUserByID = `-- name: GetSysUserByID :one
|
|
SELECT u.id,
|
|
u.account,
|
|
u.username,
|
|
u.avatar_id,
|
|
f.file_path AS avatar_url,
|
|
u.created_at,
|
|
u.updated_at
|
|
FROM sys_users u
|
|
LEFT JOIN files f ON u.avatar_id = f.id
|
|
WHERE u.id = $1
|
|
`
|
|
|
|
type GetSysUserByIDRow struct {
|
|
ID int32 `json:"id"`
|
|
Account string `json:"account"`
|
|
Username string `json:"username"`
|
|
AvatarID *int32 `json:"avatar_id"`
|
|
AvatarUrl *string `json:"avatar_url"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt *time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) GetSysUserByID(ctx context.Context, id int32) (GetSysUserByIDRow, error) {
|
|
row := q.db.QueryRow(ctx, getSysUserByID, id)
|
|
var i GetSysUserByIDRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Account,
|
|
&i.Username,
|
|
&i.AvatarID,
|
|
&i.AvatarUrl,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSysUserMenus = `-- name: GetSysUserMenus :many
|
|
SELECT DISTINCT m.id, m.name, m.path, m.component, m.type, m.hidden, m.sort, m.status, m.parent_id, m.icon, m.created_at, m.updated_at
|
|
FROM sys_users u
|
|
JOIN sys_user_role ur ON ur.user_id = u.id
|
|
JOIN sys_roles r ON r.id = ur.role_id
|
|
JOIN sys_role_permission rp ON rp.role_id = r.id
|
|
JOIN sys_permissions p ON p.id = rp.permission_id
|
|
JOIN sys_menu_permission mp ON mp.permission_id = p.id
|
|
JOIN sys_menus m ON m.id = mp.menu_id
|
|
WHERE u.id = $1
|
|
ORDER BY m.sort, m.id
|
|
`
|
|
|
|
func (q *Queries) GetSysUserMenus(ctx context.Context, id int32) ([]SysMenu, error) {
|
|
rows, err := q.db.Query(ctx, getSysUserMenus, id)
|
|
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.Path,
|
|
&i.Component,
|
|
&i.Type,
|
|
&i.Hidden,
|
|
&i.Sort,
|
|
&i.Status,
|
|
&i.ParentID,
|
|
&i.Icon,
|
|
&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 getSysUserRoles = `-- name: GetSysUserRoles :many
|
|
SELECT r.id, r.name, r.code, r.created_at, r.updated_at
|
|
FROM sys_roles r
|
|
JOIN sys_user_role ur ON r.id = ur.role_id
|
|
WHERE ur.user_id = $1
|
|
`
|
|
|
|
func (q *Queries) GetSysUserRoles(ctx context.Context, userID int32) ([]SysRole, error) {
|
|
rows, err := q.db.Query(ctx, getSysUserRoles, userID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []SysRole{}
|
|
for rows.Next() {
|
|
var i SysRole
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.Code,
|
|
&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 listSysUsers = `-- name: ListSysUsers :many
|
|
SELECT u.id,
|
|
u.account,
|
|
u.username,
|
|
u.avatar_id,
|
|
f.file_path AS avatar_url,
|
|
u.created_at,
|
|
u.updated_at
|
|
FROM sys_users u
|
|
LEFT JOIN files f ON u.avatar_id = f.id
|
|
ORDER BY u.id
|
|
LIMIT $1 OFFSET $2
|
|
`
|
|
|
|
type ListSysUsersParams struct {
|
|
Limit int32 `json:"limit"`
|
|
Offset int32 `json:"offset"`
|
|
}
|
|
|
|
type ListSysUsersRow struct {
|
|
ID int32 `json:"id"`
|
|
Account string `json:"account"`
|
|
Username string `json:"username"`
|
|
AvatarID *int32 `json:"avatar_id"`
|
|
AvatarUrl *string `json:"avatar_url"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt *time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (q *Queries) ListSysUsers(ctx context.Context, arg ListSysUsersParams) ([]ListSysUsersRow, error) {
|
|
rows, err := q.db.Query(ctx, listSysUsers, arg.Limit, arg.Offset)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []ListSysUsersRow{}
|
|
for rows.Next() {
|
|
var i ListSysUsersRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Account,
|
|
&i.Username,
|
|
&i.AvatarID,
|
|
&i.AvatarUrl,
|
|
&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 updateSysUser = `-- name: UpdateSysUser :execrows
|
|
UPDATE sys_users
|
|
SET username = coalesce($1, username),
|
|
avatar_id = CASE WHEN $2::boolean THEN $3 ELSE avatar_id END
|
|
WHERE id = $4
|
|
`
|
|
|
|
type UpdateSysUserParams struct {
|
|
Username *string `json:"username"`
|
|
UpdateAvatarID bool `json:"update_avatar_id"`
|
|
AvatarID *int32 `json:"avatar_id"`
|
|
ID int32 `json:"id"`
|
|
}
|
|
|
|
func (q *Queries) UpdateSysUser(ctx context.Context, arg UpdateSysUserParams) (int64, error) {
|
|
result, err := q.db.Exec(ctx, updateSysUser,
|
|
arg.Username,
|
|
arg.UpdateAvatarID,
|
|
arg.AvatarID,
|
|
arg.ID,
|
|
)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return result.RowsAffected(), nil
|
|
}
|
|
|
|
const updateSysUserPassword = `-- name: UpdateSysUserPassword :execrows
|
|
UPDATE sys_users
|
|
SET password_hash = $2
|
|
WHERE id = $1
|
|
`
|
|
|
|
type UpdateSysUserPasswordParams struct {
|
|
ID int32 `json:"id"`
|
|
PasswordHash string `json:"password_hash"`
|
|
}
|
|
|
|
func (q *Queries) UpdateSysUserPassword(ctx context.Context, arg UpdateSysUserPasswordParams) (int64, error) {
|
|
result, err := q.db.Exec(ctx, updateSysUserPassword, arg.ID, arg.PasswordHash)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return result.RowsAffected(), nil
|
|
}
|