u
This commit is contained in:
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)
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
Reference in new issue
Block a user