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商品满减券, "38", //:跨seller商品满减券,
"39", //:跨seller运费券 "39", //:跨seller运费券
} }
//优惠类型
DiscountTypeMap = map[int]string{
1: "减钱",
2: "折扣",
3: "一口价",
4: "买赠",
5: "下单返券",
}
) )
type ActivityRule struct { 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) { func (a *API) ActMultiChannelQueryIDs(shopID string, baiduShopID int64, actType string) (actIDs []int64, err error) {
params := a.genShopIDParams(shopID, baiduShopID, 0) params := a.genShopIDParams(shopID, baiduShopID, 0)
params["query_activity_type"] = actType params["query_activity_type"] = actType
params["page_size"] = 100
result, err := a.AccessAPI("act.multi.channel.queryids", params) result, err := a.AccessAPI("act.multi.channel.queryids", params)
if err == nil { if err == nil {
if result.Data != nil { if result.Data != nil {
@@ -283,3 +293,94 @@ func (a *API) ActMultiChannelQueryIDs(shopID string, baiduShopID int64, actType
} }
return actIDs, err 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
}

View File

@@ -70,7 +70,7 @@ func TestActivityUpdate(t *testing.T) {
} }
func TestActivityGet(t *testing.T) { func TestActivityGet(t *testing.T) {
activityInfo, err := api.ActivityGet(0, "", 0, 0) activityInfo, err := api.ActivityGet(6000000380161091, "", 100000045925, 0)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} else { } else {
@@ -95,7 +95,16 @@ func TestActivitySkuList(t *testing.T) {
} }
func TestActMultiChannelQueryIDs(t *testing.T) { func TestActMultiChannelQueryIDs(t *testing.T) {
result, err := api.ActMultiChannelQueryIDs("", 200000066556, "2") result, err := api.ActMultiChannelQueryIDs("", 100000045925, "2")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestActMultiChannelQueryInfos(t *testing.T) {
result, err := api.ActMultiChannelQueryInfos("6000000418366727", "", 100000045925)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@@ -7,7 +7,7 @@ import (
) )
func TestOrderGet(t *testing.T) { func TestOrderGet(t *testing.T) {
result, err := api.OrderGet("5027183668737301717") result, err := api.OrderGet("2157781636259071682")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} else { } else {

View File

@@ -5,7 +5,6 @@ import (
"crypto/aes" "crypto/aes"
"crypto/cipher" "crypto/cipher"
"encoding/base64" "encoding/base64"
"encoding/hex"
"fmt" "fmt"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/encoding/simplifiedchinese"
@@ -758,7 +757,7 @@ func h8l82int(h, l string) (i int64) {
for j := 0; j < flag2; j++ { for j := 0; j < flag2; j++ {
s2 = "0" + s2 s2 = "0" + s2
} }
i, _ = strconv.ParseInt(s1+s2, 2, 10) i, _ = strconv.ParseInt(s1+s2, 2, 32)
return i return i
} }
@@ -778,10 +777,11 @@ func TestUpdateStatus(t *testing.T) {
// json.Unmarshal(result, &mobile) // json.Unmarshal(result, &mobile)
//} //}
//fmt.Println(utils.Format4Output(mobile, true)) //fmt.Println(utils.Format4Output(mobile, true))
str := "z" //data := "1e00180200015032303231303631353030303031308628e9"
printDataGBK, _ := Utf8ToGbk([]byte(str)) //orderNo := h8l82int(data[len(data)-6:len(data)-4], data[len(data)-4:len(data)-2])
printData := hex.EncodeToString(printDataGBK) //base, _ := strconv.ParseInt(data[len(data)-6:len(data)-4]+data[len(data)-4:len(data)-2], 16, 10)
fmt.Println(printData) i, _ := strconv.ParseInt("8628", 16, 32)
fmt.Println(xtob("86"), xtob("28"), i)
} }
func sss() (data2 []byte) { func sss() (data2 []byte) {

View File

@@ -154,7 +154,7 @@ func TestRetailDiscountBatchSave(t *testing.T) {
} }
func TestRetailDiscountList(t *testing.T) { func TestRetailDiscountList(t *testing.T) {
result, err := api.RetailDiscountList(testPoiCode, RetailActTypeDirectDown) result, err := api.RetailDiscountList("12405467", RetailActTypeDirectDown)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@@ -19,13 +19,13 @@ func init() {
baseapi.Init(sugarLogger) baseapi.Init(sugarLogger)
// 菜市 // 菜市
api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "") //api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "")
// 果园 // 果园
//api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "") //api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "")
//商超 //商超
// api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_tE0txRtx7CRuPIOjh2BH4w") //token_nH_IlcWQKAkZBqklwItNRw api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_gbUPuDi9v0BKfnjdFz5IYw") //token_nH_IlcWQKAkZBqklwItNRw
cookieStr := ` cookieStr := `
acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1; acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1;
` `