From 30b5ff0c70d15c13e54ed8c35de3b53daf5473a7 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 3 Dec 2019 10:17:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=BD=E9=87=8F=E5=8E=BB=E6=8E=89=E5=AF=B9?= =?UTF-8?q?=E4=BA=8EUpdateEntityLogicallyAndUpdateSyncStatus=E7=9A=84?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 26 ++++++++++++++++++-------- business/jxstore/cms/sync_store_sku.go | 14 ++++++++++---- business/model/dao/store_sku.go | 9 +++++++++ 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index ffc6b8979..3528323e4 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -5,6 +5,7 @@ import ( "fmt" "strconv" "strings" + "time" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -116,8 +117,9 @@ func UpdateCategory(ctx *jxcontext.Context, categoryID int, payload map[string]i if valid["name"] != nil { valid["name"] = strings.Trim(valid["name"].(string), " ") syncStatus = model.SyncFlagModifiedMask + valid[model.FieldJdSyncStatus] = int8(syncStatus) | cat.JdSyncStatus } - if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, cat, valid, userName, nil, model.FieldJdSyncStatus, syncStatus); err == nil { + if num, err = dao.UpdateEntityLogically(db, cat, valid, userName, nil); err == nil { SetStoreCategorySyncStatus2(db, nil, []int{categoryID}, model.SyncFlagModifiedMask) var skuIDs []int if valid["jdCategoryID"] != nil || valid["ebaiCategoryID"] != nil || valid["mtwmCategoryID"] != nil || @@ -725,7 +727,8 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf panic(r) } }() - if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, skuName, valid, userName, nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask); err == nil { + valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask | skuName.JdSyncStatus + if num, err = dao.UpdateEntityLogically(db, skuName, valid, userName, nil); err == nil { if utils.Interface2Int64WithDefault(payload["isGlobal"], 0) == 0 && payload["places"] != nil { if places, ok := payload["places"].([]interface{}); ok { if _, err = dao.DeleteSkuNamePlace(db, nameID, nil); err == nil { @@ -745,10 +748,16 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } if err == nil { - sku := &model.Sku{} - _, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, nil, userName, map[string]interface{}{ - model.FieldNameID: nameID, - }, model.FieldJdSyncStatus, model.SyncFlagModifiedMask) + skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil) + if err = err2; err == nil { + for _, v := range skuList { + sku := &v.Sku + sku.JdSyncStatus |= model.SyncFlagModifiedMask + sku.LastOperator = userName + sku.UpdatedAt = time.Now() + dao.UpdateEntity(db, sku) + } + } if err == nil { skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID}) if err = err2; err == nil && len(skuIDs) > 0 { @@ -873,11 +882,12 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} panic(r) } }() - maskValue := model.SyncFlagModifiedMask + maskValue := int8(model.SyncFlagModifiedMask) if valid["specQuality"] != nil || valid["specUnit"] != nil { maskValue |= model.SyncFlagSpecMask } - if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, valid, userName, nil, model.FieldJdSyncStatus, maskValue); err == nil { + valid[model.FieldJdSyncStatus] = maskValue | sku.JdSyncStatus + if num, err = dao.UpdateEntityLogically(db, sku, valid, userName, nil); err == nil { if num == 1 { if num, err = dao.ExecuteSQL(db, ` UPDATE sku_name t1 diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index cc8d4d3ea..ccadf591a 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -661,7 +661,7 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v if opType == AmendPruneOnlyAmend || opType == AmendPruneAll { for _, v := range localSkuList { if !model.IsSyncStatusDelete(v.StoreSkuSyncStatus) && v.BindID != 0 { - syncStatus := 0 + syncStatus := int8(0) if remoteSkuMap[v.VendorSkuID] == 0 { if !model.IsSyncStatusNew(v.StoreSkuSyncStatus) { syncStatus = model.SyncFlagNewMask @@ -672,7 +672,10 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v if syncStatus != 0 { skuBind := &model.StoreSkuBind{} skuBind.ID = v.BindID - dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, skuBind, nil, ctx.GetUserName(), nil, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), syncStatus) + skuBind.LastOperator = ctx.GetUserName() + skuBind.UpdatedAt = time.Now() + dao.SetStoreSkuBindSyncStatus(skuBind, vendorID, syncStatus|v.StoreSkuSyncStatus) + dao.UpdateEntity(db, skuBind, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.FieldLastOperator, model.FieldUpdatedAt) } } } @@ -708,7 +711,7 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v for _, v := range localCatList { if !model.IsSyncStatusDelete(v.StoreCatSyncStatus) && v.MapID != 0 { - syncStatus := 0 + syncStatus := int8(0) if remoteCatMap[v.VendorCatID] == 0 { if !model.IsSyncStatusNew(v.StoreCatSyncStatus) { syncStatus = model.SyncFlagNewMask @@ -719,7 +722,10 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v if syncStatus != 0 { catBind := &model.StoreSkuCategoryMap{} catBind.ID = v.MapID - dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, catBind, nil, ctx.GetUserName(), nil, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), syncStatus) + catBind.LastOperator = ctx.GetUserName() + catBind.UpdatedAt = time.Now() + dao.SetStoreCatMapSyncStatus(catBind, vendorID, syncStatus|v.StoreCatSyncStatus) + dao.UpdateEntity(db, catBind, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.FieldLastOperator, model.FieldUpdatedAt) } } } diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index c15fb5504..eee7246f2 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -712,3 +712,12 @@ func GetStoreSkuBindSyncStatus(storeSkuBind *model.StoreSkuBind, vendorID int) ( } return syncStatus } + +func SetStoreCatMapSyncStatus(storeCatMap *model.StoreSkuCategoryMap, vendorID int, syncStatus int8) { + switch vendorID { + case model.VendorIDMTWM: + storeCatMap.MtwmSyncStatus = syncStatus + case model.VendorIDEBAI: + storeCatMap.EbaiSyncStatus = syncStatus + } +}