refactor: 提取分页魔法数字为 pagination 常量
- handler 层: device/log/webhook/user handler 使用 pagination.DefaultPageSize/MaxPageSize - service 层: device/login_log/operation_log service 使用 pagination.DefaultPageSize - repository 层: user repository 使用 pagination.DefaultPageSize/MaxPageSize - 消除 8 处硬编码的 20/100 分页魔法数字
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/user-management-system/internal/api/middleware"
|
"github.com/user-management-system/internal/api/middleware"
|
||||||
"github.com/user-management-system/internal/domain"
|
"github.com/user-management-system/internal/domain"
|
||||||
|
"github.com/user-management-system/internal/pagination"
|
||||||
"github.com/user-management-system/internal/service"
|
"github.com/user-management-system/internal/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -88,9 +89,9 @@ func (h *DeviceHandler) GetMyDevices(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
|
||||||
if pageSize < 1 || pageSize > 100 {
|
if pageSize < 1 || pageSize > pagination.MaxPageSize {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize)
|
devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize)
|
||||||
@@ -316,9 +317,9 @@ func (h *DeviceHandler) GetUserDevices(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
|
||||||
if pageSize < 1 || pageSize > 100 {
|
if pageSize < 1 || pageSize > pagination.MaxPageSize {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize)
|
devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
|
"github.com/user-management-system/internal/pagination"
|
||||||
"github.com/user-management-system/internal/service"
|
"github.com/user-management-system/internal/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -43,9 +44,9 @@ func (h *LogHandler) GetMyLoginLogs(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
|
||||||
if pageSize < 1 || pageSize > 100 {
|
if pageSize < 1 || pageSize > pagination.MaxPageSize {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
logs, total, err := h.loginLogService.GetMyLoginLogs(c.Request.Context(), userID, page, pageSize)
|
logs, total, err := h.loginLogService.GetMyLoginLogs(c.Request.Context(), userID, page, pageSize)
|
||||||
@@ -85,9 +86,9 @@ func (h *LogHandler) GetMyOperationLogs(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
|
||||||
if pageSize < 1 || pageSize > 100 {
|
if pageSize < 1 || pageSize > pagination.MaxPageSize {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
logs, total, err := h.operationLogService.GetMyOperationLogs(c.Request.Context(), userID, page, pageSize)
|
logs, total, err := h.operationLogService.GetMyOperationLogs(c.Request.Context(), userID, page, pageSize)
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import (
|
|||||||
"github.com/user-management-system/internal/api/middleware"
|
"github.com/user-management-system/internal/api/middleware"
|
||||||
"github.com/user-management-system/internal/auth"
|
"github.com/user-management-system/internal/auth"
|
||||||
"github.com/user-management-system/internal/domain"
|
"github.com/user-management-system/internal/domain"
|
||||||
|
"github.com/user-management-system/internal/pagination"
|
||||||
"github.com/user-management-system/internal/service"
|
"github.com/user-management-system/internal/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -115,7 +116,7 @@ func (h *UserHandler) ListUsers(c *gin.Context) {
|
|||||||
|
|
||||||
// Fallback to legacy offset-based pagination
|
// Fallback to legacy offset-based pagination
|
||||||
offset, _ := strconv.ParseInt(c.DefaultQuery("offset", "0"), 10, 64)
|
offset, _ := strconv.ParseInt(c.DefaultQuery("offset", "0"), 10, 64)
|
||||||
limit, _ := strconv.ParseInt(c.DefaultQuery("limit", "20"), 10, 64)
|
limit, _ := strconv.ParseInt(c.DefaultQuery("limit", strconv.Itoa(pagination.DefaultPageSize)), 10, 64)
|
||||||
|
|
||||||
users, total, err := h.userService.List(c.Request.Context(), int(offset), int(limit))
|
users, total, err := h.userService.List(c.Request.Context(), int(offset), int(limit))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
|
"github.com/user-management-system/internal/pagination"
|
||||||
"github.com/user-management-system/internal/service"
|
"github.com/user-management-system/internal/service"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -66,12 +67,12 @@ func (h *WebhookHandler) CreateWebhook(c *gin.Context) {
|
|||||||
// @Router /api/v1/webhooks [get]
|
// @Router /api/v1/webhooks [get]
|
||||||
func (h *WebhookHandler) ListWebhooks(c *gin.Context) {
|
func (h *WebhookHandler) ListWebhooks(c *gin.Context) {
|
||||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
|
||||||
if page < 1 {
|
if page < 1 {
|
||||||
page = 1
|
page = 1
|
||||||
}
|
}
|
||||||
if pageSize < 1 || pageSize > 100 {
|
if pageSize < 1 || pageSize > pagination.MaxPageSize {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
offset := (page - 1) * pageSize
|
offset := (page - 1) * pageSize
|
||||||
|
|
||||||
@@ -178,9 +179,9 @@ func (h *WebhookHandler) GetWebhookDeliveries(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
limit, _ := strconv.Atoi(c.DefaultQuery("limit", "20"))
|
limit, _ := strconv.Atoi(c.DefaultQuery("limit", strconv.Itoa(pagination.DefaultPageSize)))
|
||||||
if limit < 1 || limit > 100 {
|
if limit < 1 || limit > pagination.MaxPageSize {
|
||||||
limit = 20
|
limit = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
deliveries, err := h.webhookService.GetWebhookDeliveries(c.Request.Context(), id, limit)
|
deliveries, err := h.webhookService.GetWebhookDeliveries(c.Request.Context(), id, limit)
|
||||||
|
|||||||
@@ -362,10 +362,10 @@ func (r *UserRepository) AdvancedSearch(ctx context.Context, filter *AdvancedFil
|
|||||||
// 分页
|
// 分页
|
||||||
limit := filter.Limit
|
limit := filter.Limit
|
||||||
if limit <= 0 {
|
if limit <= 0 {
|
||||||
limit = 20
|
limit = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
if limit > 200 {
|
if limit > pagination.MaxPageSize {
|
||||||
limit = 200
|
limit = pagination.MaxPageSize
|
||||||
}
|
}
|
||||||
query = query.Offset(filter.Offset).Limit(limit)
|
query = query.Offset(filter.Offset).Limit(limit)
|
||||||
|
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ func (s *DeviceService) GetUserDevices(ctx context.Context, userID int64, page,
|
|||||||
page = 1
|
page = 1
|
||||||
}
|
}
|
||||||
if pageSize <= 0 {
|
if pageSize <= 0 {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
offset := (page - 1) * pageSize
|
offset := (page - 1) * pageSize
|
||||||
@@ -275,7 +275,7 @@ func (s *DeviceService) GetActiveDevices(ctx context.Context, page, pageSize int
|
|||||||
page = 1
|
page = 1
|
||||||
}
|
}
|
||||||
if pageSize <= 0 {
|
if pageSize <= 0 {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
offset := (page - 1) * pageSize
|
offset := (page - 1) * pageSize
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ func (s *LoginLogService) GetMyLoginLogs(ctx context.Context, userID int64, page
|
|||||||
page = 1
|
page = 1
|
||||||
}
|
}
|
||||||
if pageSize <= 0 {
|
if pageSize <= 0 {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
offset := (page - 1) * pageSize
|
offset := (page - 1) * pageSize
|
||||||
return s.loginLogRepo.ListByUserID(ctx, userID, offset, pageSize)
|
return s.loginLogRepo.ListByUserID(ctx, userID, offset, pageSize)
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ func (s *OperationLogService) GetMyOperationLogs(ctx context.Context, userID int
|
|||||||
page = 1
|
page = 1
|
||||||
}
|
}
|
||||||
if pageSize <= 0 {
|
if pageSize <= 0 {
|
||||||
pageSize = 20
|
pageSize = pagination.DefaultPageSize
|
||||||
}
|
}
|
||||||
offset := (page - 1) * pageSize
|
offset := (page - 1) * pageSize
|
||||||
return s.operationLogRepo.ListByUserID(ctx, userID, offset, pageSize)
|
return s.operationLogRepo.ListByUserID(ctx, userID, offset, pageSize)
|
||||||
|
|||||||
Reference in New Issue
Block a user