This commit is contained in:
oneao committed 2026-02-28 17:02:35 +08:00
1 parent fc005e0fb4
commit 10d0cadfe3
18 files changed
+591 -133

No files matched your search

+13 -6
View File
@@ -9,9 +9,12 @@ INSERT INTO space (
id,name,invite_code,owner_id,create_time,update_time
) VALUES ($1,$2,$3,$4,NOW(),NOW());
-- 删除空间
-- name: DeleteSpace :exec
DELETE FROM space WHERE id = $1;
-- name: DissolveSpace :exec
UPDATE space SET
status = 2,
dissolve_time = NOW(),
update_time = NOW()
WHERE id = $1;
-- 根据邀请码获取
-- name: GetSpaceByInviteCode :one
@@ -19,13 +22,13 @@ SELECT * FROM space WHERE invite_code = $1;
-- name: ListSpacesByUserId :many
SELECT
s.id,
s.id AS space_id,
s.owner_id,
s.name,
sm.role,
COALESCE(mc.member_count, 0) AS member_count,
sm.is_default,
sm.user_name,
sm.member_name,
sm.sort_number
FROM space s
JOIN space_member sm
@@ -37,4 +40,8 @@ FROM space s
) mc
ON s.id = mc.space_id
WHERE sm.user_id = $1
ORDER BY sm.is_default DESC, sm.sort_number ASC;
ORDER BY sm.is_default DESC, sm.sort_number ASC;
-- name: UpdateSpaceName :exec
UPDATE space SET name = $1
WHERE id = $2;
@@ -5,11 +5,23 @@ FROM space_member
WHERE user_id = $1
AND space_id = $2;
-- 插入空间用户
-- name: InsertSpaceMember :exec
INSERT INTO space_member(id,space_id,user_id,role,is_default,user_name,sort_number,join_time,update_time)
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());
-- 合计某个用户的空间数量
-- name: CountUserSpaces :one
SELECT COUNT(1)
FROM space_member
WHERE user_id = $1;
WHERE user_id = $1;
-- 更新用户在空间内的名称
-- name: UpdateSpaceMemberName :exec
UPDATE space_member SET member_name = $1
WHERE space_id = $2 AND user_id = $3;
-- 更新空间是否为默认
-- name: UpdateSpaceIsDefault :exec
UPDATE space_member SET is_default = $1
WHERE space_id = $2 AND user_id = $3;
+21 -15
View File
@@ -32,24 +32,30 @@ type FinanceCategorySpace struct {
}
type Space struct {
ID int64
Name string
InviteCode string
OwnerID int64
CreateTime pgtype.Timestamptz
UpdateTime pgtype.Timestamptz
ID int64
Name string
InviteCode string
OwnerID int64
Status int16
DisabledTime pgtype.Timestamptz
DissolveTime pgtype.Timestamptz
CreateTime pgtype.Timestamptz
UpdateTime pgtype.Timestamptz
}
type SpaceMember struct {
ID int64
SpaceID int64
UserID int64
Role int16
IsDefault int16
UserName string
SortNumber int32
JoinTime pgtype.Timestamptz
UpdateTime pgtype.Timestamptz
ID int64
SpaceID int64
UserID int64
Role int16
IsDefault int16
SortNumber int32
MemberName string
Status int16
DisabledTime pgtype.Timestamptz
ExitTime pgtype.Timestamptz
JoinTime pgtype.Timestamptz
UpdateTime pgtype.Timestamptz
}
type User struct {
+37 -13
View File
@@ -9,18 +9,21 @@ import (
"context"
)
const deleteSpace = `-- name: DeleteSpace :exec
DELETE FROM space WHERE id = $1
const dissolveSpace = `-- name: DissolveSpace :exec
UPDATE space SET
status = 2,
dissolve_time = NOW(),
update_time = NOW()
WHERE id = $1
`
// 删除空间
func (q *Queries) DeleteSpace(ctx context.Context, id int64) error {
_, err := q.db.Exec(ctx, deleteSpace, id)
func (q *Queries) DissolveSpace(ctx context.Context, id int64) error {
_, err := q.db.Exec(ctx, dissolveSpace, id)
return err
}
const getSpaceById = `-- name: GetSpaceById :one
SELECT id, name, invite_code, owner_id, create_time, update_time FROM space WHERE id = $1
SELECT id, name, invite_code, owner_id, status, disabled_time, dissolve_time, create_time, update_time FROM space WHERE id = $1
`
// 根据id获取分享空间信息
@@ -32,6 +35,9 @@ func (q *Queries) GetSpaceById(ctx context.Context, id int64) (Space, error) {
&i.Name,
&i.InviteCode,
&i.OwnerID,
&i.Status,
&i.DisabledTime,
&i.DissolveTime,
&i.CreateTime,
&i.UpdateTime,
)
@@ -39,7 +45,7 @@ func (q *Queries) GetSpaceById(ctx context.Context, id int64) (Space, error) {
}
const getSpaceByInviteCode = `-- name: GetSpaceByInviteCode :one
SELECT id, name, invite_code, owner_id, create_time, update_time FROM space WHERE invite_code = $1
SELECT id, name, invite_code, owner_id, status, disabled_time, dissolve_time, create_time, update_time FROM space WHERE invite_code = $1
`
// 根据邀请码获取
@@ -51,6 +57,9 @@ func (q *Queries) GetSpaceByInviteCode(ctx context.Context, inviteCode string) (
&i.Name,
&i.InviteCode,
&i.OwnerID,
&i.Status,
&i.DisabledTime,
&i.DissolveTime,
&i.CreateTime,
&i.UpdateTime,
)
@@ -83,13 +92,13 @@ func (q *Queries) InsertSpace(ctx context.Context, arg InsertSpaceParams) error
const listSpacesByUserId = `-- name: ListSpacesByUserId :many
SELECT
s.id,
s.id AS space_id,
s.owner_id,
s.name,
sm.role,
COALESCE(mc.member_count, 0) AS member_count,
sm.is_default,
sm.user_name,
sm.member_name,
sm.sort_number
FROM space s
JOIN space_member sm
@@ -105,13 +114,13 @@ ORDER BY sm.is_default DESC, sm.sort_number ASC
`
type ListSpacesByUserIdRow struct {
ID int64
SpaceID int64
OwnerID int64
Name string
Role int16
MemberCount int64
IsDefault int16
UserName string
MemberName string
SortNumber int32
}
@@ -125,13 +134,13 @@ func (q *Queries) ListSpacesByUserId(ctx context.Context, userID int64) ([]ListS
for rows.Next() {
var i ListSpacesByUserIdRow
if err := rows.Scan(
&i.ID,
&i.SpaceID,
&i.OwnerID,
&i.Name,
&i.Role,
&i.MemberCount,
&i.IsDefault,
&i.UserName,
&i.MemberName,
&i.SortNumber,
); err != nil {
return nil, err
@@ -143,3 +152,18 @@ func (q *Queries) ListSpacesByUserId(ctx context.Context, userID int64) ([]ListS
}
return items, nil
}
const updateSpaceName = `-- name: UpdateSpaceName :exec
UPDATE space SET name = $1
WHERE id = $2
`
type UpdateSpaceNameParams struct {
Name string
ID int64
}
func (q *Queries) UpdateSpaceName(ctx context.Context, arg UpdateSpaceNameParams) error {
_, err := q.db.Exec(ctx, updateSpaceName, arg.Name, arg.ID)
return err
}
@@ -43,7 +43,7 @@ func (q *Queries) GetUserSpaceRole(ctx context.Context, arg GetUserSpaceRolePara
}
const insertSpaceMember = `-- name: InsertSpaceMember :exec
INSERT INTO space_member(id,space_id,user_id,role,is_default,user_name,sort_number,join_time,update_time)
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())
`
@@ -53,7 +53,7 @@ type InsertSpaceMemberParams struct {
UserID int64
Role int16
IsDefault int16
UserName string
MemberName string
SortNumber int32
}
@@ -64,8 +64,40 @@ func (q *Queries) InsertSpaceMember(ctx context.Context, arg InsertSpaceMemberPa
arg.UserID,
arg.Role,
arg.IsDefault,
arg.UserName,
arg.MemberName,
arg.SortNumber,
)
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 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
}
+37 -17
View File
@@ -23,27 +23,47 @@ primary key,
create table space
(
id bigint not null
primary key,
name varchar(255) not null,
invite_code varchar(30) not null,
owner_id bigint not null,
create_time timestamp with time zone default now(),
update_time timestamp with time zone default now()
id bigint primary key,
-- 核心业务字段
name varchar(255) not null,
invite_code varchar(30) not null unique,
owner_id bigint not null,
-- 状态字段
status smallint default 0 not null, -- 0 active 1 disabled 2 dissolved
disabled_time timestamp with time zone,
dissolve_time timestamp with time zone,
-- 时间字段
create_time timestamp with time zone default now() not null,
update_time timestamp with time zone default now() not null
);
create table space_member
(
id bigint not null
primary key,
space_id bigint not null,
user_id bigint not null,
role smallint default 2 not null,
is_default smallint default 0 not null,
user_name varchar(255) not null,
sort_number integer default 0 not null,
join_time timestamp with time zone default now(),
update_time timestamp with time zone default now()
id bigint primary key,
-- 关系核心字段
space_id bigint not null,
user_id bigint not null,
-- 角色 & 默认
role smallint default 2 not null,
is_default smallint default 0 not null,
sort_number integer default 0 not null,
member_name varchar(255) not null,
-- 成员状态
status smallint default 0 not null, -- 0 active 1 disabled 2 exited
disabled_time timestamp with time zone,
exit_time timestamp with time zone,
-- 时间字段
join_time timestamp with time zone default now() not null,
update_time timestamp with time zone default now() not null,
unique (space_id, user_id)
);
create table finance_category_default