u
This commit is contained in:
1 parent
cf23acdabc
commit
2efeb7cee2
13 files changed
+271
-49
No files matched your search
@@ -183,6 +183,38 @@ func DissolveSpace(c fiber.Ctx) error {
|
||||
return responsex.OK(c, "空间已成功解散")
|
||||
}
|
||||
|
||||
// ExitSpace 退出空间
|
||||
func ExitSpace(c fiber.Ctx) error {
|
||||
dto := new(types.ExitSpaceDTO)
|
||||
if err := requestx.BindAndValidate(c, dto); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
userId, err := middleware.GetUserID(c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
spaceId := dto.SpaceId
|
||||
|
||||
_, err = db.Queries.GetSpaceById(c.Context(), spaceId)
|
||||
if err != nil {
|
||||
if errorx.IsNotFound(err) {
|
||||
return responsex.Error(c, "空间不存在或已解散")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
if err := db.Queries.UpdateSpaceMemberExit(c.Context(), repo.UpdateSpaceMemberExitParams{
|
||||
SpaceID: spaceId,
|
||||
UserID: userId,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return responsex.OK(c, "空间已成功退出")
|
||||
}
|
||||
|
||||
// UpdateMemberName 更新群成员名称
|
||||
func UpdateMemberName(c fiber.Ctx) error {
|
||||
dto := new(types.UpdateMemberNameDTO)
|
||||
@@ -257,6 +289,7 @@ func UpdateSpaceDefault(c fiber.Ctx) error {
|
||||
return responsex.OK(c, "更新成功")
|
||||
}
|
||||
|
||||
// UpdateSpaceName 更新空间名称
|
||||
func UpdateSpaceName(c fiber.Ctx) error {
|
||||
dto := new(types.UpdateSpaceNameDTO)
|
||||
if err := requestx.BindAndValidate(c, dto); err != nil {
|
||||
@@ -295,6 +328,7 @@ func UpdateSpaceName(c fiber.Ctx) error {
|
||||
return responsex.OK(c, "更新成功")
|
||||
}
|
||||
|
||||
// GetSpaceSettings 获取空间配置信息
|
||||
func GetSpaceSettings(c fiber.Ctx) error {
|
||||
dto := new(types.GetSpaceSettingDTO)
|
||||
if err := requestx.BindAndValidate(c, dto); err != nil {
|
||||
@@ -329,6 +363,7 @@ func GetSpaceSettings(c fiber.Ctx) error {
|
||||
vo.MemberCount = row.MemberCount
|
||||
vo.OwnerId = row.OwnerID
|
||||
vo.SortNumber = row.SortNumber
|
||||
vo.InviteCode = row.InviteCode
|
||||
|
||||
return responsex.OK(c, vo)
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ func SetupRouters(app *fiber.App) {
|
||||
spaceRouter.Post("/member/default", space.UpdateSpaceDefault)
|
||||
spaceRouter.Post("/member/name", space.UpdateMemberName)
|
||||
spaceRouter.Post("/member/sortNumber", space.UpdateSpaceSortNumber)
|
||||
spaceRouter.Post("/member/exit", space.ExitSpace)
|
||||
|
||||
// authGroup.Get("/user/profile", user.GetProfile)
|
||||
// spaceGroup.Get("/space/info", space.GetInfo)
|
||||
|
||||
@@ -21,6 +21,7 @@ type UserSpace struct {
|
||||
IsDefault int16 `json:"is_default"`
|
||||
MemberName string `json:"member_name"`
|
||||
SortNumber int32 `json:"sort_number"`
|
||||
InviteCode string `json:"invite_code"`
|
||||
}
|
||||
|
||||
type ListSpacesVO struct {
|
||||
@@ -31,6 +32,10 @@ type DissolveSpaceDTO struct {
|
||||
SpaceId int64 `json:"space_id" validate:"required"`
|
||||
}
|
||||
|
||||
type ExitSpaceDTO struct {
|
||||
SpaceId int64 `json:"space_id" validate:"required"`
|
||||
}
|
||||
|
||||
type UpdateMemberNameDTO struct {
|
||||
SpaceId int64 `json:"space_id" validate:"required"`
|
||||
MemberName string `json:"member_name" validate:"required"`
|
||||
|
||||
@@ -39,7 +39,7 @@ FROM space s
|
||||
GROUP BY space_id
|
||||
) mc
|
||||
ON s.id = mc.space_id
|
||||
WHERE sm.user_id = $1
|
||||
WHERE sm.user_id = $1 AND s.status != 2 AND sm.status != 2
|
||||
ORDER BY sm.is_default DESC, sm.sort_number ASC;
|
||||
|
||||
-- name: GetSpaceByUserIdAndSpaceId :one
|
||||
@@ -51,7 +51,8 @@ SELECT
|
||||
COALESCE(mc.member_count, 0) AS member_count,
|
||||
sm.is_default,
|
||||
sm.member_name,
|
||||
sm.sort_number
|
||||
sm.sort_number,
|
||||
s.invite_code
|
||||
FROM space s
|
||||
JOIN space_member sm
|
||||
ON s.id = sm.space_id
|
||||
@@ -61,7 +62,7 @@ FROM space s
|
||||
GROUP BY space_id
|
||||
) mc
|
||||
ON s.id = mc.space_id
|
||||
WHERE sm.user_id = $1 AND s.id = $2
|
||||
WHERE sm.user_id = $1 AND s.id = $2 AND s.status != 2 AND sm.status != 2
|
||||
ORDER BY sm.is_default DESC, sm.sort_number ASC;
|
||||
|
||||
-- name: UpdateSpaceName :exec
|
||||
|
||||
@@ -38,4 +38,11 @@ WHERE user_id = $2
|
||||
UPDATE space_member
|
||||
SET sort_number = $1
|
||||
WHERE user_id = $2
|
||||
AND space_id = $3;
|
||||
AND space_id = $3;
|
||||
|
||||
-- 退出空间
|
||||
-- name: UpdateSpaceMemberExit :exec
|
||||
UPDATE space_member
|
||||
SET status = 2 AND exit_time = NOW()
|
||||
WHERE space_id = $1
|
||||
AND user_id = $2;
|
||||
@@ -75,7 +75,8 @@ SELECT
|
||||
COALESCE(mc.member_count, 0) AS member_count,
|
||||
sm.is_default,
|
||||
sm.member_name,
|
||||
sm.sort_number
|
||||
sm.sort_number,
|
||||
s.invite_code
|
||||
FROM space s
|
||||
JOIN space_member sm
|
||||
ON s.id = sm.space_id
|
||||
@@ -85,7 +86,7 @@ FROM space s
|
||||
GROUP BY space_id
|
||||
) mc
|
||||
ON s.id = mc.space_id
|
||||
WHERE sm.user_id = $1 AND s.id = $2
|
||||
WHERE sm.user_id = $1 AND s.id = $2 AND s.status != 2 AND sm.status != 2
|
||||
ORDER BY sm.is_default DESC, sm.sort_number ASC
|
||||
`
|
||||
|
||||
@@ -103,6 +104,7 @@ type GetSpaceByUserIdAndSpaceIdRow struct {
|
||||
IsDefault int16
|
||||
MemberName string
|
||||
SortNumber int32
|
||||
InviteCode string
|
||||
}
|
||||
|
||||
func (q *Queries) GetSpaceByUserIdAndSpaceId(ctx context.Context, arg GetSpaceByUserIdAndSpaceIdParams) (GetSpaceByUserIdAndSpaceIdRow, error) {
|
||||
@@ -117,6 +119,7 @@ func (q *Queries) GetSpaceByUserIdAndSpaceId(ctx context.Context, arg GetSpaceBy
|
||||
&i.IsDefault,
|
||||
&i.MemberName,
|
||||
&i.SortNumber,
|
||||
&i.InviteCode,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
@@ -164,7 +167,7 @@ FROM space s
|
||||
GROUP BY space_id
|
||||
) mc
|
||||
ON s.id = mc.space_id
|
||||
WHERE sm.user_id = $1
|
||||
WHERE sm.user_id = $1 AND s.status != 2 AND sm.status != 2
|
||||
ORDER BY sm.is_default DESC, sm.sort_number ASC
|
||||
`
|
||||
|
||||
|
||||
@@ -108,6 +108,24 @@ func (q *Queries) UpdateSpaceIsDefault(ctx context.Context, arg UpdateSpaceIsDef
|
||||
return err
|
||||
}
|
||||
|
||||
const updateSpaceMemberExit = `-- name: UpdateSpaceMemberExit :exec
|
||||
UPDATE space_member
|
||||
SET status = 2 AND 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 updateSpaceMemberName = `-- name: UpdateSpaceMemberName :exec
|
||||
UPDATE space_member SET member_name = $1
|
||||
WHERE space_id = $2 AND user_id = $3
|
||||
|
||||
Reference in new issue
Block a user