|
@@ -547,7 +547,6 @@ func AnalyTableV2(tabs []*goquery.Selection, toptype, blockTag, con string, ityp
|
|
|
|
|
|
//开始解析表格集
|
|
|
func (ts *TableResult) Analy() {
|
|
|
- fmt.Println("1111111111111111")
|
|
|
tabs := []*Table{}
|
|
|
contactFormat := &u.ContactFormat{
|
|
|
IndexMap: map[int]string{},
|
|
@@ -559,7 +558,7 @@ func (ts *TableResult) Analy() {
|
|
|
ts := tn.Analy(contactFormat)
|
|
|
for _, tab := range ts {
|
|
|
tabs = append(tabs, tab)
|
|
|
- fmt.Println("tab.SortKV.Map", tab.SortKV.Keys)
|
|
|
+ //fmt.Println("tab.SortKV.Map", tab.SortKV.Keys)
|
|
|
}
|
|
|
//tn.SonTables = append(tn.SonTables, tn)
|
|
|
}
|
|
@@ -780,9 +779,8 @@ func (table *Table) Analy(contactFormat *u.ContactFormat) []*Table {
|
|
|
table.TdContactFormat(contactFormat)
|
|
|
//开始查找kv,核心模块
|
|
|
table.FindKV()
|
|
|
- fmt.Println("KvMap----------", table.SortKV.Keys)
|
|
|
//table中抽取品牌
|
|
|
- //table.analyBrand()
|
|
|
+ table.analyBrand()
|
|
|
//判断是否是多包,并处理分包的
|
|
|
table.CheckMultiPackageByTable()
|
|
|
str := "\n"
|
|
@@ -2658,20 +2656,18 @@ L:
|
|
|
}
|
|
|
|
|
|
func (table *Table) analyBrand() {
|
|
|
- fmt.Println("-------", table.BrandData)
|
|
|
//产品名称 品牌 规格 单价 单位 数量 小计 质保期
|
|
|
lineMap := make(map[string]map[string]string)
|
|
|
lineMapArr := make(map[string]map[string][]string)
|
|
|
brandRule := u.BrandRules
|
|
|
//将val为数组和string的分开
|
|
|
for key, val := range table.SortKV.Map {
|
|
|
- fmt.Println("key:", key, " val:", val)
|
|
|
+ //fmt.Println("key:", key, " val:", val)
|
|
|
key = regReplAllSpace.ReplaceAllString(key, "")
|
|
|
key = strings.Replace(key, "", "", -1) //处理一个特殊的采购量 经上层处理空格后未处理掉
|
|
|
kind := reflect.TypeOf(val).String()
|
|
|
//处理多个key相同的数据
|
|
|
if kind == "[]string" { //val为数组 {"数量":["1","2","3"]}
|
|
|
- fmt.Println("=====[]string")
|
|
|
/*
|
|
|
{
|
|
|
"商品":["","",],
|
|
@@ -2707,7 +2703,6 @@ func (table *Table) analyBrand() {
|
|
|
}
|
|
|
}
|
|
|
} else if kind == "string" { //val为字符串 {"数量":"1"}
|
|
|
- fmt.Println("=====string")
|
|
|
/*
|
|
|
{
|
|
|
"商品:"",名称:"",
|
|
@@ -2730,16 +2725,12 @@ func (table *Table) analyBrand() {
|
|
|
} else { //新增数据
|
|
|
lineValMap[key] = realTypeVal
|
|
|
}
|
|
|
- fmt.Println("lineValMap===", lineValMap)
|
|
|
}
|
|
|
}
|
|
|
- //fmt.Println("lineMapArr------------------------------", lineMapArr)
|
|
|
- //fmt.Println("lineMap------------------------------", lineMap)
|
|
|
+
|
|
|
//处理数组数据后,匹配必须title和替换要保存的title
|
|
|
if len(lineMapArr) > 0 {
|
|
|
for _, aMap := range lineMapArr {
|
|
|
- //u.Debug(aMap)
|
|
|
- //minNum := 0
|
|
|
maxNum := 0
|
|
|
arrcount := 0 //记录key是否存在必须title(数组数据)
|
|
|
ka := make(map[string][]string) //最终存储数据
|
|
@@ -2754,7 +2745,6 @@ func (table *Table) analyBrand() {
|
|
|
arrcount++
|
|
|
}
|
|
|
}
|
|
|
- //fmt.Println(arrcount, k0, v0)
|
|
|
//替换其它要保存字段
|
|
|
for nameR, r := range brandRule["replace"] {
|
|
|
if convert(k0, r) { //匹配成功
|
|
@@ -2798,7 +2788,6 @@ func (table *Table) analyBrand() {
|
|
|
if len(lineMap) > 0 {
|
|
|
for _, sMap := range lineMap {
|
|
|
strcount := 0 //记录key是否存在必须title(字符串数据)
|
|
|
- //fmt.Println("---------------", sMap)
|
|
|
endStrMap := make(map[string]string)
|
|
|
for k1, v1 := range sMap {
|
|
|
//匹配必须title
|
|
@@ -2806,7 +2795,6 @@ func (table *Table) analyBrand() {
|
|
|
if convert(k1, r) { //匹配成功
|
|
|
endStrMap[nameM] = v1
|
|
|
strcount++
|
|
|
- //fmt.Println(strcount, k1, v1)
|
|
|
}
|
|
|
}
|
|
|
//替换其它要保存字段
|
|
@@ -2826,7 +2814,6 @@ func (table *Table) analyBrand() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- fmt.Println("finish---", table.BrandData)
|
|
|
}
|
|
|
|
|
|
func dealArrData(minNum int, ka map[string][]string) []map[string]string {
|
|
@@ -2917,28 +2904,23 @@ func assembleData(m interface{}) []map[string]string {
|
|
|
|
|
|
func convert(key, r string) bool {
|
|
|
flag := false
|
|
|
- //fmt.Println("key1---", key)
|
|
|
key = tabletitleclear.ReplaceAllString(key, "")
|
|
|
- //fmt.Println("key2---", key)
|
|
|
reg, err := regexp.Compile(r)
|
|
|
if err != nil {
|
|
|
fmt.Println("reg err:", err)
|
|
|
return flag
|
|
|
}
|
|
|
flag = reg.MatchString(key)
|
|
|
- //fmt.Println(key, " ", r, " ", flag)
|
|
|
return flag
|
|
|
}
|
|
|
|
|
|
func hasKey(table *Table, n int) {
|
|
|
- //fmt.Println("key匹配到:", n, table.TableResult.HasKey)
|
|
|
if table.TableResult.HasKey == 1 {
|
|
|
return
|
|
|
}
|
|
|
if n >= 1 {
|
|
|
table.TableResult.HasKey = 1
|
|
|
}
|
|
|
- //fmt.Println(table.TableResult.HasKey)
|
|
|
}
|
|
|
|
|
|
//是否有商品
|
|
@@ -2981,7 +2963,6 @@ func hasBrand(table *Table, data interface{}) {
|
|
|
if ok { //string数据检查brand
|
|
|
if sData != "" {
|
|
|
brandFlag = u.BrandGet.CheckSensitiveWord(sData)
|
|
|
- //fmt.Println("--------------", sData, brandFlag)
|
|
|
if len(brandFlag) > 0 {
|
|
|
table.TableResult.HasBrand = 1
|
|
|
}
|