Files
workspace/code/base-project/base-go-v3/db/queries/space_user.sql
T
2025-12-04 17:31:33 +08:00

52 lines
1.2 KiB
SQL

-- 加入空间
-- name: InsertSpaceUser :exec
INSERT INTO space_user(id,space_id,user_id,role)
VALUES ($1,$2,$3,$4);
-- 删除空间下的单个用户
-- name: DeleteSpaceUser :exec
DELETE FROM space_user WHERE user_id = $1;
-- 删除空间下的所有用户
-- name: DeleteSpaceUserAll :exec
DELETE FROM space_user WHERE space_id = $1;
-- 修改角色
-- name: UpdateSpaceUserRole :exec
UPDATE space_user
SET role = $1
WHERE user_id = $2
AND space_id = $3;
-- 获取空间下的所有用户信息(按 role, active_time, username 排序)
-- name: ListSpaceUsers :many
SELECT
u.id AS user_id,
u.username,
u.active_time,
su.role,
su.join_time
FROM space_user su
JOIN space s ON su.space_id = s.id
JOIN user_info u ON su.user_id = u.id
WHERE s.id = $1
ORDER BY su.role ASC,
u.active_time DESC,
u.username ASC;
-- name: GetSpaceUserByUserId :one
SELECT * FROM space_user WHERE user_id = $1;
-- name: GetUserSpaceDetail :one
SELECT
s.id AS space_id,
s.name AS space_name,
s.invite_code AS space_invite_code,
su.id AS space_user_id,
su.user_id,
su.role
FROM space_user su
JOIN space s ON su.space_id = s.id
WHERE su.user_id = $1;