AutoMapping
This commit is contained in:
parent
952a0e9440
commit
d572b8599f
3 changed files with 26 additions and 15 deletions
|
|
@ -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 预览字段映射关系
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 数据绑定
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue