Files
workspace/code/allapp/allapp-go/db/repo/space_member.sql.go
T
2026-03-03 17:28:56 +08:00

313 lines
7.5 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: space_member.sql
package repo
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const countUserSpaces = `-- name: CountUserSpaces :one
SELECT COUNT(1)
FROM space_member
WHERE user_id = $1
`
// 合计某个用户的空间数量
func (q *Queries) CountUserSpaces(ctx context.Context, userID int64) (int64, error) {
row := q.db.QueryRow(ctx, countUserSpaces, userID)
var count int64
err := row.Scan(&count)
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
WHERE user_id = $1
AND space_id = $2
`
type GetUserSpaceRoleParams struct {
UserID int64
SpaceID int64
}
// 获取用户在指定空间的角色
func (q *Queries) GetUserSpaceRole(ctx context.Context, arg GetUserSpaceRoleParams) (int16, error) {
row := q.db.QueryRow(ctx, getUserSpaceRole, arg.UserID, arg.SpaceID)
var role int16
err := row.Scan(&role)
return role, err
}
const insertSpaceMember = `-- 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())
`
type InsertSpaceMemberParams struct {
ID int64
SpaceID int64
UserID int64
Role int16
IsDefault int16
MemberName string
SortNumber int32
}
// 插入空间用户
func (q *Queries) InsertSpaceMember(ctx context.Context, arg InsertSpaceMemberParams) error {
_, err := q.db.Exec(ctx, insertSpaceMember,
arg.ID,
arg.SpaceID,
arg.UserID,
arg.Role,
arg.IsDefault,
arg.MemberName,
arg.SortNumber,
)
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
WHERE user_id = $2
AND space_id != $3
`
type UpdateOtherSpacesIsDefaultParams struct {
IsDefault int16
UserID int64
SpaceID int64
}
// 将用户的其它空间更新为非默认
func (q *Queries) UpdateOtherSpacesIsDefault(ctx context.Context, arg UpdateOtherSpacesIsDefaultParams) error {
_, err := q.db.Exec(ctx, updateOtherSpacesIsDefault, arg.IsDefault, arg.UserID, arg.SpaceID)
return err
}
const updateSpaceIsDefault = `-- name: UpdateSpaceIsDefault :exec
UPDATE space_member SET is_default = $1
WHERE space_id = $2 AND user_id = $3
`
type UpdateSpaceIsDefaultParams struct {
IsDefault int16
SpaceID int64
UserID int64
}
// 更新空间是否为默认
func (q *Queries) UpdateSpaceIsDefault(ctx context.Context, arg UpdateSpaceIsDefaultParams) error {
_, err := q.db.Exec(ctx, updateSpaceIsDefault, arg.IsDefault, arg.SpaceID, arg.UserID)
return err
}
const updateSpaceMemberExit = `-- name: UpdateSpaceMemberExit :exec
UPDATE space_member
SET status = 2,
exit_time = NOW()
WHERE space_id = $1
AND user_id = $2
`
type UpdateSpaceMemberExitParams struct {
SpaceID int64
UserID int64
}
// 退出空间
func (q *Queries) UpdateSpaceMemberExit(ctx context.Context, arg UpdateSpaceMemberExitParams) error {
_, err := q.db.Exec(ctx, updateSpaceMemberExit, arg.SpaceID, arg.UserID)
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
`
type UpdateSpaceMemberNameParams struct {
MemberName string
SpaceID int64
UserID int64
}
// 更新用户在空间内的名称
func (q *Queries) UpdateSpaceMemberName(ctx context.Context, arg UpdateSpaceMemberNameParams) error {
_, 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
}