This commit is contained in:
suyl
2021-08-14 09:52:56 +08:00
parent ccc0af75ae
commit 389d29366d
6 changed files with 122 additions and 12 deletions

View File

@@ -44,6 +44,15 @@ var (
"38", //:跨seller商品满减券,
"39", //:跨seller运费券
}
//优惠类型
DiscountTypeMap = map[int]string{
1: "减钱",
2: "折扣",
3: "一口价",
4: "买赠",
5: "下单返券",
}
)
type ActivityRule struct {
@@ -272,6 +281,7 @@ func (a *API) ActivitySkuUpdateBatch(activityID int64, actSkuInfoList []*Activit
func (a *API) ActMultiChannelQueryIDs(shopID string, baiduShopID int64, actType string) (actIDs []int64, err error) {
params := a.genShopIDParams(shopID, baiduShopID, 0)
params["query_activity_type"] = actType
params["page_size"] = 100
result, err := a.AccessAPI("act.multi.channel.queryids", params)
if err == nil {
if result.Data != nil {
@@ -283,3 +293,94 @@ func (a *API) ActMultiChannelQueryIDs(shopID string, baiduShopID int64, actType
}
return actIDs, err
}
type ActMultiChannelQueryInfosResult struct {
Activityplatform int `json:"activityPlatform"`
Childtype int `json:"childType"`
Periodsandruleapilist []struct {
Periods []struct {
Weekday string `json:"weekday"`
Closetime string `json:"closeTime"`
Opentime string `json:"openTime"`
} `json:"periods"`
} `json:"periodsAndRuleApiList"`
Skulist []*ActMultiChannelQueryInfosSkuList `json:"skuList"`
Deliverychannel int `json:"deliveryChannel"`
Limitruleapi struct {
Usertotalcountlimit int `json:"userTotalCountLimit"`
Userdaycountlimit int `json:"userDayCountLimit"`
} `json:"limitRuleApi"`
Activityname string `json:"activityName"`
Activityid int64 `json:"activityId"`
Createtime int64 `json:"createTime"`
Starttime int64 `json:"startTime"`
Endtime int64 `json:"endTime"`
Skutotal int `json:"skuTotal"`
Activitytype int `json:"activityType"`
Status int `json:"status"`
}
type ActMultiChannelQueryInfosSkuList struct {
Itemid int64 `json:"itemId"`
Periodsandruleapilist []struct {
Ruleapi struct {
Subsidyapi struct {
Agentsubsidy int `json:"agentSubsidy"`
Elemesubsidy int `json:"elemeSubsidy"`
Shopsubsidy int `json:"shopSubsidy"`
} `json:"subsidyApi"`
Discount int `json:"discount"`
Discounttype int `json:"discountType"`
} `json:"ruleApi"`
} `json:"periodsAndRuleApiList"`
Wid int64 `json:"wid"`
Limitruleapi struct {
Usertotalcountlimit int `json:"userTotalCountLimit"`
Detaildaycountlimit int `json:"detailDayCountLimit"`
Detailcountlimit int `json:"detailCountLimit"`
Userdaycountlimit int `json:"userDayCountLimit"`
} `json:"limitRuleApi"`
Realstock int `json:"realStock"`
Dayrealstock int `json:"dayRealStock"`
Storeid int `json:"storeId"`
Upcname string `json:"upcName"`
Skuid string `json:"skuId"`
}
// 多渠道查询活动详情
func (a *API) ActMultiChannelQueryInfos(activityID, shopID string, baiduShopID int64) (actMultiChannelQueryInfosResult *ActMultiChannelQueryInfosResult, err error) {
pageSize := 100
params := a.genShopIDParams(shopID, baiduShopID, 0)
params["activity_id"] = activityID
params["page_size"] = pageSize
result, err := a.AccessAPI("act.multi.channel.queryinfos", params)
if err == nil {
if result.Data != nil {
utils.Map2StructByJson(result.Data.(map[string]interface{}), &actMultiChannelQueryInfosResult, false)
if actMultiChannelQueryInfosResult.Skutotal > pageSize {
for page := 2; page < actMultiChannelQueryInfosResult.Skutotal/pageSize+2; page++ {
actMultiChannelQueryInfosResult.Skulist = append(actMultiChannelQueryInfosResult.Skulist, a.ActMultiChannelQueryInfosPage(activityID, shopID, baiduShopID, page)...)
}
} else {
return actMultiChannelQueryInfosResult, err
}
}
}
return actMultiChannelQueryInfosResult, err
}
// 多渠道查询活动详情
func (a *API) ActMultiChannelQueryInfosPage(activityID, shopID string, baiduShopID int64, page int) (actMultiChannelQueryInfosSkuList []*ActMultiChannelQueryInfosSkuList) {
pageSize := 100
params := a.genShopIDParams(shopID, baiduShopID, 0)
params["activity_id"] = activityID
params["page_size"] = pageSize
params["page"] = page
result, err := a.AccessAPI("act.multi.channel.queryinfos", params)
if err == nil {
if result.Data != nil {
utils.Map2StructByJson(result.Data.(map[string]interface{})["skuList"], &actMultiChannelQueryInfosSkuList, false)
}
}
return actMultiChannelQueryInfosSkuList
}