From df77f80475b6cc5cc21fc1ab08ff9e101e3f8fb5 Mon Sep 17 00:00:00 2001 From: douxu Date: Wed, 17 Dec 2025 17:10:47 +0800 Subject: [PATCH] add func of component param group recommend func --- model/attribute_group_model.go | 36 +++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/model/attribute_group_model.go b/model/attribute_group_model.go index b9c25ba..20fae25 100644 --- a/model/attribute_group_model.go +++ b/model/attribute_group_model.go @@ -3,7 +3,9 @@ package model import ( "context" + "errors" "fmt" + "log" "modelRT/logger" "modelRT/orm" @@ -31,18 +33,38 @@ func TraverseAttributeGroupTables(ctx context.Context, db *gorm.DB) error { continue } - exists := db.Migrator().HasTable(tableName) - if !exists { - logger.Warn(ctx, fmt.Sprintf("table %s does not exist in the database", tableName)) - } - - // TODO 优化返回结构,尝试首先获取表的结构 var records []map[string]any err := db.Table(tableName).Find(&records).Error if err != nil && err != gorm.ErrRecordNotFound { logger.Error(ctx, fmt.Sprintf("query table '%s' data failed", tableName), "table_name", tableName, "err", err) - continue + return err } + + migrator := db.Migrator() + + if exists := migrator.HasTable(tableName); !exists { + err := errors.New("can not find special table into database") + logger.Error(ctx, "table does not exist in the database", "table _name", tableName, "error", err) + return err + } + + columnTypes, err := migrator.ColumnTypes(tableName) + if err != nil { + logger.Error(ctx, "retrieving column structure for table failed", "table _name", tableName, "error", err) + return err + } + + tableSchema := make(map[string]gorm.ColumnType) + + for _, col := range columnTypes { + name := col.Name() + dataType, _ := col.ColumnType() + log.Printf("column: %s, Type: %s", name, dataType) + if name != "id" { + tableSchema[name] = col + } + } + // TODO 将筛选后的属性值加入到缓存系统中 }