-- 获取用户在指定空间的角色 -- 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;