package metamanagement import ( "context" "encoding/json" "git.x2erp.com/qdy/go-base/ctx" "git.x2erp.com/qdy/go-base/logger" "git.x2erp.com/qdy/go-base/model/request/tabulatorreq" "git.x2erp.com/qdy/go-base/model/response" "git.x2erp.com/qdy/go-db/factory/database" "git.x2erp.com/qdy/go-svc-configure/internal/tables" ) // TabulatorConfigMetaRequest Tabulator专用的配置元请求 //type TabulatorConfigMetaRequest struct { // tabulatorreq.TabulatorRequest //} // ListConfigMetaTabulator Tabulator格式的配置元查询 func ListConfigMetaTabulator(req *tabulatorreq.TabulatorRequest, ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[[]tables.ConfigMetaDB] { // 调试:记录接收到的原始请求 if logger.IsDebug() { logger.Debug("TabulatorConfigMetaRequest 原始请求: %+v", req) if req != nil { jsonBytes, _ := json.Marshal(req) logger.Debug("TabulatorRequest: %s", jsonBytes) } } // 验证请求参数 if req == nil { req = &tabulatorreq.TabulatorRequest{} req.Page = 1 req.Size = 10 } req.Validate() // 调试:验证后的值 if logger.IsDebug() { logger.Debug("TabulatorConfigMetaRequest 验证后: Page=%d, Size=%d", req.Page, req.Size) } // 定义字段映射:前端字段名 -> 后端字段名 fieldMapper := func(field string) string { switch field { case "id": return "id" case "configName": return "configName" case "fieldName": return "fieldName" case "fieldType": return "fieldType" case "yamlName": return "yamlName" case "fieldDesc": return "fieldDesc" case "creator": return "creator" case "createdAt": return "createdAt" default: // 未知字段,返回空字符串(将被忽略) return "" } } // 转换为通用查询请求 queryReq := req.ToQueryRequest(fieldMapper) // 创建ConfigMetaQueryRequest configMetaReq := &ConfigMetaQueryRequest{ QueryRequest: *queryReq, } // 调用现有的查询逻辑 result := ListConfigMeta(configMetaReq, ctx, dbFactory, reqCtx) // 直接返回QueryResult,包含LastPage字段 return &response.QueryResult[[]tables.ConfigMetaDB]{ Success: result.Success, LastPage: result.LastPage, Data: result.Data, Error: result.Error, Count: len(result.Data), Time: result.Time, QueryTime: result.QueryTime, SaveTime: result.SaveTime, TotalCount: result.TotalCount, Message: result.Message, Metadata: result.Metadata, } }