This commit is contained in:
gazebo
2019-07-17 23:09:53 +08:00
parent 62fb04ecb4
commit b5b3d82130
2 changed files with 16 additions and 15 deletions

View File

@@ -3,6 +3,7 @@ package cms
import ( import (
"fmt" "fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/business/partner/putils"
@@ -45,7 +46,7 @@ func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int
} }
func SyncStorCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { func SyncStorCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
globals.SugarLogger.Debugf("SyncStorCategories %s storeID:%d, userName:%s", storeID, model.VendorChineseNames[vendorID], ctx.GetUserName()) globals.SugarLogger.Debugf("SyncStorCategories %s storeID:%d, %s, userName:%s", storeID, model.VendorChineseNames[vendorID], ctx.GetUserName())
handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
num := 0 num := 0
db := dao.GetDB() db := dao.GetDB()
@@ -69,16 +70,19 @@ func SyncStorCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendor
} }
} else if model.IsSyncStatusNew(catInfo.StoreCatSyncStatus) { // 新增 } else if model.IsSyncStatusNew(catInfo.StoreCatSyncStatus) { // 新增
if err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo); err == nil { if err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo); err == nil {
refutil.SetObjFieldByName(storeCatMap, syncStatusFieldName, catInfo.VendorCatID)
updateFields = append(updateFields, syncStatusFieldName) updateFields = append(updateFields, syncStatusFieldName)
} }
} else if model.IsSyncStatusUpdate(catInfo.StoreCatSyncStatus) { // 修改 } else if model.IsSyncStatusUpdate(catInfo.StoreCatSyncStatus) { // 修改
if err = handler.UpdateStoreCategory(ctx, storeID, vendorStoreID, catInfo); err == nil { if err = handler.UpdateStoreCategory(ctx, storeID, vendorStoreID, catInfo); err == nil {
refutil.SetObjFieldByName(storeCatMap, syncStatusFieldName, catInfo.VendorCatID)
updateFields = append(updateFields, syncStatusFieldName) updateFields = append(updateFields, syncStatusFieldName)
} }
} }
if err == nil { if err == nil {
if vendorID == model.VendorIDMTWM {
refutil.SetObjFieldByName(storeCatMap, syncStatusFieldName, catInfo.VendorCatID)
} else {
refutil.SetObjFieldByName(storeCatMap, syncStatusFieldName, utils.Str2Int64WithDefault(catInfo.VendorCatID, 0))
}
_, err = dao.UpdateEntity(db, storeCatMap, updateFields...) _, err = dao.UpdateEntity(db, storeCatMap, updateFields...)
} }
return nil, err return nil, err
@@ -98,7 +102,7 @@ func SyncStorCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendor
} }
func SyncStoreSkuNew(ctx *jxcontext.Context, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { func SyncStoreSkuNew(ctx *jxcontext.Context, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
singleStoreHandler, _ := partner.GetPrinterPlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) singleStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
if singleStoreHandler != nil { if singleStoreHandler != nil {
if err = CreateStoreCategoryByStoreSku(ctx, vendorID, storeID, vendorStoreID, nameIDs, skuIDs); err != nil { if err = CreateStoreCategoryByStoreSku(ctx, vendorID, storeID, vendorStoreID, nameIDs, skuIDs); err != nil {
return "", err return "", err
@@ -169,14 +173,13 @@ func calVendorPrice4StoreSku(inSku *dao.StoreSkuSyncInfo, pricePercentagePack mo
} }
func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item *dao.KVUpdateItem) { func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item *dao.KVUpdateItem) {
newSyncStatus := int8(0)
if syncStatus&(model.SyncFlagDeletedMask|model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { if syncStatus&(model.SyncFlagDeletedMask|model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 {
newSyncStatus = 0 sku.StoreSkuSyncStatus = 0
} else { } else {
newSyncStatus = sku.StoreSkuSyncStatus & ^syncStatus sku.StoreSkuSyncStatus = sku.StoreSkuSyncStatus & ^syncStatus
} }
kvs := map[string]interface{}{ kvs := map[string]interface{}{
dao.GetSyncStatusStructField(model.VendorNames[vendorID]): newSyncStatus, dao.GetSyncStatusStructField(model.VendorNames[vendorID]): sku.StoreSkuSyncStatus,
} }
if syncStatus == model.SyncFlagNewMask { if syncStatus == model.SyncFlagNewMask {
kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = sku.VendorSkuID kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = sku.VendorSkuID
@@ -213,9 +216,8 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID,
if err != nil { if err != nil {
return err return err
} }
singleStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
singleStoreHandler, _ := partner.GetPrinterPlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) storeSkuHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
storeSkuHandler := partner.GetPrinterPlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
var ( var (
createList, updateList []*dao.StoreSkuSyncInfo createList, updateList []*dao.StoreSkuSyncInfo
@@ -239,7 +241,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID,
} }
} else if model.IsSyncStatusNew(sku.StoreSkuSyncStatus) { } else if model.IsSyncStatusNew(sku.StoreSkuSyncStatus) {
calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)) calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))
if singleStoreHandler != nil { if singleStoreHandler == nil {
bareSku = storeSkuSyncInfo2Bare(sku) bareSku = storeSkuSyncInfo2Bare(sku)
stockList = append(stockList, bareSku) stockList = append(stockList, bareSku)
} else { } else {
@@ -270,7 +272,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID,
if _, err = dao.BatchUpdateEntityByKV(db, updateItems); err != nil { if _, err = dao.BatchUpdateEntityByKV(db, updateItems); err != nil {
return err return err
} }
bareSku2Sync := func(bareSkuList []*partner.StoreSkuInfo) (skuList []*dao.StoreSkuSyncInfo) { bareSku2Sync := func(bareSkuList []*partner.StoreSkuInfo) (skuList []*dao.StoreSkuSyncInfo) {
if len(bareSkuList) > 0 { if len(bareSkuList) > 0 {
skuList = make([]*dao.StoreSkuSyncInfo, len(bareSkuList)) skuList = make([]*dao.StoreSkuSyncInfo, len(bareSkuList))

View File

@@ -84,7 +84,7 @@ func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID in
func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (err error) { func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (err error) {
storeSku := storeSkuList[0] storeSku := storeSkuList[0]
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
_, err = api.EbaiAPI.SkuUpdate(vendorStoreID, utils.Str2Int64(storeSku.VendorSkuID), genSkuParamsFromStoreSkuInfo2(storeSku)) _, err = api.EbaiAPI.SkuUpdate(utils.Int2Str(storeID), utils.Str2Int64(storeSku.VendorSkuID), genSkuParamsFromStoreSkuInfo2(storeSku))
} }
return err return err
} }
@@ -94,7 +94,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
storeSku := storeSkuList[0] storeSku := storeSkuList[0]
var vendorSkuID int64 var vendorSkuID int64
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
vendorSkuID, err = api.EbaiAPI.SkuCreate(vendorStoreID, storeSku.SkuID, genSkuParamsFromStoreSkuInfo2(storeSku)) vendorSkuID, err = api.EbaiAPI.SkuCreate(utils.Int2Str(storeID), storeSku.SkuID, genSkuParamsFromStoreSkuInfo2(storeSku))
} else { } else {
vendorSkuID = jxutils.GenFakeID() vendorSkuID = jxutils.GenFakeID()
} }