From a571acef56baa9b88b0ce37376ac82022bacdf5e Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 28 May 2019 17:09:20 +0800 Subject: [PATCH] =?UTF-8?q?-=20mtwm=E4=BC=98=E6=83=A0=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/mtwmapi/act.go | 79 +++++++++++++++++++++++++++++++-- platformapi/mtwmapi/act_test.go | 8 ++++ platformapi/mtwmapi/callback.go | 2 + 3 files changed, 86 insertions(+), 3 deletions(-) diff --git a/platformapi/mtwmapi/act.go b/platformapi/mtwmapi/act.go index ba4e5998..c04c2ff2 100644 --- a/platformapi/mtwmapi/act.go +++ b/platformapi/mtwmapi/act.go @@ -42,7 +42,7 @@ const ( type FullDiscountActInfo struct { ActIDs string `json:"act_ids"` ActName string `json:"act_name"` - StartTime int64 `json:"start_time"` // 活动开始时间,单s位秒 + StartTime int64 `json:"start_time"` // 活动开始时间,单位秒 EndTime int64 `json:"end_time"` // 活动结束时间,单位秒 ActType int `json:"act_type"` Status int `json:"-"` @@ -84,7 +84,7 @@ type ShippingFeeActDetail struct { } type ShippingFeeActData struct { - StartTime int64 `json:"start_time"` // 活动开始时间,单s位秒 + StartTime int64 `json:"start_time"` // 活动开始时间,单位秒 EndTime int64 `json:"end_time"` // 活动结束时间,单位秒 WeeksTime string `json:"weeks_time,omitempty"` Period string `json:"period,omitempty"` @@ -99,7 +99,7 @@ type ShippingFeeActData struct { type RetailActData struct { AppFoodCode string `json:"app_food_code"` UserType int `json:"user_type"` - StartTime int64 `json:"start_time"` // 活动开始时间,单s位秒 + StartTime int64 `json:"start_time"` // 活动开始时间,单位秒 EndTime int64 `json:"end_time"` // 活动结束时间,单位秒 OrderLimit int `json:"order_limit"` DayLimit int `json:"day_limit"` @@ -124,6 +124,40 @@ type RetailActDataLimit struct { OrderLimit int `json:"order_limit,omitempty"` // 每单可购买的折扣商品数量 } +type LimitTime struct { + StartTime int64 `json:"start_time"` // 活动开始时间,单位秒 + EndTime int64 `json:"end_time"` // 活动结束时间,单位秒 +} + +type CouponInfo struct { + LimitPrice float64 `json:"limit_price"` //使用门槛,单位元 + CouponPrice float64 `json:"coupon_price"` // 优惠券金额,单位元 + UserType int `json:"user_type"` // 可领用户类型,新客、老客、全部 + ValidityDays int `json:"validity_days"` //使用有效期,用户领用了此商家券后在领用日起多久内可有效使用 + Stock int `json:"stock"` +} + +type CouponData struct { + LimitPrice float64 `json:"limit_price"` //使用门槛,单位元 + CouponPrice float64 `json:"coupon_price"` // 优惠券金额,单位元 + UserType int `json:"user_type"` // 可领用户类型,新客、老客、全部 + ValidityDays int `json:"validity_days"` //使用有效期,用户领用了此商家券后在领用日起多久内可有效使用 + Stock int `json:"stock"` + + UseCount int `json:"use_count"` // 劵已使用数量 + SentCount int `json:"sent_count"` // 劵已发数量 +} + +type CouponActInfo struct { + AppPoiCode string `json:"app_poi_code"` + StartTime int64 `json:"start_time"` // 活动开始时间,单位秒 + EndTime int64 `json:"end_time"` // 活动结束时间,单位秒 + ActData []*CouponData `json:"act_data"` // 活动数据 + ActID int64 `json:"actId"` + RemainDays int `json:"remain_days"` // 活动剩余天数 + Status int `json:"status"` // 活动状态 +} + // 批量创建指定商品满减活动或创建店内满减活动 // http://developer.waimai.meituan.com/home/docDetail/255 func (a *API) FullDiscountBatchSave(poiCode string, actInfo *FullDiscountActInfo, actList []*FullDiscountActDetail, actSkuList []*FullDiscountSku) (actID int64, err error) { @@ -335,3 +369,42 @@ func (a *API) RetailDiscountBatchLimit(poiCode, actDataList []*RetailActDataLimi }) return err } + +// 批量新增商家券(店内发券)活动 +// http://developer.waimai.meituan.com/home/docDetail/312 +func (a *API) InStoreCouponBatchSave(poiCode string, limitTime *LimitTime, couponInfoList []*CouponInfo) (actID int64, err error) { + result, err := a.AccessAPI2("act/instore/coupon/batchsave", false, map[string]interface{}{ + KeyAppPoiCode: poiCode, + "limit_time": string(utils.MustMarshal(limitTime)), + "act_data": string(utils.MustMarshal(couponInfoList)), + }, resultKeyMsg) + if err == nil { + actID = utils.MustInterface2Int64(result.([]interface{})[0].(map[string]interface{})["act_id"]) + } + return actID, err +} + +// 批量删除商家券(店内发券)活动 +// http://developer.waimai.meituan.com/home/docDetail/313 +func (a *API) InStoreCouponDelete(poiCode string, actIDList []string) (err error) { + _, err = a.AccessAPI("act/instore/coupon/delete", false, map[string]interface{}{ + KeyAppPoiCode: poiCode, + "act_ids": strings.Join(actIDList, ","), + }) + return err +} + +// 查询商家券(店内发券)活动 +// http://developer.waimai.meituan.com/home/docDetail/314 +// 页码从1开始 +func (a *API) InStoreCouponList(poiCode string, pageNum, pageSize int) (couponActList []*CouponActInfo, err error) { + result, err := a.AccessAPI("act/instore/coupon/list", false, map[string]interface{}{ + KeyAppPoiCode: poiCode, + "page_num": pageNum, + "page_size": pageSize, + }) + if err == nil { + err = utils.Map2StructByJson(result, &couponActList, false) + } + return couponActList, err +} diff --git a/platformapi/mtwmapi/act_test.go b/platformapi/mtwmapi/act_test.go index 9e0177ee..f5695e6a 100644 --- a/platformapi/mtwmapi/act_test.go +++ b/platformapi/mtwmapi/act_test.go @@ -94,3 +94,11 @@ func TestRetailDiscountDelete(t *testing.T) { t.Fatal(err) } } + +func TestInStoreCouponList(t *testing.T) { + result, err := api.InStoreCouponList("6783616", 1, 100) + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result, false)) +} diff --git a/platformapi/mtwmapi/callback.go b/platformapi/mtwmapi/callback.go index d3ae5187..9353678e 100644 --- a/platformapi/mtwmapi/callback.go +++ b/platformapi/mtwmapi/callback.go @@ -46,6 +46,8 @@ type CallbackRefundInfo struct { OrderID int64 `json:"order_id"` NotifyType string `json:"notify_type"` + RefundID int64 `json:"refund_id"` + Ctime int64 `json:"ctime"` Reason string `json:"reason"` ResType int `json:"res_type"` IsAppeal int `json:"is_appeal"`