80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| -- name: CreateSysUser :one
 | |
| INSERT INTO sys_user (
 | |
|     uuid, 
 | |
|     email, 
 | |
|     username, 
 | |
|     hashed_password, 
 | |
|     salt, 
 | |
|     avatar, 
 | |
|     gender, 
 | |
|     department_id, 
 | |
|     role_id, 
 | |
|     status, 
 | |
|     change_password_at, 
 | |
|     created_at, 
 | |
|     updated_at
 | |
| ) VALUES (
 | |
|     $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13
 | |
| ) RETURNING *;
 | |
| 
 | |
| -- name: UpdateSysUser :one
 | |
| UPDATE sys_user
 | |
| SET username           = $2,
 | |
|     hashed_password    = $3,
 | |
|     avatar             = $4,
 | |
|     gender             = $5,
 | |
|     department_id      = $6,
 | |
|     role_id            = $7,
 | |
|     status             = $8,
 | |
|     change_password_at = $9,
 | |
|     updated_at         = $10
 | |
| WHERE id = $1
 | |
| RETURNING *;
 | |
| 
 | |
| -- name: GetSysUser :one
 | |
| SELECT * FROM sys_user
 | |
| WHERE id = $1 LIMIT 1;
 | |
| 
 | |
| -- name: GetSysUserByEmail :one
 | |
| SELECT * FROM sys_user
 | |
| WHERE email = $1 LIMIT 1;
 | |
| 
 | |
| -- name: CountSysUser :one
 | |
| SELECT COUNT(*) FROM sys_user
 | |
| WHERE status = 0;
 | |
| 
 | |
| -- name: ListSysUser :many
 | |
| SELECT * FROM sys_user
 | |
| WHERE status = 0
 | |
| ORDER BY created_at DESC;
 | |
| 
 | |
| -- name: CountSysUserCondition :one
 | |
| SELECT COUNT(*) FROM sys_user
 | |
| WHERE (NOT @is_status::Boolean OR status = @status)
 | |
|     AND (NOT @is_id::Boolean OR id = @id)
 | |
|     AND (@username::text = '' OR username ILIKE '%' || @username || '%')
 | |
|     AND (@email::text = '' OR email ILIKE '%' || @email || '%');
 | |
| 
 | |
| -- name: ListSysUserCondition :many
 | |
| SELECT id, uuid, email, username, avatar, gender, department_id, role_id, status, change_password_at, created_at, updated_at,
 | |
|        (SELECT name FROM sys_department WHERE ID = sys_user.department_id)          AS department_name,
 | |
|        (SELECT display_name
 | |
|         FROM sys_role
 | |
|         WHERE id = sys_user.role_id)                                                AS role_name
 | |
| FROM sys_user
 | |
| WHERE (NOT @is_status::Boolean OR sys_user.status = @status)
 | |
|     AND (NOT @is_id::Boolean OR sys_user.id = @id)
 | |
|     AND (@username::text = '' OR sys_user.username ILIKE '%' || @username || '%')
 | |
|     AND (@email::text = '' OR sys_user.email ILIKE '%' || @email || '%')
 | |
| ORDER BY created_at DESC
 | |
| OFFSET @skip
 | |
| LIMIT @size;
 | |
| 
 | |
| -- name: ExistsSysUser :one
 | |
| SELECT EXISTS (
 | |
|     SELECT 1 FROM sys_user
 | |
| );
 | |
| 
 | |
| -- name: ListSysUserByIds :many
 | |
| SELECT * FROM sys_user
 | |
| WHERE id = ANY($1::int[]); |