This commit is contained in:
oneao committed 2026-01-28 17:19:41 +08:00
1 parent 5ca04f85ca
commit d9c49b34db
17 files changed
+452 -175

No files matched your search

@@ -113,7 +113,7 @@ func CreateSpace(ctx context.Context, c *app.RequestContext) {
return
}
resp.Id = spaceId
resp.SpaceId = spaceId
resp.InviteCode = inviteCode
response.Success(c).Data(resp).Send()
@@ -184,6 +184,8 @@ func ExitSpace(ctx context.Context, c *app.RequestContext) {
resp := new(space.ExitSpaceResult)
exitSpaceId := req.SpaceId
userID := middleware.GetUserID(ctx)
spaceUser, err := db.Queries.GetSpaceUser(ctx, userID)
@@ -197,6 +199,11 @@ func ExitSpace(ctx context.Context, c *app.RequestContext) {
}
}
if spaceUser.SpaceID != exitSpaceId {
response.Success(c).Data(resp).Send()
return
}
if spaceUser.Role == 0 {
response.Fail(c).Message("请选择解散空间").Send()
return
@@ -364,8 +371,87 @@ func JoinSpace(ctx context.Context, c *app.RequestContext) {
return
}
resp.Id = spaceByInviteCode.ID
resp.Name = spaceByInviteCode.Name.String
resp.SpaceId = spaceByInviteCode.ID
resp.SpaceName = spaceByInviteCode.Name.String
response.Success(c).Data(resp).Send()
}
// UpdateSpaceUserRole .
// @router /space/updateRole [POST]
func UpdateSpaceUserRole(ctx context.Context, c *app.RequestContext) {
var err error
var req space.UpdateSpaceUserRoleParams
err = c.BindAndValidate(&req)
if err != nil {
c.String(consts.StatusBadRequest, err.Error())
return
}
resp := new(space.UpdateSpaceUserRoleResult)
userID := middleware.GetUserID(ctx)
spaceID := req.SpaceId
updateUserID := req.UserId
hasPermission, err := hasSpacePermission(ctx, userID, spaceID)
if err != nil {
errorx.AddError(c, err)
return
}
if !hasPermission {
response.Fail(c).Message("无权限操作该空间").Send()
return
}
// 检查是否在该空间
updateSpaceUser, err := db.Queries.GetSpaceUser(ctx, updateUserID)
if err != nil {
if errorx.IsNotFound(err) {
response.Fail(c).Message("授权失败,该用户不在该空间").Send()
return
}
errorx.AddError(c, err)
return
}
if updateSpaceUser.SpaceID != spaceID {
response.Fail(c).Message("授权失败,该用户不在该空间").Send()
return
}
// 更新
err = db.WithTx(ctx, func(q *repo.Queries) error {
err2 := q.UpdateSpaceUserRole(ctx, repo.UpdateSpaceUserRoleParams{
Role: 1,
SpaceID: spaceID,
UserID: userID,
})
if err2 != nil {
return err2
}
err2 = q.UpdateSpaceUserRole(ctx, repo.UpdateSpaceUserRoleParams{
Role: 0,
SpaceID: spaceID,
UserID: updateUserID,
})
if err2 != nil {
return err2
}
return nil
})
if err != nil {
errorx.AddError(c, err)
return
}
response.Success(c).Data(resp).Send()
}