From a5740196887308dd1bd105b18753061b0f010933 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 14 May 2019 18:29:58 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BA=AC=E4=B8=9C=E6=B4=BB=E5=8A=A8API?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/jdapi/promotion_audit.go | 99 +++++++--------------------- platformapi/jdapi/promotion_sku.go | 23 +++++-- 2 files changed, 40 insertions(+), 82 deletions(-) diff --git a/platformapi/jdapi/promotion_audit.go b/platformapi/jdapi/promotion_audit.go index e93d1b64..0d77a0f2 100644 --- a/platformapi/jdapi/promotion_audit.go +++ b/platformapi/jdapi/promotion_audit.go @@ -47,49 +47,30 @@ type OpenPlatActivityQResponse struct { } `json:"stationBeanList"` } -type PromotionSkuResult struct { - LimitDaily int - LimitDevice int - LimitPin int - PlatformRatio int - PromotionPrice int - SkuId int64 - StationNo int64 - StoreRatio int -} - -type PromotionInfo struct { - BeginTime time.Time - EndTime time.Time - PromotionInfoId int64 - PromotionState int - PromotionType int - Source string - SkuResultList []*PromotionSkuResult +type PromotionLspQuerySkuResult struct { + BeginTime *utils.JavaDate `json:"beginTime"` + EndTime *utils.JavaDate `json:"endTime"` + LimitDaily int `json:"limitDaily"` + LimitDevice int `json:"limitDevice"` + LimitPin int `json:"limitPin"` + PlatformRatio int `json:"platformRatio"` + PromotionPrice int `json:"promotionPrice"` + PromotionState int `json:"promotionState"` + PromotionType int `json:"promotionType"` + SkuID int64 `json:"skuId"` + Source string `json:"source"` + StationNo int64 `json:"stationNo"` + StoreRatio int `json:"storeRatio"` } type PromotionLspQueryInfoResult struct { - BeginTime *utils.JavaDate `json:"beginTime"` - EndTime *utils.JavaDate `json:"endTime"` - PromotionInfoID int `json:"promotionInfoId"` - PromotionState int `json:"promotionState"` - PromotionType int `json:"promotionType"` - SkuResultList []struct { - BeginTime *utils.JavaDate `json:"beginTime"` - EndTime *utils.JavaDate `json:"endTime"` - LimitDaily int `json:"limitDaily"` - LimitDevice int `json:"limitDevice"` - LimitPin int `json:"limitPin"` - PlatformRatio int `json:"platformRatio"` - PromotionPrice int `json:"promotionPrice"` - PromotionState int `json:"promotionState"` - PromotionType int `json:"promotionType"` - SkuId int64 `json:"skuId"` - Source string `json:"source"` - StationNo int64 `json:"stationNo"` - StoreRatio int `json:"storeRatio"` - } `json:"skuResultList"` - Source string `json:"source"` + BeginTime *utils.JavaDate `json:"beginTime"` + EndTime *utils.JavaDate `json:"endTime"` + PromotionInfoID int64 `json:"promotionInfoId"` + PromotionState int `json:"promotionState"` + PromotionType int `json:"promotionType"` + SkuResultList []*PromotionLspQuerySkuResult `json:"skuResultList"` + Source string `json:"source"` } func (a *API) OrderDiscountQueryActivityInfoById(activityID int64, promotionType, state int, operator string) (response *OpenPlatActivityQResponse, err error) { @@ -110,43 +91,7 @@ func (a *API) OrderDiscountQueryActivityInfoById(activityID int64, promotionType return response, err } -func (a *API) QueryPromotionInfo(promotionInfoId int64) (promotionInfo *PromotionInfo, err error) { - jdParams := map[string]interface{}{ - "promotionInfoId": promotionInfoId, - } - result, err := a.AccessAPINoPage("singlePromote/queryPromotionInfo", jdParams, nil, nil, genNoPageResultParser("errorCode", "errorInfos", "data", "0")) - if err == nil { - data := result.(map[string]interface{}) - // baseapi.SugarLogger.Debug(utils.Format4Output(data, false)) - promotionInfo = &PromotionInfo{ - BeginTime: utils.Timestamp2Time(utils.MustInterface2Int64(data["beginTime"].(map[string]interface{})["time"]) / 1000), - EndTime: utils.Timestamp2Time(utils.MustInterface2Int64(data["endTime"].(map[string]interface{})["time"]) / 1000), - PromotionInfoId: utils.MustInterface2Int64(data["promotionInfoId"]), - PromotionState: int(utils.MustInterface2Int64(data["promotionState"])), - PromotionType: int(utils.MustInterface2Int64(data["promotionType"])), - Source: utils.Interface2String(data["source"]), - } - skuResultList := data["skuResultList"].([]interface{}) - promotionInfo.SkuResultList = make([]*PromotionSkuResult, len(skuResultList)) - for k, v := range skuResultList { - skuResult := v.(map[string]interface{}) - promotionInfo.SkuResultList[k] = &PromotionSkuResult{ - LimitDaily: int(utils.MustInterface2Int64(skuResult["limitDaily"])), - LimitDevice: int(utils.MustInterface2Int64(skuResult["limitDevice"])), - LimitPin: int(utils.MustInterface2Int64(skuResult["limitPin"])), - PlatformRatio: int(utils.MustInterface2Int64(skuResult["platformRatio"])), - PromotionPrice: int(utils.MustInterface2Int64(skuResult["promotionPrice"])), - SkuId: utils.MustInterface2Int64(skuResult["skuId"]), - StationNo: utils.MustInterface2Int64(skuResult["stationNo"]), - StoreRatio: int(utils.MustInterface2Int64(skuResult["storeRatio"])), - } - } - return promotionInfo, nil - } - return nil, err -} - -func (a *API) QueryPromotionInfo2(promotionInfoId int64) (promotionInfo *PromotionLspQueryInfoResult, err error) { +func (a *API) QueryPromotionInfo(promotionInfoId int64) (promotionInfo *PromotionLspQueryInfoResult, err error) { jdParams := map[string]interface{}{ "promotionInfoId": promotionInfoId, } diff --git a/platformapi/jdapi/promotion_sku.go b/platformapi/jdapi/promotion_sku.go index e97231ae..ece80fed 100644 --- a/platformapi/jdapi/promotion_sku.go +++ b/platformapi/jdapi/promotion_sku.go @@ -29,6 +29,16 @@ const ( PromotionStateEnded = 9 ) +type PromotionSku struct { + SkuID int64 `json:"skuId,omitempty"` + OutSkuID string `json:"outSkuId,omitempty"` + StationNo int64 `json:"stationNo,omitempty"` + OutStationNo string `json:"outStationNo,omitempty"` + PromotionPrice int64 `json:"promotionPrice"` + LimitSkuCount int `json:"limitSkuCount,omitempty"` + FailReason string `json:"failReason,omitempty"` +} + func getPromotionCmd(inCmd string, promotionType int) (outCmd string) { if promotionType == PromotionTypeDirectDown { outCmd = "singlePromote/" + inCmd @@ -49,7 +59,7 @@ func (a *API) CreatePromotionInfosSingle(name string, beginDate, endDate time.Ti // 单品直降添加活动商品信息接口 // 最多200条 // https://opendj.jd.com/staticnew/widgets/resources.html?groupid=178&apiid=0ad0715e0aaa42489cbeac36398e916d -func (a *API) CreatePromotionSkuSingle(infoId int64, outInfoId string, skus []map[string]interface{}) (skusResult []map[string]interface{}, err error) { +func (a *API) CreatePromotionSkuSingle(infoId int64, outInfoId string, skus []*PromotionSku) (skusResult []*PromotionSku, err error) { return a.createPromotionSku(PromotionTypeDirectDown, infoId, outInfoId, skus) } @@ -93,7 +103,7 @@ func (a *API) CreatePromotionRules(infoId int64, outInfoId string, limitDevice, // 限时抢添加活动商品信息接口 // 最多200条 // https://opendj.jd.com/staticnew/widgets/resources.html?groupid=184&apiid=65fecef4883c40c6b23bbdb6123f5d80 -func (a *API) CreatePromotionSkuLimitTime(infoId int64, outInfoId string, skus []map[string]interface{}) (skusResult []map[string]interface{}, err error) { +func (a *API) CreatePromotionSkuLimitTime(infoId int64, outInfoId string, skus []*PromotionSku) (skusResult []*PromotionSku, err error) { return a.createPromotionSku(PromotionTypeLimitedTime, infoId, outInfoId, skus) } @@ -130,7 +140,7 @@ func (a *API) createPromotionInfos(promotionType int, name string, beginDate, en } // todo skusResult 返回值没有意义,为了兼容暂时保留 -func (a *API) createPromotionSku(promotionType int, infoId int64, outInfoId string, skus []map[string]interface{}) (skusResult []map[string]interface{}, err error) { +func (a *API) createPromotionSku(promotionType int, infoId int64, outInfoId string, skus []*PromotionSku) (skusResult []*PromotionSku, err error) { jdParams := map[string]interface{}{ "skus": skus, "timeStamp": utils.GetCurTimeStr(), @@ -140,8 +150,11 @@ func (a *API) createPromotionSku(promotionType int, infoId int64, outInfoId stri } else { jdParams[KeyOutInfoId] = outInfoId } - _, err = a.AccessAPINoPage(getPromotionCmd("createPromotionSku", promotionType), jdParams, nil, nil, genNoPageResultParser("errorCode", "data", "", "0")) - return nil, err + result, err := a.AccessAPINoPage(getPromotionCmd("createPromotionSku", promotionType), jdParams, nil, nil, genNoPageResultParser("errorCode", "errorInfos", "data", "0")) + if err == nil { + err = utils.Map2StructByJson(result, &skusResult, false) + } + return skusResult, err } func (a *API) confirmPromotion(promotionType int, infoId int64, outInfoId string) (err error) {