feat: update

This commit is contained in:
2025-12-16 15:43:28 +08:00
parent 2974ba1c2c
commit 0531a72ae6
11 changed files with 217 additions and 11 deletions

View File

@@ -0,0 +1,20 @@
package dto
import (
"quyun/v2/app/requests"
"quyun/v2/database/models"
)
type TenantFilter struct {
requests.Pagination
requests.SortQueryFilter
Name *string `json:"name,omitempty"`
}
type TenantItem struct {
*models.Tenant
UserCount int64
UserBalance int64
}

View File

@@ -26,9 +26,11 @@ func Provide(opts ...opt.Option) error {
}
if err := container.Container.Provide(func(
authController *authController,
tenant *tenant,
) (contracts.HttpRoute, error) {
obj := &Routes{
authController: authController,
tenant: tenant,
}
if err := obj.Prepare(); err != nil {
return nil, err
@@ -38,5 +40,12 @@ func Provide(opts ...opt.Option) error {
}, atom.GroupRoutes); err != nil {
return err
}
if err := container.Container.Provide(func() (*tenant, error) {
obj := &tenant{}
return obj, nil
}); err != nil {
return err
}
return nil
}

View File

@@ -5,12 +5,13 @@
package super
import (
"quyun/v2/app/http/super/dto"
"github.com/gofiber/fiber/v3"
log "github.com/sirupsen/logrus"
_ "go.ipao.vip/atom"
_ "go.ipao.vip/atom/contracts"
. "go.ipao.vip/atom/fen"
"quyun/v2/app/http/super/dto"
)
// Routes implements the HttpRoute contract and provides route registration
@@ -21,6 +22,7 @@ type Routes struct {
log *log.Entry `inject:"false"`
// Controller instances
authController *authController
tenant *tenant
}
// Prepare initializes the routes provider with logging configuration.
@@ -44,6 +46,12 @@ func (r *Routes) Register(router fiber.Router) {
r.authController.login,
Body[dto.LoginForm]("form"),
))
// Register routes for controller: tenant
r.log.Debugf("Registering route: Get /super/v1/tenants -> tenant.list")
router.Get("/super/v1/tenants", DataFunc1(
r.tenant.list,
Query[dto.TenantFilter]("filter"),
))
r.log.Info("Successfully registered all routes")
}

View File

@@ -0,0 +1,19 @@
package super
import (
"quyun/v2/app/http/super/dto"
"quyun/v2/app/requests"
"quyun/v2/app/services"
"github.com/gofiber/fiber/v3"
)
// @provider
type tenant struct{}
// list
// @Router /super/v1/tenants [get]
// @Bind filter query
func (*tenant) list(ctx fiber.Ctx, filter *dto.TenantFilter) (*requests.Pager, error) {
return services.Tenant.Pager(ctx, filter)
}