This commit is contained in:
oneao committed 2026-03-02 17:29:51 +08:00
1 parent ab3eaed7ce
commit cf23acdabc
28 files changed
+1292 -486

No files matched your search

@@ -220,11 +220,36 @@ func UpdateSpaceDefault(c fiber.Ctx) error {
return err
}
err = db.Queries.UpdateSpaceIsDefault(c.Context(), repo.UpdateSpaceIsDefaultParams{
SpaceID: dto.SpaceId,
UserID: userId,
IsDefault: dto.IsDefault,
err = db.WithTx(c.Context(), func(q *repo.Queries) error {
err = q.UpdateSpaceIsDefault(c.Context(), repo.UpdateSpaceIsDefaultParams{
SpaceID: dto.SpaceId,
UserID: userId,
IsDefault: dto.IsDefault,
})
if err != nil {
return err
}
var otherDefault int16
if dto.IsDefault == 1 {
otherDefault = 0
}
err = q.UpdateOtherSpacesIsDefault(c.Context(), repo.UpdateOtherSpacesIsDefaultParams{
IsDefault: otherDefault,
UserID: userId,
SpaceID: dto.SpaceId,
})
if err != nil {
return err
}
return nil
})
if err != nil {
return err
}
@@ -270,6 +295,85 @@ func UpdateSpaceName(c fiber.Ctx) error {
return responsex.OK(c, "更新成功")
}
func GetSpaceSettings(c fiber.Ctx) error {
dto := new(types.GetSpaceSettingDTO)
if err := requestx.BindAndValidate(c, dto); err != nil {
return err
}
userId, err := middleware.GetUserID(c)
if err != nil {
return err
}
spaceId := dto.SpaceId
row, err := db.Queries.GetSpaceByUserIdAndSpaceId(c.Context(), repo.GetSpaceByUserIdAndSpaceIdParams{
UserID: userId,
ID: spaceId,
})
if err != nil {
if errorx.IsNotFound(err) {
return responsex.SpaceError(c, "不在该空间或该空间已解散")
}
return err
}
vo := new(types.UserSpace)
vo.SpaceId = row.SpaceID
vo.Name = row.Name
vo.IsDefault = row.IsDefault
vo.MemberName = row.MemberName
vo.Role = row.Role
vo.MemberCount = row.MemberCount
vo.OwnerId = row.OwnerID
vo.SortNumber = row.SortNumber
return responsex.OK(c, vo)
}
// UpdateSpaceSortNumber 更新空间排序
func UpdateSpaceSortNumber(c fiber.Ctx) error {
dto := new(types.UpdateSpaceSortNumberDTO)
if err := requestx.BindAndValidate(c, dto); err != nil {
return err
}
userId, err := middleware.GetUserID(c)
if err != nil {
return err
}
// 组装批量更新参数
params := make([]repo.BatchUpdateSpaceSortNumberParams, 0, len(dto.Spaces))
for _, datum := range dto.Spaces {
params = append(params, repo.BatchUpdateSpaceSortNumberParams{
SortNumber: datum.SortNumber,
SpaceID: datum.SpaceId,
UserID: userId,
})
}
// 使用统一事务封装
err = db.WithTx(c.Context(), func(q *repo.Queries) error {
batch := q.BatchUpdateSpaceSortNumber(c.Context(), params)
if err := db.RunBatch(c.Context(), batch); err != nil {
return err
}
return nil
})
if err != nil {
return err
}
return responsex.OK(c, "更新成功")
}
// 初始化记账分类
func initFinanceCategory(ctx context.Context, q *repo.Queries, spaceId int64, userId int64) error {
categoryDefaults, err := q.ListFinanceCategoryDefault(ctx)
@@ -25,9 +25,11 @@ func SetupRouters(app *fiber.App) {
spaceRouter.Post("/list", space.ListUserSpaces)
spaceRouter.Post("/dissolve", space.DissolveSpace)
spaceRouter.Post("/name", space.UpdateSpaceName)
spaceRouter.Post("/settings", space.GetSpaceSettings)
spaceRouter.Post("/member/default", space.UpdateSpaceDefault)
spaceRouter.Post("/member/name", space.UpdateMemberName)
spaceRouter.Post("/member/sortNumber", space.UpdateSpaceSortNumber)
// authGroup.Get("/user/profile", user.GetProfile)
// spaceGroup.Get("/space/info", space.GetInfo)
+13
View File
@@ -45,3 +45,16 @@ type UpdateSpaceNameDTO struct {
SpaceId int64 `json:"space_id" validate:"required"`
SpaceName string `json:"space_name" validate:"required"`
}
type GetSpaceSettingDTO struct {
SpaceId int64 `json:"space_id" validate:"required"`
}
type SpaceSortNumber struct {
SpaceId int64 `json:"space_id" validate:"required"`
SortNumber int32 `json:"sort_number" validate:"required"`
}
type UpdateSpaceSortNumberDTO struct {
Spaces []SpaceSortNumber `json:"spaces"`
}