Files
workspace/code/allapp/allapp-go/db/queries/space.sql
T
2026-03-02 17:29:51 +08:00

70 lines
1.6 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
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
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
ORDER BY sm.is_default DESC, sm.sort_number ASC;
-- name: UpdateSpaceName :exec
UPDATE space SET name = $1
WHERE id = $2;