u
This commit is contained in:
1 parent
1b1a54f7dd
commit
fc005e0fb4
22 files changed
+300
-193
No files matched your search
@@ -20,7 +20,7 @@ func (q *Queries) DeleteSpace(ctx context.Context, id int64) error {
|
||||
}
|
||||
|
||||
const getSpaceById = `-- name: GetSpaceById :one
|
||||
SELECT id, name, invite_code, create_time, update_time FROM space WHERE id = $1
|
||||
SELECT id, name, invite_code, owner_id, create_time, update_time FROM space WHERE id = $1
|
||||
`
|
||||
|
||||
// 根据id获取分享空间信息
|
||||
@@ -31,6 +31,7 @@ func (q *Queries) GetSpaceById(ctx context.Context, id int64) (Space, error) {
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.InviteCode,
|
||||
&i.OwnerID,
|
||||
&i.CreateTime,
|
||||
&i.UpdateTime,
|
||||
)
|
||||
@@ -38,7 +39,7 @@ func (q *Queries) GetSpaceById(ctx context.Context, id int64) (Space, error) {
|
||||
}
|
||||
|
||||
const getSpaceByInviteCode = `-- name: GetSpaceByInviteCode :one
|
||||
SELECT id, name, invite_code, create_time, update_time FROM space WHERE invite_code = $1
|
||||
SELECT id, name, invite_code, owner_id, create_time, update_time FROM space WHERE invite_code = $1
|
||||
`
|
||||
|
||||
// 根据邀请码获取
|
||||
@@ -49,6 +50,7 @@ func (q *Queries) GetSpaceByInviteCode(ctx context.Context, inviteCode string) (
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.InviteCode,
|
||||
&i.OwnerID,
|
||||
&i.CreateTime,
|
||||
&i.UpdateTime,
|
||||
)
|
||||
@@ -57,18 +59,87 @@ func (q *Queries) GetSpaceByInviteCode(ctx context.Context, inviteCode string) (
|
||||
|
||||
const insertSpace = `-- name: InsertSpace :exec
|
||||
INSERT INTO space (
|
||||
id,name,invite_code,create_time,update_time
|
||||
) VALUES ($1,$2,$3,NOW(),NOW())
|
||||
id,name,invite_code,owner_id,create_time,update_time
|
||||
) VALUES ($1,$2,$3,$4,NOW(),NOW())
|
||||
`
|
||||
|
||||
type InsertSpaceParams struct {
|
||||
ID int64
|
||||
Name string
|
||||
InviteCode string
|
||||
OwnerID int64
|
||||
}
|
||||
|
||||
// 创建空间
|
||||
func (q *Queries) InsertSpace(ctx context.Context, arg InsertSpaceParams) error {
|
||||
_, err := q.db.Exec(ctx, insertSpace, arg.ID, arg.Name, arg.InviteCode)
|
||||
_, err := q.db.Exec(ctx, insertSpace,
|
||||
arg.ID,
|
||||
arg.Name,
|
||||
arg.InviteCode,
|
||||
arg.OwnerID,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
const listSpacesByUserId = `-- name: ListSpacesByUserId :many
|
||||
SELECT
|
||||
s.id,
|
||||
s.owner_id,
|
||||
s.name,
|
||||
sm.role,
|
||||
COALESCE(mc.member_count, 0) AS member_count,
|
||||
sm.is_default,
|
||||
sm.user_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
|
||||
`
|
||||
|
||||
type ListSpacesByUserIdRow struct {
|
||||
ID int64
|
||||
OwnerID int64
|
||||
Name string
|
||||
Role int16
|
||||
MemberCount int64
|
||||
IsDefault int16
|
||||
UserName string
|
||||
SortNumber int32
|
||||
}
|
||||
|
||||
func (q *Queries) ListSpacesByUserId(ctx context.Context, userID int64) ([]ListSpacesByUserIdRow, error) {
|
||||
rows, err := q.db.Query(ctx, listSpacesByUserId, userID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []ListSpacesByUserIdRow
|
||||
for rows.Next() {
|
||||
var i ListSpacesByUserIdRow
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.OwnerID,
|
||||
&i.Name,
|
||||
&i.Role,
|
||||
&i.MemberCount,
|
||||
&i.IsDefault,
|
||||
&i.UserName,
|
||||
&i.SortNumber,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
Reference in new issue
Block a user