This commit is contained in:
oneao committed 2026-01-25 22:18:27 +08:00
1 parent 500fab7a80
commit 8f3f6982db
54 files changed
+2076 -1877

No files matched your search

@@ -6,9 +6,7 @@ import (
"allapp/biz/router/middleware"
"allapp/db"
"allapp/db/repo"
"allapp/utils"
"allapp/utils/errorx"
"allapp/utils/idgen"
"allapp/utils/response"
"context"
@@ -18,105 +16,6 @@ import (
"github.com/cloudwego/hertz/pkg/protocol/consts"
)
// CreateSpace .
// @router /space/create [POST]
func CreateSpace(ctx context.Context, c *app.RequestContext) {
var err error
var req space.CreateSpaceParams
err = c.BindAndValidate(&req)
if err != nil {
c.String(consts.StatusBadRequest, err.Error())
return
}
userID := middleware.GetUserID(ctx)
// 检查该用户是否已经加入空间了
_, err = db.Queries.GetSpaceByUserId(ctx, userID)
if err != nil {
if errorx.IsNotFound(err) {
// 忽略
} else {
errorx.AddError(c, err)
return
}
} else {
response.Fail(c).Message("请先退出已加入的空间").Send()
return
}
// 生成邀请码
var inviteCode string
for {
// 生成邀请码
code, err := utils.GenerateCode(6)
if err != nil {
errorx.AddError(c, err)
return
}
// 检查数据库是否存在
_, err = db.Queries.GetSpaceByInviteCode(ctx, code)
if err != nil {
if errorx.IsNotFound(err) {
// 不存在,唯一,直接使用
inviteCode = code
break
} else {
// 系统错误
errorx.AddError(c, err)
return
}
}
// 如果存在,继续循环重新生成
}
spaceId := idgen.NextId()
err = db.WithTx(ctx, func(q *repo.Queries) error {
// 创建空间
params := repo.InsertSpaceParams{
ID: spaceId,
InviteCode: inviteCode,
}
err = q.InsertSpace(ctx, params)
if err != nil {
return err
}
// 将创建用户默认添加到该空间内
userParams := repo.InsertSpaceUserParams{
ID: idgen.NextId(),
SpaceID: spaceId,
UserID: userID,
Role: 0,
}
err := q.InsertSpaceUser(ctx, userParams)
if err != nil {
return err
}
return nil
})
if err != nil {
errorx.AddError(c, err)
return
}
resp := &space.CreateSpaceResult{
Id: spaceId,
InviteCode: inviteCode,
}
response.Success(c).Data(resp).Send()
}
// DissolveSpace .
// @router /space/dissolve [POST]
func DissolveSpace(ctx context.Context, c *app.RequestContext) {
@@ -177,7 +177,7 @@ func JoinSpace(ctx context.Context, c *app.RequestContext) {
}
// 检查验证码是否有效
spaceByCode, err := db.Queries.GetSpaceByInviteCode(ctx, inviteCode)
spaceByCode, err := db.Queries.FindSpaceByInviteCode(ctx, inviteCode)
if err != nil {
if errorx.IsNotFound(err) {