100 lines
2.4 KiB
SQL
100 lines
2.4 KiB
SQL
-- 获取用户在指定空间的角色
|
|
-- name: GetUserSpaceRole :one
|
|
SELECT role
|
|
FROM space_member
|
|
WHERE user_id = $1
|
|
AND space_id = $2;
|
|
|
|
-- 插入空间用户
|
|
-- name: InsertSpaceMember :exec
|
|
INSERT INTO space_member(id,space_id,user_id,role,is_default,member_name,sort_number,join_time,update_time)
|
|
VALUES ($1,$2,$3,$4,$5,$6,$7,NOW(),NOW());
|
|
|
|
-- 合计某个用户的空间数量
|
|
-- name: CountUserSpaces :one
|
|
SELECT COUNT(1)
|
|
FROM space_member
|
|
WHERE user_id = $1;
|
|
|
|
-- 更新用户在空间内的名称
|
|
-- name: UpdateSpaceMemberName :exec
|
|
UPDATE space_member SET member_name = $1
|
|
WHERE space_id = $2 AND user_id = $3;
|
|
|
|
-- 更新空间是否为默认
|
|
-- name: UpdateSpaceIsDefault :exec
|
|
UPDATE space_member SET is_default = $1
|
|
WHERE space_id = $2 AND user_id = $3;
|
|
|
|
-- 将用户的其它空间更新为非默认
|
|
-- name: UpdateOtherSpacesIsDefault :exec
|
|
UPDATE space_member
|
|
SET is_default = $1
|
|
WHERE user_id = $2
|
|
AND space_id != $3;
|
|
|
|
-- 更新空间顺序
|
|
-- name: BatchUpdateSpaceSortNumber :batchexec
|
|
UPDATE space_member
|
|
SET sort_number = $1
|
|
WHERE user_id = $2
|
|
AND space_id = $3;
|
|
|
|
-- 退出空间
|
|
-- name: UpdateSpaceMemberExit :exec
|
|
UPDATE space_member
|
|
SET status = 2,
|
|
exit_time = NOW()
|
|
WHERE space_id = $1
|
|
AND user_id = $2;
|
|
|
|
-- name: UpdateSpaceMemberJoin :exec
|
|
UPDATE space_member
|
|
SET status = 0,
|
|
join_time = NOW()
|
|
WHERE space_id = $1
|
|
AND user_id = $2;
|
|
|
|
-- 获取空间下的成员列表
|
|
-- name: ListSpaceMembers :many
|
|
SELECT
|
|
sm.space_id,
|
|
sm.user_id,
|
|
sm.role,
|
|
sm.status AS member_status,
|
|
sm.member_name,
|
|
sm.update_time AS member_update_time,
|
|
sm.join_time,
|
|
|
|
u.avatar,
|
|
u.status AS user_status,
|
|
u.last_login_time
|
|
FROM space_member sm
|
|
LEFT JOIN "user" u
|
|
ON sm.user_id = u.id
|
|
LEFT JOIN space s
|
|
ON sm.space_id = s.id
|
|
WHERE sm.space_id = $1
|
|
AND sm.status != 2
|
|
AND s.status != 2
|
|
ORDER BY sm.role ASC, sm.join_time ASC;
|
|
|
|
-- name: GetSpaceMember :one
|
|
SELECT * FROM space_member WHERE space_id = $1 AND user_id = $2;
|
|
|
|
-- 修改角色
|
|
-- name: UpdateSpaceMemberRole :exec
|
|
UPDATE space_member SET role = $1,update_time = NOW() WHERE space_id = $2 AND user_id = $3;
|
|
|
|
-- 获取该用户的默认空间
|
|
-- name: GetSpaceMemberByDefault :one
|
|
SELECT
|
|
sm.*
|
|
FROM space_member sm
|
|
LEFT JOIN space s
|
|
ON sm.space_id = s.id
|
|
WHERE sm.status != 2
|
|
AND s.status != 2
|
|
AND sm.is_default = 1
|
|
AND sm.user_id = $1;
|