78 lines
1.9 KiB
SQL
78 lines
1.9 KiB
SQL
|
|
-- 根据id获取分享空间信息
|
|
-- name: GetSpaceById :one
|
|
SELECT * FROM space WHERE id = $1;
|
|
|
|
-- 创建空间
|
|
-- name: InsertSpace :exec
|
|
INSERT INTO space (
|
|
id,name,invite_code,owner_id,create_time,update_time
|
|
) VALUES ($1,$2,$3,$4,NOW(),NOW());
|
|
|
|
-- name: DissolveSpace :exec
|
|
UPDATE space SET
|
|
status = 2,
|
|
dissolve_time = NOW(),
|
|
update_time = NOW()
|
|
WHERE id = $1;
|
|
|
|
-- 根据邀请码获取
|
|
-- name: GetSpaceByInviteCode :one
|
|
SELECT * FROM space WHERE invite_code = $1;
|
|
|
|
-- name: ListSpacesByUserId :many
|
|
SELECT
|
|
s.id AS space_id,
|
|
s.owner_id,
|
|
s.name,
|
|
sm.role,
|
|
COALESCE(mc.member_count, 0) AS member_count,
|
|
sm.is_default,
|
|
sm.member_name,
|
|
sm.sort_number
|
|
FROM space s
|
|
JOIN space_member sm
|
|
ON s.id = sm.space_id
|
|
LEFT JOIN (
|
|
SELECT space_id, COUNT(*) AS member_count
|
|
FROM space_member
|
|
GROUP BY space_id
|
|
) mc
|
|
ON s.id = mc.space_id
|
|
WHERE sm.user_id = $1 AND s.status != 2 AND sm.status != 2
|
|
ORDER BY sm.is_default DESC, sm.sort_number ASC;
|
|
|
|
-- name: GetSpaceByUserIdAndSpaceId :one
|
|
SELECT
|
|
s.id AS space_id,
|
|
s.owner_id,
|
|
s.name,
|
|
sm.role,
|
|
COALESCE(mc.member_count, 0) AS member_count,
|
|
sm.is_default,
|
|
sm.member_name,
|
|
sm.sort_number,
|
|
s.invite_code
|
|
FROM space s
|
|
JOIN space_member sm
|
|
ON s.id = sm.space_id
|
|
LEFT JOIN (
|
|
SELECT space_id, COUNT(*) AS member_count
|
|
FROM space_member
|
|
GROUP BY space_id
|
|
) mc
|
|
ON s.id = mc.space_id
|
|
WHERE sm.user_id = $1 AND s.id = $2 AND s.status != 2 AND sm.status != 2
|
|
ORDER BY sm.is_default DESC, sm.sort_number ASC;
|
|
|
|
-- name: UpdateSpaceName :exec
|
|
UPDATE space SET name = $1
|
|
WHERE id = $2;
|
|
|
|
-- name: UpdateSpaceOwnerId :exec
|
|
UPDATE space set owner_id = $1,update_time = NOW() WHERE id = $2;
|
|
|
|
-- name: UpdateSpaceInviteCode :exec
|
|
UPDATE space set invite_code = $1,update_time = NOW() WHERE id = $2;
|
|
|