package metamanagement import ( "context" "fmt" "git.x2erp.com/qdy/go-base/ctx" "git.x2erp.com/qdy/go-base/logger" "git.x2erp.com/qdy/go-base/model/response" "git.x2erp.com/qdy/go-base/util" "git.x2erp.com/qdy/go-db/factory/database" "git.x2erp.com/qdy/go-svc-configure/internal/tables" ) // ListConfigMeta 查询配置元信息列表 func ListConfigMeta(ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[[]tables.ConfigMetaDB] { logger.Debug("ListConfigMeta-开始查询配置元信息") // 获取数据库连接 db := dbFactory.GetDB() // 查询所有配置元信息 var metaList []tables.ConfigMetaDB query := ` SELECT id, config_name, field_name, field_type, yaml_name, field_desc, creator, created_at FROM config_meta ORDER BY config_name, field_name ` err := db.SelectContext(ctx, &metaList, query) if err != nil { logger.ErrorC(reqCtx, fmt.Sprintf("查询配置元信息失败: %v", err)) return util.CreateErrorResult[[]tables.ConfigMetaDB](fmt.Sprintf("查询配置元信息失败: %v", err), reqCtx) } logger.Debug(fmt.Sprintf("查询到 %d 条配置元信息", len(metaList))) return util.CreateSuccessResultData[[]tables.ConfigMetaDB](metaList, reqCtx) } // SearchConfigMeta 搜索配置元信息 func SearchConfigMeta(ctx context.Context, dbFactory *database.DBFactory, configName, fieldName, yamlName string, reqCtx *ctx.RequestContext) *response.QueryResult[[]tables.ConfigMetaDB] { logger.Debug("SearchConfigMeta-开始搜索配置元信息") // 获取数据库连接 db := dbFactory.GetDB() // 构建查询条件和参数 query := ` SELECT id, config_name, field_name, field_type, yaml_name, field_desc, creator, created_at FROM config_meta WHERE 1=1 ` var args []interface{} if configName != "" { query += " AND config_name LIKE ?" args = append(args, "%"+configName+"%") } if fieldName != "" { query += " AND field_name LIKE ?" args = append(args, "%"+fieldName+"%") } if yamlName != "" { query += " AND yaml_name LIKE ?" args = append(args, "%"+yamlName+"%") } query += " ORDER BY config_name, field_name" var metaList []tables.ConfigMetaDB err := db.SelectContext(ctx, &metaList, query, args...) if err != nil { logger.ErrorC(reqCtx, fmt.Sprintf("搜索配置元信息失败: %v", err)) return util.CreateErrorResult[[]tables.ConfigMetaDB](fmt.Sprintf("搜索配置元信息失败: %v", err), reqCtx) } logger.Debug(fmt.Sprintf("搜索到 %d 条配置元信息", len(metaList))) return util.CreateSuccessResultData[[]tables.ConfigMetaDB](metaList, reqCtx) }