refactor(*): 稳定期治理 - 收敛核心架构、错误语义并修复跨项目数据竞态

This commit is contained in:
ddCat
2026-09-09 22:02:10 +08:00
parent bacd502f5c
commit b5f3413ded
298 changed files with 12681 additions and 26428 deletions

View File

@@ -142,8 +142,12 @@ func RegisterUserDataRoutes(r *gin.RouterGroup, svc *service.Service) {
failService(c, err)
return
}
limit, _ := strconv.Atoi(c.DefaultQuery("limit", "200"))
resources, err := svc.Resources(user.ID, limit)
pageSize, err := parsePositiveQueryInt(c.Query("pageSize"), 200)
if err != nil {
fail(c, http.StatusBadRequest, err)
return
}
resources, err := svc.Resources(user.ID, pageSize)
if err != nil {
failService(c, err)
return
@@ -406,18 +410,13 @@ func RegisterUserDataRoutes(r *gin.RouterGroup, svc *service.Service) {
return
}
if _, paged := c.GetQuery("page"); paged || hasUserAssetPageFilters(c) {
page, pageErr := strconv.Atoi(c.DefaultQuery("page", "1"))
if pageErr != nil || page < 1 {
fail(c, http.StatusBadRequest, service.BadAuthRequest("页码必须是正整数"))
return
}
pageSize, pageSizeErr := strconv.Atoi(c.DefaultQuery("page_size", "40"))
if pageSizeErr != nil || pageSize < 1 {
fail(c, http.StatusBadRequest, service.BadAuthRequest("每页数量必须是正整数"))
page, pageSize, pageErr := parsePaginationQuery(c, 40)
if pageErr != nil {
fail(c, http.StatusBadRequest, pageErr)
return
}
var folderID *string
if value, present := c.GetQuery("folder_id"); present {
if value, present := c.GetQuery("folderId"); present {
folderID = &value
}
assets, pageErr := svc.UserAssetsPage(user.ID, page, pageSize, service.UserAssetPageFilter{
@@ -593,9 +592,12 @@ func RegisterUserDataRoutes(r *gin.RouterGroup, svc *service.Service) {
return
}
if c.Query("page") != "" {
page, _ := strconv.Atoi(c.Query("page"))
pageSize, _ := strconv.Atoi(c.Query("page_size"))
result, pageErr := svc.UserCanvasProjectsPage(user.ID, page, pageSize, c.Query("project_id"), c.Query("q"), c.Query("sort"))
page, pageSize, pageErr := parsePaginationQuery(c, 40)
if pageErr != nil {
fail(c, http.StatusBadRequest, pageErr)
return
}
result, pageErr := svc.UserCanvasProjectsPage(user.ID, page, pageSize, c.Query("projectId"), c.Query("q"), c.Query("sort"))
if pageErr != nil {
failService(c, pageErr)
return
@@ -670,7 +672,7 @@ func RegisterUserDataRoutes(r *gin.RouterGroup, svc *service.Service) {
}
func hasUserAssetPageFilters(c *gin.Context) bool {
for _, key := range []string{"page_size", "kind", "category", "folder_id", "uncategorized", "status", "q"} {
for _, key := range []string{"pageSize", "kind", "category", "folderId", "uncategorized", "status", "q"} {
if _, present := c.GetQuery(key); present {
return true
}