diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 74766b407..7c33a2dda 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -1,6 +1,7 @@ package mtwm import ( + "fmt" "regexp" "strings" @@ -25,6 +26,8 @@ const ( const ( defVendorCatID = 200001903 // 生菜 + + specialStoreID = "8171010" ) var ( @@ -197,12 +200,35 @@ func (p *PurchaseHandler) IsErrSkuNotExist(err error) (isNotExist bool) { return mtwmapi.IsErrSkuNotExist(err) } +func duplicateStoreSkuList(storeSkuList []*dao.StoreSkuSyncInfo, index int) (newStoreSkuList []*dao.StoreSkuSyncInfo) { + newStoreSkuList = make([]*dao.StoreSkuSyncInfo, len(storeSkuList)) + for k, v := range storeSkuList { + tmp := *v + tmp.SkuName = fmt.Sprintf("%s.%d", tmp.SkuName, index+1) + tmp.SkuID = index*1000000 + tmp.SkuID + newStoreSkuList[k] = &tmp + } + return newStoreSkuList +} + func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (successList []*dao.StoreSkuSyncInfo, err error) { - return p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, false) + successList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, false) + if err == nil && vendorStoreID == specialStoreID { + for i := 0; i < 2; i++ { + p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, duplicateStoreSkuList(storeSkuList, i), true) + } + } + return successList, err } func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (successList []*dao.StoreSkuSyncInfo, err error) { - return p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true) + successList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true) + if err == nil && vendorStoreID == specialStoreID { + for i := 0; i < 2; i++ { + p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, duplicateStoreSkuList(storeSkuList, i), true) + } + } + return successList, err } // 对于多门店平台来说,storeSkuList中只有SkuID与VendorSkuID有意义 @@ -235,7 +261,11 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI foodData["category_name"] = storeSku.VendorCatID } foodData["is_sold_out"] = skuStatusJX2Mtwm(storeSku.MergedStatus) - foodData["picture"] = strings.Join(jxutils.BatchString2Slice(storeSku.Img, storeSku.Img2), ",") + if vendorStoreID == specialStoreID { + foodData["picture"] = strings.Join(jxutils.BatchString2Slice(storeSku.Img, storeSku.Img, storeSku.Img, storeSku.Img, storeSku.Img), ",") + } else { + foodData["picture"] = strings.Join(jxutils.BatchString2Slice(storeSku.Img, storeSku.Img2), ",") + } if storeSku.DescImg != "" { foodData["picture_contents"] = storeSku.DescImg }