- 继续重构新版同步逻辑

This commit is contained in:
gazebo
2019-07-12 15:01:49 +08:00
parent 7d59d1d0f1
commit 8f0f3f2690
7 changed files with 196 additions and 12 deletions

View File

@@ -265,9 +265,10 @@ func (p *PurchaseHandler) GetStoreSkusInfo(ctx *jxcontext.Context, parentTask ta
for _, foodInfo := range vendorFoodList {
vendorSku := foodInfo.SkuList[0]
storeSku := storeSkuMap[vendorSku.SkuID]
outStoreSkuList = append(outStoreSkuList, storeSku)
storeSku.Stock = int(utils.Str2Int64WithDefault(vendorSku.Stock, 0))
storeSku.Price = jxutils.StandardPrice2Int(utils.Str2Float64WithDefault(vendorSku.Price, 0))
storeSku.Status = mtwmSkuStatus2Jx(foodInfo.IsSoldOut)
outStoreSkuList = append(outStoreSkuList, storeSku)
}
}
return outStoreSkuList, err
@@ -281,3 +282,63 @@ func mtwmSkuStatus2Jx(mtwmSkuStatus int) (jxSkuStatus int) {
}
return jxSkuStatus
}
func (p *PurchaseHandler) GetStoreAllSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string) (skuNameList []*partner.SkuNameInfo, err error) {
for {
result, err := api.MtwmAPI.RetailList(vendorStoreID, len(skuNameList), mtwmapi.GeneralMaxLimit)
if err != nil {
return nil, err
}
skuNameList = append(skuNameList, vendorSkuList2Jx(result)...)
if len(result) < mtwmapi.GeneralMaxLimit {
break
}
}
return skuNameList, err
}
func vendorSku2Jx(vendorSku *mtwmapi.AppFood) (skuName *partner.SkuNameInfo) {
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(vendorSku.Name)
mtwmSku := vendorSku.SkuList[0]
weight := mtwmSku.Weight
if weight <= 0 {
weight = jxutils.FormatSkuWeight(specQuality, specUnit)
}
skuName = &partner.SkuNameInfo{
Prefix: prefix,
Name: name,
Unit: unit,
SkuList: []*partner.FullSkuInfo{
&partner.FullSkuInfo{
BareStoreSkuInfo: partner.BareStoreSkuInfo{
VendorSkuID: mtwmSku.SkuID,
SkuID: int(utils.Str2Int64WithDefault(mtwmSku.SkuID, 0)),
Stock: int(utils.Str2Int64WithDefault(mtwmSku.Stock, 0)),
Price: jxutils.StandardPrice2Int(utils.Str2Float64WithDefault(mtwmSku.Price, 0)),
Status: mtwmSkuStatus2Jx(vendorSku.IsSoldOut),
},
SkuName: vendorSku.Name,
Comment: comment,
SpecQuality: float64(specQuality),
SpecUnit: specUnit,
Weight: weight,
},
},
PictureList: vendorSku.PictureList,
}
if vendorSku.CategoryName != "" {
skuName.VendorCatIDList = []string{vendorSku.CategoryName}
if vendorSku.SecondaryCategoryName != "" {
skuName.VendorCatIDList = append(skuName.VendorCatIDList, vendorSku.SecondaryCategoryName)
}
}
return skuName
}
func vendorSkuList2Jx(vendorSkuList []*mtwmapi.AppFood) (skuNameList []*partner.SkuNameInfo) {
for _, vendorSku := range vendorSkuList {
skuNameList = append(skuNameList, vendorSku2Jx(vendorSku))
}
return skuNameList
}