This commit is contained in:
oneao committed 2026-02-27 22:09:50 +08:00
1 parent 1b1a54f7dd
commit fc005e0fb4
22 files changed
+300 -193

No files matched your search

-10
View File
@@ -1,10 +0,0 @@
package handler
import (
"github.com/gofiber/fiber/v3"
)
// Hello handle api status
func Hello(c fiber.Ctx) error {
panic("测试 panic")
}
@@ -53,11 +53,24 @@ func CreateSpace(c fiber.Ctx) error {
spaceId := uniqueid.NextId()
err := db.WithTx(c.Context(), func(q *repo.Queries) error {
// 查询是否存在空间
countSpaces, err3 := q.CountUserSpaces(c.Context(), userID)
if err3 != nil {
return err3
}
isDefault := 0
if countSpaces == 0 {
isDefault = 1
}
// 创建空间
params := repo.InsertSpaceParams{
ID: spaceId,
Name: dto.Name,
InviteCode: inviteCode,
OwnerID: userID,
}
err := q.InsertSpace(c.Context(), params)
@@ -68,10 +81,13 @@ func CreateSpace(c fiber.Ctx) error {
// 将创建用户默认添加到该空间内
spaceMemberParams := repo.InsertSpaceMemberParams{
ID: uniqueid.NextId(),
SpaceID: spaceId,
UserID: userID,
Role: 0,
ID: uniqueid.NextId(),
SpaceID: spaceId,
UserID: userID,
Role: 0,
IsDefault: int16(isDefault),
UserName: dto.UserName,
SortNumber: dto.SortNumber,
}
err = q.InsertSpaceMember(c.Context(), spaceMemberParams)
@@ -98,6 +114,41 @@ func CreateSpace(c fiber.Ctx) error {
return responsex.OK(c, vo)
}
func ListUserSpaces(c fiber.Ctx) error {
vo := new(types.ListSpacesVO)
userID, err := middleware.GetUserID(c)
if err != nil {
return err
}
rows, err := db.Queries.ListSpacesByUserId(c.Context(), userID)
if err != nil {
return err
}
userSpaces := make([]types.UserSpace, 0, len(rows))
for _, row := range rows {
userSpaces = append(userSpaces, types.UserSpace{
Id: row.ID,
OwnerId: row.OwnerID,
Name: row.Name,
Role: row.Role,
MemberCount: row.MemberCount,
IsDefault: row.IsDefault,
UserName: row.UserName,
SortNumber: row.SortNumber,
})
}
vo.Spaces = userSpaces
return responsex.OK(c, vo)
}
func initFinanceCategory(ctx context.Context, q *repo.Queries, spaceId int64, userId int64) error {
categoryDefaults, err := q.ListFinanceCategoryDefault(ctx)
if err != nil {
+6 -11
View File
@@ -12,23 +12,18 @@ import (
func SetupRouters(app *fiber.App) {
api := app.Group(config.GetConf().Server.BaseUrl)
// 1️⃣ 公开接口(无需登录)
publicGroup := api.Group("")
// 2️⃣ 需要登录
authGroup := api.Group("", middleware.Auth())
//
//// 3️⃣ 需要登录 + 需要空间
//spaceGroup := api.Group("", middleware.Auth(), middleware.SpaceGuard())
// --------------------
// auth
authRouter := publicGroup.Group("/auth")
authRouter := api.Group("/auth")
authRouter.Post("/login/qq", auth.LoginQq)
authRouter.Post("/login/wechat", auth.LoginWechat)
// 空间操作
authGroup.Post("/space/create", space.CreateSpace)
spaceRouter := api.Group("/space").Use(middleware.Auth())
spaceRouter.Post("/create", space.CreateSpace)
spaceRouter.Post("/list", space.ListUserSpaces)
// authGroup.Get("/user/profile", user.GetProfile)
// spaceGroup.Get("/space/info", space.GetInfo)
}
+19 -1
View File
@@ -1,10 +1,28 @@
package types
type CreateSpaceDTO struct {
Name string `json:"name" validate:"required"`
Name string `json:"name" validate:"required"`
UserName string `json:"user_name" validate:"required"`
SortNumber int32 `json:"sort_number" validate:"required"`
}
type CreateSpaceVO struct {
SpaceId int64 `json:"space_id"`
InviteCode string `json:"invite_code"`
SortNumber int32 `json:"sort_number"`
}
type UserSpace struct {
Id int64 `json:"id"`
OwnerId int64 `json:"owner_id"`
Name string `json:"name"`
Role int16 `json:"role"`
MemberCount int64 `json:"member_count"`
IsDefault int16 `json:"is_default"`
UserName string `json:"user_name"`
SortNumber int32 `json:"sort_number"`
}
type ListSpacesVO struct {
Spaces []UserSpace `json:"spaces"`
}