- 创建与修改SkuName时,防止UPC重复

This commit is contained in:
gazebo
2019-04-15 15:01:15 +08:00
parent 5e3bd659c9
commit a6dfc8dbda
2 changed files with 23 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ package cms
import (
"errors"
"fmt"
"strconv"
"strings"
@@ -441,6 +442,15 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
panic(r)
}
}()
if skuNameExt.Upc != "" {
err = dao.GetEntity(db, &skuNameExt.SkuName, "Upc")
if err == nil {
return nil, fmt.Errorf("UPC:%s重复", skuNameExt.Upc)
} else if !dao.IsNoRowsError(err) {
return nil, err
}
err = nil
}
skuNameExt.SkuName.Status = model.SkuStatusNormal
if skuNameExt.IsSpu == 1 {
skuNameExt.SkuName.JdSyncStatus = model.SyncFlagNewMask
@@ -528,6 +538,18 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
globals.SugarLogger.Debugf("UpdateSkuName valid:%s", utils.Format4Output(valid, false))
dao.Begin(db)
defer dao.Rollback(db)
if upc, _ := valid["upc"].(string); upc != "" {
skuName := &model.SkuName{
Upc: upc,
}
err = dao.GetEntity(db, skuName, "Upc")
if err == nil {
return 0, fmt.Errorf("UPC:%s重复", upc)
} else if !dao.IsNoRowsError(err) {
return 0, err
}
err = nil
}
if valid["img"] != nil {
imgContent, imgMD5, err2 := jxutils.DownloadFileByURL(valid["img"].(string))
if err = err2; err != nil {

View File

@@ -172,7 +172,7 @@ type SkuName struct {
ImgEbai string `orm:"size(255)" json:"imgEbai"` // 饿百图片地址
ImgHashCode string `orm:"size(255);index" json:"img_hash_code"`
ElmImgHashCode string `orm:"size(255)" json:"-"` // 长度255的原因是从京东初始化数据时临时需要
Upc string `orm:"size(20)"`
Upc string `orm:"size(20);index"`
Status int `orm:"default(1)" json:"status"` // skuname状态取值同sku.Status
IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU