From 649e7a98dae8dd9496719679dc0226aa97fb7a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 9 Apr 2020 08:58:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AEexcel=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=A0=87=E5=93=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index ae2f02172..0c1910a3d 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "mime/multipart" + "regexp" "strconv" "strings" "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) { switch step { @@ -1799,7 +1801,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error specQuality = float32(utils.Str2Float64(cell)) } 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 { + upc := upcRegexp.FindString(*v.Upc) + if upc == "" { + createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "请输入正确的商品条码!")) + continue + } skuName.Upc = v.Upc } else { createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的条码不能为空!")) + continue } skuNames, _ := dao.GetSkuNames(db, nil, []string{*v.Upc}, "") if len(skuNames) > 0 { @@ -1838,7 +1846,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error if len(productInfos) == 0 { result, _ := api.AliUpcAPI.GetAliUpcInfo(*v.Upc) if result == nil { - createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "暂不支持创建此商品!")) + createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未在标品库查到此商品,请手动创建!")) continue } if result.Img != "" { @@ -1870,7 +1878,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error } if v.Price == 0 { if result.Price == "" { - createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的售价不能为空!")) + createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品售价,请补充商品的售价!")) continue } else { 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 != "" { skuName.Unit = v.Unit } else { - createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的单位不能为空!")) + createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品单位,请补充商品单位!")) continue } if v.SpecQuality != 0 { skuName.Skus[0].SpecQuality = v.SpecQuality skuName.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(v.SpecQuality)))) } else { - createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的重量不能为空!")) + createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品重量,请补充商品重量!")) continue } skuName.Skus[0].SpecUnit = model.SpecialSpecUnit @@ -1911,7 +1919,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader) (err error continue } if result.Price == "" { - createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "商品的售价不能为空!")) + createUpcSkuByExcelErrList = append(createUpcSkuByExcelErrList, buildCreateUpcSkuByExcelErr(v, "未查询到商品售价,请补充商品售价!")) continue } else { skuName.Price = int(utils.Str2Int64(result.Price) * 100)