Files
blog-server/internal/db/sqlc/sys_user.sql.go
2026-07-22 17:50:33 +08:00

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
}