From d572b8599f49c00aa8242a1996a27e2619064aec Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 17 Jan 2022 15:43:46 +0800 Subject: [PATCH] AutoMapping --- importer/importer.go | 15 +++++++-------- importer/importer_test.go | 15 +++++++++++++-- importer/types.go | 11 ++++++----- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/importer/importer.go b/importer/importer.go index 51a8a66e..a2f6206b 100644 --- a/importer/importer.go +++ b/importer/importer.go @@ -9,7 +9,6 @@ import ( jsoniter "github.com/json-iterator/go" "github.com/yaoapp/kun/exception" - "github.com/yaoapp/kun/utils" "github.com/yaoapp/xiang/config" "github.com/yaoapp/xiang/importer/from" "github.com/yaoapp/xiang/share" @@ -54,11 +53,12 @@ func (imp *Importer) AutoMapping(src from.Source) *Mapping { sourceColumns := getSourceColumns(src) sourceInspect := src.Inspect() mapping := &Mapping{ - Columns: []*Binding{}, - AutoMatching: true, - Sheet: sourceInspect.SheetName, - ColStart: sourceInspect.ColStart, - RowStart: sourceInspect.RowStart, + Columns: []*Binding{}, + AutoMatching: true, + TemplateMatching: false, + Sheet: sourceInspect.SheetName, + ColStart: sourceInspect.ColStart, + RowStart: sourceInspect.RowStart, } for i := range imp.Columns { @@ -83,8 +83,7 @@ func (imp *Importer) AutoMapping(src from.Source) *Mapping { mapping.Columns = append(mapping.Columns, &binding) } - utils.Dump(mapping) - return nil + return mapping } // MappingPreview 预览字段映射关系 diff --git a/importer/importer_test.go b/importer/importer_test.go index 5dc52062..3f340fd3 100644 --- a/importer/importer_test.go +++ b/importer/importer_test.go @@ -5,7 +5,6 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/yaoapp/kun/utils" "github.com/yaoapp/xiang/config" "github.com/yaoapp/xiang/importer/xlsx" ) @@ -30,5 +29,17 @@ func TestAutoMappingSimple(t *testing.T) { imp := Select("order") mapping := imp.AutoMapping(file) - utils.Dump(mapping) + assert.Equal(t, true, mapping.AutoMatching) + assert.Equal(t, false, mapping.TemplateMatching) + assert.Equal(t, 1, mapping.ColStart) + assert.Equal(t, 1, mapping.RowStart) + assert.Equal(t, 10, len(mapping.Columns)) + assert.Equal(t, len(imp.Columns), len(mapping.Columns)) + for i, col := range mapping.Columns { + dst := imp.Columns[i].ToMap() + assert.Equal(t, dst["name"], col.Field) + assert.Equal(t, dst["label"], col.Label) + assert.Equal(t, dst["rules"], col.Rules) + assert.NotEmpty(t, col.Axis) + } } diff --git a/importer/types.go b/importer/types.go index d76f6c26..3e55ebc3 100644 --- a/importer/types.go +++ b/importer/types.go @@ -41,11 +41,12 @@ type Option struct { // Mapping 字段映射表 type Mapping struct { - Sheet string `json:"sheet"` // 数据表 - ColStart int `json:"colStart"` // 第一列的位置 - RowStart int `json:"rowStart"` // 第一行的位置 - Columns []*Binding `json:"data"` // 字段数据列表 - AutoMatching bool `json:"autoMatching"` // 是否自动匹配 + Sheet string `json:"sheet"` // 数据表 + ColStart int `json:"colStart"` // 第一列的位置 + RowStart int `json:"rowStart"` // 第一行的位置 + Columns []*Binding `json:"data"` // 字段数据列表 + AutoMatching bool `json:"autoMatching"` // 是否自动匹配 + TemplateMatching bool `json:"templateMatching"` // 是否通过已传模板匹配 } // Binding 数据绑定