- avoid JdID duplicated when creating cat or sku.

This commit is contained in:
gazebo
2018-09-15 21:55:03 +08:00
parent af5038e8a7
commit 1df63ff45d
2 changed files with 13 additions and 1 deletions

View File

@@ -3,6 +3,7 @@ package cms
import ( import (
"crypto/md5" "crypto/md5"
"fmt" "fmt"
"time"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
@@ -68,3 +69,8 @@ func GetQiniuUploadToken(suffix string) (upTokenInfo map[string]interface{}, err
func genPicFileName(suffix string) string { func genPicFileName(suffix string) string {
return fmt.Sprintf("%x%s", md5.Sum([]byte(utils.GetUUID()+suffix)), suffix) return fmt.Sprintf("%x%s", md5.Sum([]byte(utils.GetUUID()+suffix)), suffix)
} }
// 生成一个不重复的临时ID
func genTmpID() int64 {
return time.Now().UnixNano()
}

View File

@@ -10,6 +10,7 @@ import (
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
) )
type SkuNamesInfo struct { type SkuNamesInfo struct {
@@ -43,6 +44,7 @@ func GetCategories(parentID int) (cats []*model.SkuCategory, err error) {
func AddCategory(cat *model.SkuCategory, userName string) (outCat *model.SkuCategory, err error) { func AddCategory(cat *model.SkuCategory, userName string) (outCat *model.SkuCategory, err error) {
dao.WrapAddIDCULDEntity(cat, userName) dao.WrapAddIDCULDEntity(cat, userName)
cat.JdSyncStatus = model.SyncFlagNewMask cat.JdSyncStatus = model.SyncFlagNewMask
cat.JdID = genTmpID()
if err = dao.CreateEntity(nil, cat); err == nil { if err = dao.CreateEntity(nil, cat); err == nil {
outCat = cat outCat = cat
err = CurVendorSync.SyncCategory(nil, cat.ID, false, userName) err = CurVendorSync.SyncCategory(nil, cat.ID, false, userName)
@@ -264,10 +266,12 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
} }
sqlParams = append(sqlParams, pageSize, offset) sqlParams = append(sqlParams, pageSize, offset)
skuNamesInfo = &SkuNamesInfo{} skuNamesInfo = &SkuNamesInfo{}
// globals.SugarLogger.Debug(sqlData) globals.SugarLogger.Debug(sqlData)
globals.SugarLogger.Debug(utils.Format4Output(sqlData, false))
if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil { if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil {
countInfo := &struct{ Ct int }{} countInfo := &struct{ Ct int }{}
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
globals.SugarLogger.Debug(utils.Format4Output(countInfo, false))
skuNamesInfo.TotalCount = countInfo.Ct skuNamesInfo.TotalCount = countInfo.Ct
for _, skuName := range skuNamesInfo.SkuNames { for _, skuName := range skuNamesInfo.SkuNames {
if skuName.SkusStr != "" { if skuName.SkusStr != "" {
@@ -301,6 +305,7 @@ func AddSkuName(skuNameExt *model.SkuNameExt, userName string) (outSkuNameExt *m
dao.WrapAddIDCULDEntity(sku, userName) dao.WrapAddIDCULDEntity(sku, userName)
sku.NameID = skuNameExt.ID sku.NameID = skuNameExt.ID
sku.JdSyncStatus = model.SyncFlagNewMask sku.JdSyncStatus = model.SyncFlagNewMask
sku.JdID = genTmpID()
if err = dao.CreateEntity(db, sku); err != nil { if err = dao.CreateEntity(db, sku); err != nil {
dao.Rollback(db) dao.Rollback(db)
return nil, err return nil, err
@@ -402,6 +407,7 @@ func AddSku(nameID int, sku *model.Sku, userName string) (outSkuNameExt *model.S
dao.WrapAddIDCULDEntity(sku, userName) dao.WrapAddIDCULDEntity(sku, userName)
sku.JdSyncStatus = model.SyncFlagNewMask sku.JdSyncStatus = model.SyncFlagNewMask
sku.NameID = nameID sku.NameID = nameID
sku.JdID = genTmpID()
if err = dao.CreateEntity(db, sku); err == nil { if err = dao.CreateEntity(db, sku); err == nil {
result, err2 := GetSkuNames("", utils.Params2Map("skuID", sku.ID), 0, 0) result, err2 := GetSkuNames("", utils.Params2Map("skuID", sku.ID), 0, 0)
if err = err2; err == nil { if err = err2; err == nil {