diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 06c099032..ee0491139 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -28,9 +28,9 @@ import ( const ( MaxSkuUnitPrice = 500000 - CopyStoreSkuModeFresh = "fresh" - CopyStoreSkuModeUpdate = "update" - // CopyStoreSkuModeAdd = "add" + CopyStoreSkuModeFresh = "fresh" // 全新复制 + CopyStoreSkuModeUpdate = "update" // 增量复制 + CopyStoreSkuModeUpdatePrice = "updatePrice" // 增量复制价格 ) type StoreSkuExt struct { @@ -1295,7 +1295,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode panic(r) } }() - if copyMode == CopyStoreSkuModeFresh || copyMode == CopyStoreSkuModeUpdate { + if copyMode == CopyStoreSkuModeFresh { // 将toStore中存在,但fromStore中不存在的置删除标志 sqlDelete := ` UPDATE store_sku_bind t1 @@ -1334,16 +1334,20 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode toStoreID, utils.DefaultTimeValue, } - if copyMode == CopyStoreSkuModeUpdate { - sqlDelete += sqlCatAndSku - sqlDeleteParams = append(sqlDeleteParams, sqlCatAndSkuParams) - } + sqlDelete += sqlCatAndSku + sqlDeleteParams = append(sqlDeleteParams, sqlCatAndSkuParams) // globals.SugarLogger.Debug(sqlDelete) if num, err = dao.ExecuteSQL(db, sqlDelete, sqlDeleteParams); err != nil { return 0, err } globals.SugarLogger.Debugf("CopyStoreSkus trackInfo:%s num1:%d", ctx.GetTrackInfo(), num) } + isModifyStatus := 1 + syncStatus := model.SyncFlagStoreSkuOnlyMask + if copyMode == CopyStoreSkuModeUpdatePrice { + isModifyStatus = 0 + syncStatus = model.SyncFlagPriceMask + } // 处理toStore中与fromStore中都存在的 sql := ` UPDATE store_sku_bind t1 @@ -1356,7 +1360,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode t1.sub_store_id = 0, t1.price = IF(t0.price * ? / 100 > 0, t0.price * ? / 100, 1), t1.unit_price = IF(t0.unit_price * ? / 100 > 0, t0.unit_price * ? / 100, 1), - t1.status = t0.status, + t1.status = IF(? = 0, t1.status, t0.status), t1.jd_sync_status = t1.jd_sync_status | ?, t1.wsc_sync_status = t1.wsc_sync_status | ?, t1.mtwm_sync_status = t1.mtwm_sync_status | ?, @@ -1375,10 +1379,11 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode pricePercentage, pricePercentage, pricePercentage, - model.SyncFlagStoreSkuOnlyMask, - model.SyncFlagStoreSkuOnlyMask, - model.SyncFlagStoreSkuOnlyMask, - model.SyncFlagStoreSkuOnlyMask, + isModifyStatus, + syncStatus, + syncStatus, + syncStatus, + syncStatus, toStoreID, utils.DefaultTimeValue, } @@ -1396,7 +1401,8 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode INSERT INTO store_sku_bind(created_at, updated_at, last_operator, deleted_at, store_id, sku_id, sub_store_id, price, unit_price, status, jd_sync_status, wsc_sync_status, ebai_sync_status, mtwm_sync_status) SELECT ?, ?, ?, ?, ?, - t1.sku_id, 0, IF(t1.price * ? / 100 > 0, t1.price * ? / 100, 1), IF(t1.unit_price * ? / 100 > 0, t1.unit_price * ? / 100, 1), t1.status, ?, ?, ?, ? + t1.sku_id, 0, IF(t1.price * ? / 100 > 0, t1.price * ? / 100, 1), IF(t1.unit_price * ? / 100 > 0, t1.unit_price * ? / 100, 1), + IF(? = 0, ?, t1.status), ?, ?, ?, ? FROM store_sku_bind t1 JOIN sku t2 ON t1.sku_id = t2.id AND t2.deleted_at = ? JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ? @@ -1410,6 +1416,8 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode pricePercentage, pricePercentage, pricePercentage, + isModifyStatus, + model.SkuStatusDontSale, model.SyncFlagNewMask, model.SyncFlagNewMask, model.SyncFlagNewMask,