feat: 添加用户统计功能,包括统计接口和相关数据结构

This commit is contained in:
2025-12-17 14:57:03 +08:00
parent 9efd188628
commit e4c8deaacf
9 changed files with 185 additions and 1 deletions

View File

@@ -13,7 +13,8 @@ type TenantFilter struct {
requests.Pagination
requests.SortQueryFilter
Name *string `json:"name,omitempty" query:"name"`
Name *string `json:"name,omitempty" query:"name"`
Status *string `json:"status,omitempty" query:"status"`
}
type TenantItem struct {

View File

@@ -11,6 +11,7 @@ type UserPageFilter struct {
requests.SortQueryFilter
Username *string `query:"username"`
Status *string `query:"status"`
TenantID *int64 `query:"tenant_id"`
}
@@ -23,3 +24,9 @@ type UserItem struct {
type UserStatusUpdateForm struct {
Status consts.UserStatus `json:"status" validate:"required,oneof=normal disabled"`
}
type UserStatistics struct {
Status consts.UserStatus `json:"status"`
StatusDescription string `json:"status_description"`
Count int64 `json:"count"`
}

View File

@@ -74,6 +74,10 @@ func (r *Routes) Register(router fiber.Router) {
r.user.list,
Query[dto.UserPageFilter]("filter"),
))
r.log.Debugf("Registering route: Get /super/v1/users/statistics -> user.statistics")
router.Get("/super/v1/users/statistics", DataFunc0(
r.user.statistics,
))
r.log.Debugf("Registering route: Get /super/v1/users/statuses -> user.statusList")
router.Get("/super/v1/users/statuses", DataFunc0(
r.user.statusList,

View File

@@ -61,3 +61,18 @@ func (*user) statusList(ctx fiber.Ctx) ([]requests.KV, error) {
return requests.NewKV(item.String(), item.Description())
}), nil
}
// statistics
//
// @Summary 用户统计信息
// @Tags Super
// @Accept json
// @Produce json
// @Success 200 {array} dto.UserStatistics
//
// @Router /super/v1/users/statistics [get]
// @Bind userID path
// @Bind form body
func (*user) statistics(ctx fiber.Ctx) ([]*dto.UserStatistics, error) {
return services.User.Statistics(ctx)
}