u
This commit is contained in:
1 parent
2efeb7cee2
commit
c0531c1d0a
35 files changed
+1817
-984
No files matched your search
@@ -68,3 +68,10 @@ 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;
|
||||
|
||||
@@ -43,6 +43,57 @@ WHERE user_id = $2
|
||||
-- 退出空间
|
||||
-- name: UpdateSpaceMemberExit :exec
|
||||
UPDATE space_member
|
||||
SET status = 2 AND exit_time = NOW()
|
||||
SET status = 2,
|
||||
exit_time = NOW()
|
||||
WHERE space_id = $1
|
||||
AND user_id = $2;
|
||||
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;
|
||||
@@ -12,6 +12,9 @@ WHERE o.openid = $1
|
||||
AND o.type = $2
|
||||
LIMIT 1;
|
||||
|
||||
-- name: GetUserById :one
|
||||
SELECT * FROM "user" WHERE id = $1;
|
||||
|
||||
-- name: InsertUser :exec
|
||||
INSERT INTO "user" (
|
||||
id,
|
||||
|
||||
@@ -211,6 +211,20 @@ func (q *Queries) ListSpacesByUserId(ctx context.Context, userID int64) ([]ListS
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const updateSpaceInviteCode = `-- name: UpdateSpaceInviteCode :exec
|
||||
UPDATE space set invite_code = $1,update_time = NOW() WHERE id = $2
|
||||
`
|
||||
|
||||
type UpdateSpaceInviteCodeParams struct {
|
||||
InviteCode string
|
||||
ID int64
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateSpaceInviteCode(ctx context.Context, arg UpdateSpaceInviteCodeParams) error {
|
||||
_, err := q.db.Exec(ctx, updateSpaceInviteCode, arg.InviteCode, arg.ID)
|
||||
return err
|
||||
}
|
||||
|
||||
const updateSpaceName = `-- name: UpdateSpaceName :exec
|
||||
UPDATE space SET name = $1
|
||||
WHERE id = $2
|
||||
@@ -225,3 +239,17 @@ func (q *Queries) UpdateSpaceName(ctx context.Context, arg UpdateSpaceNameParams
|
||||
_, err := q.db.Exec(ctx, updateSpaceName, arg.Name, arg.ID)
|
||||
return err
|
||||
}
|
||||
|
||||
const updateSpaceOwnerId = `-- name: UpdateSpaceOwnerId :exec
|
||||
UPDATE space set owner_id = $1,update_time = NOW() WHERE id = $2
|
||||
`
|
||||
|
||||
type UpdateSpaceOwnerIdParams struct {
|
||||
OwnerID int64
|
||||
ID int64
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateSpaceOwnerId(ctx context.Context, arg UpdateSpaceOwnerIdParams) error {
|
||||
_, err := q.db.Exec(ctx, updateSpaceOwnerId, arg.OwnerID, arg.ID)
|
||||
return err
|
||||
}
|
||||
@@ -7,6 +7,8 @@ package repo
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const countUserSpaces = `-- name: CountUserSpaces :one
|
||||
@@ -23,6 +25,68 @@ func (q *Queries) CountUserSpaces(ctx context.Context, userID int64) (int64, err
|
||||
return count, err
|
||||
}
|
||||
|
||||
const getSpaceMember = `-- name: GetSpaceMember :one
|
||||
SELECT id, space_id, user_id, role, is_default, sort_number, member_name, status, disabled_time, exit_time, join_time, update_time FROM space_member WHERE space_id = $1 AND user_id = $2
|
||||
`
|
||||
|
||||
type GetSpaceMemberParams struct {
|
||||
SpaceID int64
|
||||
UserID int64
|
||||
}
|
||||
|
||||
func (q *Queries) GetSpaceMember(ctx context.Context, arg GetSpaceMemberParams) (SpaceMember, error) {
|
||||
row := q.db.QueryRow(ctx, getSpaceMember, arg.SpaceID, arg.UserID)
|
||||
var i SpaceMember
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.SpaceID,
|
||||
&i.UserID,
|
||||
&i.Role,
|
||||
&i.IsDefault,
|
||||
&i.SortNumber,
|
||||
&i.MemberName,
|
||||
&i.Status,
|
||||
&i.DisabledTime,
|
||||
&i.ExitTime,
|
||||
&i.JoinTime,
|
||||
&i.UpdateTime,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getSpaceMemberByDefault = `-- name: GetSpaceMemberByDefault :one
|
||||
SELECT
|
||||
sm.id, sm.space_id, sm.user_id, sm.role, sm.is_default, sm.sort_number, sm.member_name, sm.status, sm.disabled_time, sm.exit_time, sm.join_time, sm.update_time
|
||||
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
|
||||
`
|
||||
|
||||
// 获取该用户的默认空间
|
||||
func (q *Queries) GetSpaceMemberByDefault(ctx context.Context, userID int64) (SpaceMember, error) {
|
||||
row := q.db.QueryRow(ctx, getSpaceMemberByDefault, userID)
|
||||
var i SpaceMember
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.SpaceID,
|
||||
&i.UserID,
|
||||
&i.Role,
|
||||
&i.IsDefault,
|
||||
&i.SortNumber,
|
||||
&i.MemberName,
|
||||
&i.Status,
|
||||
&i.DisabledTime,
|
||||
&i.ExitTime,
|
||||
&i.JoinTime,
|
||||
&i.UpdateTime,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getUserSpaceRole = `-- name: GetUserSpaceRole :one
|
||||
SELECT role
|
||||
FROM space_member
|
||||
@@ -72,6 +136,75 @@ func (q *Queries) InsertSpaceMember(ctx context.Context, arg InsertSpaceMemberPa
|
||||
return err
|
||||
}
|
||||
|
||||
const listSpaceMembers = `-- 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
|
||||
`
|
||||
|
||||
type ListSpaceMembersRow struct {
|
||||
SpaceID int64
|
||||
UserID int64
|
||||
Role int16
|
||||
MemberStatus int16
|
||||
MemberName string
|
||||
MemberUpdateTime pgtype.Timestamptz
|
||||
JoinTime pgtype.Timestamptz
|
||||
Avatar pgtype.Text
|
||||
UserStatus pgtype.Int2
|
||||
LastLoginTime pgtype.Timestamptz
|
||||
}
|
||||
|
||||
// 获取空间下的成员列表
|
||||
func (q *Queries) ListSpaceMembers(ctx context.Context, spaceID int64) ([]ListSpaceMembersRow, error) {
|
||||
rows, err := q.db.Query(ctx, listSpaceMembers, spaceID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []ListSpaceMembersRow
|
||||
for rows.Next() {
|
||||
var i ListSpaceMembersRow
|
||||
if err := rows.Scan(
|
||||
&i.SpaceID,
|
||||
&i.UserID,
|
||||
&i.Role,
|
||||
&i.MemberStatus,
|
||||
&i.MemberName,
|
||||
&i.MemberUpdateTime,
|
||||
&i.JoinTime,
|
||||
&i.Avatar,
|
||||
&i.UserStatus,
|
||||
&i.LastLoginTime,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const updateOtherSpacesIsDefault = `-- name: UpdateOtherSpacesIsDefault :exec
|
||||
UPDATE space_member
|
||||
SET is_default = $1
|
||||
@@ -110,7 +243,8 @@ func (q *Queries) UpdateSpaceIsDefault(ctx context.Context, arg UpdateSpaceIsDef
|
||||
|
||||
const updateSpaceMemberExit = `-- name: UpdateSpaceMemberExit :exec
|
||||
UPDATE space_member
|
||||
SET status = 2 AND exit_time = NOW()
|
||||
SET status = 2,
|
||||
exit_time = NOW()
|
||||
WHERE space_id = $1
|
||||
AND user_id = $2
|
||||
`
|
||||
@@ -126,6 +260,24 @@ func (q *Queries) UpdateSpaceMemberExit(ctx context.Context, arg UpdateSpaceMemb
|
||||
return err
|
||||
}
|
||||
|
||||
const updateSpaceMemberJoin = `-- name: UpdateSpaceMemberJoin :exec
|
||||
UPDATE space_member
|
||||
SET status = 0,
|
||||
join_time = NOW()
|
||||
WHERE space_id = $1
|
||||
AND user_id = $2
|
||||
`
|
||||
|
||||
type UpdateSpaceMemberJoinParams struct {
|
||||
SpaceID int64
|
||||
UserID int64
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateSpaceMemberJoin(ctx context.Context, arg UpdateSpaceMemberJoinParams) error {
|
||||
_, err := q.db.Exec(ctx, updateSpaceMemberJoin, arg.SpaceID, arg.UserID)
|
||||
return err
|
||||
}
|
||||
|
||||
const updateSpaceMemberName = `-- name: UpdateSpaceMemberName :exec
|
||||
UPDATE space_member SET member_name = $1
|
||||
WHERE space_id = $2 AND user_id = $3
|
||||
@@ -142,3 +294,19 @@ func (q *Queries) UpdateSpaceMemberName(ctx context.Context, arg UpdateSpaceMemb
|
||||
_, err := q.db.Exec(ctx, updateSpaceMemberName, arg.MemberName, arg.SpaceID, arg.UserID)
|
||||
return err
|
||||
}
|
||||
|
||||
const updateSpaceMemberRole = `-- name: UpdateSpaceMemberRole :exec
|
||||
UPDATE space_member SET role = $1,update_time = NOW() WHERE space_id = $2 AND user_id = $3
|
||||
`
|
||||
|
||||
type UpdateSpaceMemberRoleParams struct {
|
||||
Role int16
|
||||
SpaceID int64
|
||||
UserID int64
|
||||
}
|
||||
|
||||
// 修改角色
|
||||
func (q *Queries) UpdateSpaceMemberRole(ctx context.Context, arg UpdateSpaceMemberRoleParams) error {
|
||||
_, err := q.db.Exec(ctx, updateSpaceMemberRole, arg.Role, arg.SpaceID, arg.UserID)
|
||||
return err
|
||||
}
|
||||
@@ -52,6 +52,25 @@ func (q *Queries) FindUserByOpenID(ctx context.Context, arg FindUserByOpenIDPara
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getUserById = `-- name: GetUserById :one
|
||||
SELECT id, nickname, avatar, status, last_login_time, create_time, update_time FROM "user" WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) GetUserById(ctx context.Context, id int64) (User, error) {
|
||||
row := q.db.QueryRow(ctx, getUserById, id)
|
||||
var i User
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.Nickname,
|
||||
&i.Avatar,
|
||||
&i.Status,
|
||||
&i.LastLoginTime,
|
||||
&i.CreateTime,
|
||||
&i.UpdateTime,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const insertUser = `-- name: InsertUser :exec
|
||||
INSERT INTO "user" (
|
||||
id,
|
||||
|
||||
Reference in new issue
Block a user