@@ -664,54 +664,6 @@ func (a *API) GetOrderActDetail(queryData []*GetOrderActDetailParam) (orderActLi
return orderActList , err
}
func ( a * API ) GetOrderDaySeq ( poiCode string ) ( daySeq int , err error ) {
params := map [ string ] interface { } {
KeyAppPoiCode : poiCode ,
}
result , err := a . AccessAPI ( "order/getOrderDaySeq" , true , params )
if err == nil {
daySeq = int ( utils . MustInterface2Int64 ( result . ( map [ string ] interface { } ) [ "day_seq" ] ) )
}
return daySeq , err
}
func ( a * API ) GetOrderIdByDaySeqSingle ( poiCode string , dateTime time . Time , daySeq int ) ( vendorOrderID int64 , err error ) {
params := map [ string ] interface { } {
KeyAppPoiCode : poiCode ,
"date_time" : dateTime . Format ( "20060102" ) ,
"day_seq" : daySeq ,
}
result , err := a . AccessAPI ( "order/getOrderIdByDaySeq" , true , params )
if err == nil {
vendorOrderID = utils . ForceInterface2Int64 ( result . ( map [ string ] interface { } ) [ "order_id" ] )
}
return vendorOrderID , err
}
// 订单流水号的开始序号, 门店内每日的订单流水号都是从1开始。
// 订单流水号的结束序号, 注意开始流水号与结束流水号的跨度需小于100, 即差值最大为99
// 这个函数在给定的区间范围全部没有订单时, 返回错误808,
// 但如果有部分订单, 底层返回的错误是0( 然后被忽略) , vendorOrderIDs只包含有效的订单号( 数量少于seqEnd-seqStart+1)
// 此API速度与查询的区间范围直接相关, 越大越慢( 即使订单不存在) , 最大可到4, 5秒级别
func ( a * API ) GetOrderIdByDaySeq ( poiCode string , dateTime time . Time , seqStart , seqEnd int ) ( vendorOrderIDs [ ] int64 , err error ) {
params := map [ string ] interface { } {
KeyAppPoiCode : poiCode ,
"date_time" : dateTime . Format ( "20060102" ) ,
"day_seq_start" : seqStart ,
"day_seq_end" : seqEnd ,
}
result , err := a . AccessAPI ( "ecommerce/order/getOrderIdByDaySeq" , true , params )
// 当前底层已经处理了错误0的情况了, 不会返回错误0了
if extErr , ok := err . ( * utils . ErrorWithCode ) ; err == nil || ( ok && extErr . IntCode ( ) == 0 ) {
var data GetOrderIdByDaySeqResult
if err2 := utils . UnmarshalUseNumber ( [ ] byte ( utils . Interface2String ( result ) ) , & data ) ; err2 == nil {
vendorOrderIDs = data . OrderIDs
err = nil
}
}
return vendorOrderIDs , err
}
// 众包配送单追加小费
// https://developer.waimai.meituan.com/home/docDetail/158
func ( a * API ) OrderUpdateTip ( orderID int64 , tipAmount float64 ) ( err error ) {
@@ -788,3 +740,115 @@ func (a *API) PushPrintMsg(orderId string) error {
} )
return err
}
// EcommerceGetOrderIdByPage 批量获取门店订单号,下面三个被废弃(order/getOrderIdByDaySeq,ecommerce/order/getOrderIdByDaySeq,order/getOrderDaySeq)
func ( a * API ) EcommerceGetOrderIdByPage ( poiCode string , startTime , endTime time . Time ) ( [ ] int64 , error ) {
var (
vernier = ""
orderIdList = make ( [ ] int64 , 0 , 0 )
)
params := map [ string ] interface { } {
KeyAppPoiCode : poiCode ,
"start_time" : startTime . Unix ( ) ,
"end_time" : endTime . Unix ( ) ,
"status_list" : "1,2,4,8,9" ,
"page_size" : 100 ,
}
for {
if vernier != "" {
params [ "vernier" ] = vernier
}
result , err := a . AccessAPI2 ( "ecommerce/order/getOrderIdByPage" , false , params , "" , "" )
if err != nil {
return nil , err
}
resultDate , err := json . Marshal ( result )
if err != nil {
return nil , err
}
orderList := & EcommerceOrder { }
if err := json . Unmarshal ( resultDate , orderList ) ; err != nil {
return nil , err
}
for _ , v := range orderList . SuccessList {
orderIdList = append ( orderIdList , v . OrderId )
}
if len ( orderList . SuccessList ) == 100 {
vernier = orderList . SuccessMap . Vernier
} else {
return orderIdList , nil
}
}
}
type EcommerceOrder struct {
ResultCode int ` json:"result_code" `
SuccessMap struct {
Vernier string ` json:"vernier" `
HasMore int ` json:"has_more" `
} ` json:"success_map" `
SuccessList [ ] struct {
OrderId int64 ` json:"order_id" `
Status int ` json:"status" `
} ` json:"success_list" `
ErrorList [ ] struct {
Msg string ` json:"msg" `
Code int ` json:"code" `
} ` json:"error_list" `
}
//
//// 下面的接口废弃了
//// GetOrderIdByDaySeqSingle 根据流水号获取订单ID
//func (a *API) GetOrderIdByDaySeqSingle(poiCode string, dateTime time.Time, daySeq int) (vendorOrderID int64, err error) {
// //params := map[string]interface{}{
// // KeyAppPoiCode: poiCode,
// // "date_time": dateTime.Format("20060102"),
// // "day_seq": daySeq,
// //}
// //result, err := a.AccessAPI("order/getOrderIdByDaySeq", true, params)
// //if err == nil {
// // vendorOrderID = utils.ForceInterface2Int64(result.(map[string]interface{})["order_id"])
// //}
// return vendorOrderID, err
//}
//
//// 订单流水号的开始序号, 门店内每日的订单流水号都是从1开始。(根据流水号获取订单ID废弃)
//// 订单流水号的结束序号, 注意开始流水号与结束流水号的跨度需小于100, 即差值最大为99
//// 这个函数在给定的区间范围全部没有订单时, 返回错误808,
//// 但如果有部分订单, 底层返回的错误是0( 然后被忽略) , vendorOrderIDs只包含有效的订单号( 数量少于seqEnd-seqStart+1)
//// 此API速度与查询的区间范围直接相关, 越大越慢( 即使订单不存在) , 最大可到4, 5秒级别
//func (a *API) GetOrderIdByDaySeq(poiCode string, dateTime time.Time, seqStart, seqEnd int) (vendorOrderIDs []int64, err error) {
// //params := map[string]interface{}{
// // KeyAppPoiCode: poiCode,
// // "date_time": dateTime.Format("20060102"),
// // "day_seq_start": seqStart,
// // "day_seq_end": seqEnd,
// //}
// //result, err := a.AccessAPI("ecommerce/order/getOrderIdByDaySeq", true, params)
// //// 当前底层已经处理了错误0的情况了, 不会返回错误0了
// //if extErr, ok := err.(*utils.ErrorWithCode); err == nil || (ok && extErr.IntCode() == 0) {
// // var data GetOrderIdByDaySeqResult
// // if err2 := utils.UnmarshalUseNumber([]byte(utils.Interface2String(result)), &data); err2 == nil {
// // vendorOrderIDs = data.OrderIDs
// // err = nil
// // }
// //}
// return vendorOrderIDs, err
//}
//
//// GetOrderDaySeq 获取当日最新订单流水号
//func (a *API) GetOrderDaySeq(poiCode string) (daySeq int, err error) {
// //params := map[string]interface{}{
// // KeyAppPoiCode: poiCode,
// //}
// //result, err := a.AccessAPI("order/getOrderDaySeq", true, params)
// //if err == nil {
// // daySeq = int(utils.MustInterface2Int64(result.(map[string]interface{})["day_seq"]))
// //}
// return daySeq, err
//}