根据excel创建标品优化

This commit is contained in:
苏尹岚
2020-04-09 08:58:42 +08:00
parent 2a0f6fafe7
commit 649e7a98da

View File

@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"io" "io"
"mime/multipart" "mime/multipart"
"regexp"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@@ -1759,10 +1760,11 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error
"商品条码", "商品条码",
"商品名称", "商品名称",
"单位", "单位",
"规格", "重量(g)",
"售价", "售价",
"错误原因", "错误原因",
} }
upcRegexp = regexp.MustCompile(`/^\d{12,13}$/`)
) )
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step { switch step {
@@ -1799,7 +1801,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error
specQuality = float32(utils.Str2Float64(cell)) specQuality = float32(utils.Str2Float64(cell))
} }
if k == 4 { if k == 4 {
price = int(utils.Str2Float64(cell) * 100) price = int(utils.Str2Float64(cell))
} }
} }
} }
@@ -1821,9 +1823,15 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error
}, },
} }
if v.Upc != nil { if v.Upc != nil {
upc := upcRegexp.FindString(*v.Upc)
if upc == "" {
createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "请输入正确的商品条码!"))
continue
}
skuName.Upc = v.Upc skuName.Upc = v.Upc
} else { } else {
createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的条码不能为空!")) createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的条码不能为空!"))
continue
} }
skuNames, _ := dao.GetSkuNames(db, nil, []string{*v.Upc}, "") skuNames, _ := dao.GetSkuNames(db, nil, []string{*v.Upc}, "")
if len(skuNames) > 0 { if len(skuNames) > 0 {
@@ -1838,7 +1846,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error
if len(productInfos) == 0 { if len(productInfos) == 0 {
result, _ := api.AliUpcAPI.GetAliUpcInfo(*v.Upc) result, _ := api.AliUpcAPI.GetAliUpcInfo(*v.Upc)
if result == nil { if result == nil {
createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "暂不支持创建此商品")) createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未在标品库查到此商品,请手动创建"))
continue continue
} }
if result.Img != "" { if result.Img != "" {
@@ -1870,7 +1878,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error
} }
if v.Price == 0 { if v.Price == 0 {
if result.Price == "" { if result.Price == "" {
createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的售价不能为空")) createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品售价,请补充商品的售价!"))
continue continue
} else { } else {
skuName.Price = int(utils.Str2Int64(result.Price) * 100) skuName.Price = int(utils.Str2Int64(result.Price) * 100)
@@ -1881,14 +1889,14 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error
if v.Unit != "" { if v.Unit != "" {
skuName.Unit = v.Unit skuName.Unit = v.Unit
} else { } else {
createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的单位不能为空")) createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品单位,请补充商品单位"))
continue continue
} }
if v.SpecQuality != 0 { if v.SpecQuality != 0 {
skuName.Skus[0].SpecQuality = v.SpecQuality skuName.Skus[0].SpecQuality = v.SpecQuality
skuName.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(v.SpecQuality)))) skuName.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(v.SpecQuality))))
} else { } else {
createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的重量不能为空")) createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品重量,请补充商品重量"))
continue continue
} }
skuName.Skus[0].SpecUnit = model.SpecialSpecUnit skuName.Skus[0].SpecUnit = model.SpecialSpecUnit
@@ -1911,7 +1919,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error
continue continue
} }
if result.Price == "" { if result.Price == "" {
createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的售价不能为空")) createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品售价,请补充商品售价"))
continue continue
} else { } else {
skuName.Price = int(utils.Str2Int64(result.Price) * 100) skuName.Price = int(utils.Str2Int64(result.Price) * 100)