- mtwm sku act ready

This commit is contained in:
gazebo
2019-07-02 16:42:09 +08:00
parent 3d1290a87c
commit 99a9946667
4 changed files with 146 additions and 18 deletions

View File

@@ -24,6 +24,19 @@ type LogicUpdateInfo struct {
Condition map[string]interface{}
}
func splitPromotionSku(skus []*jdapi.PromotionSku, maxCount int) (skusList [][]*jdapi.PromotionSku) {
for {
skusLen := len(skus)
if skusLen <= maxCount {
skusList = append(skusList, skus)
break
}
skusList = append(skusList, skus[:maxCount])
skus = skus[maxCount:]
}
return skusList
}
func CreatePromotionInfos(promotionType int, name string, beginDate, endDate time.Time, outInfoId, advertising, traceId string) (infoId int64, err error) {
if globals.EnableJdStoreWrite {
if promotionType == model.ActSkuDirectDown {
@@ -50,10 +63,18 @@ func CreatePromotionRules(promotionType int, infoId int64, outInfoId string, lim
func CreatePromotionSku(promotionType int, infoId int64, outInfoId string, skus []*jdapi.PromotionSku, traceId string) (skusResult []*jdapi.PromotionSku, err error) {
if globals.EnableJdStoreWrite {
if promotionType == model.ActSkuDirectDown {
return api.JdAPI.CreatePromotionSkuSingle(infoId, outInfoId, skus, traceId)
} else {
return api.JdAPI.CreatePromotionSkuLimitTime(infoId, outInfoId, skus, traceId)
for _, batchSkus := range splitPromotionSku(skus, jdapi.MaxPromotionSkuCount) {
var tmpSkusResult []*jdapi.PromotionSku
var tmpErr error
if promotionType == model.ActSkuDirectDown {
tmpSkusResult, tmpErr = api.JdAPI.CreatePromotionSkuSingle(infoId, outInfoId, batchSkus, traceId)
} else {
tmpSkusResult, tmpErr = api.JdAPI.CreatePromotionSkuLimitTime(infoId, outInfoId, batchSkus, traceId)
}
if err = tmpErr; err != nil {
break
}
skusResult = append(skusResult, tmpSkusResult...)
}
}
return skusResult, err
@@ -61,10 +82,16 @@ func CreatePromotionSku(promotionType int, infoId int64, outInfoId string, skus
func CancelPromotionSku(promotionType int, infoId int64, outInfoId string, skus []*jdapi.PromotionSku, traceId string) (err error) {
if globals.EnableJdStoreWrite {
if promotionType == model.ActSkuDirectDown {
return api.JdAPI.CancelPromotionSkuSingle(infoId, outInfoId, skus, traceId)
} else {
return api.JdAPI.CancelPromotionSkuLimitTime(infoId, outInfoId, skus, traceId)
for _, batchSkus := range splitPromotionSku(skus, jdapi.MaxPromotionSkuCount) {
var tmpErr error
if promotionType == model.ActSkuDirectDown {
tmpErr = api.JdAPI.CancelPromotionSkuSingle(infoId, outInfoId, batchSkus, traceId)
} else {
tmpErr = api.JdAPI.CancelPromotionSkuLimitTime(infoId, outInfoId, batchSkus, traceId)
}
if err = tmpErr; err != nil {
break
}
}
}
return err