- ebai OrderList

This commit is contained in:
gazebo
2019-05-28 18:17:33 +08:00
parent a571acef56
commit 7537fd2696
2 changed files with 73 additions and 0 deletions

View File

@@ -79,6 +79,10 @@ const (
UserApplyCancelWaitMinute = 15 // 用户申请取消订单后待处理的最大等待时间(分钟),超时自动同意
)
const (
ListOrderPageSize = 100 // order.list的每页条数
)
type ExpressInfo struct {
OrderID string `json:"order_id"`
ExpressID string `json:"express_id"`
@@ -153,6 +157,26 @@ type PartRefundInfo struct {
UserFee int `json:"user_fee"`
}
type ListOrderItemInfo struct {
BaiduShopID int64 `json:"baidu_shop_id"`
CreateTime int64 `json:"create_time"`
OrderFrom int `json:"order_from"`
OrderID string `json:"order_id"`
OrderStatus int `json:"order_status"`
PayStatus int `json:"pay_status"`
PayType int `json:"pay_type"`
ShopID string `json:"shop_id"`
Status int `json:"status"`
UserPhone string `json:"user_phone"`
}
type ListOrderInfo struct {
Total int `json:"total"`
Page int `json:"Page"`
Pages int `json:"pages"`
List []*ListOrderItemInfo `json:"list"`
}
// 提供给合作方确认订单所用。 注1、10分钟内未确认的订单系统自动取消。2、确认失败的订单请不要做餐。 2016年7月4号起将由百度外卖负责完成订单。届时对接方无需调用完成订单接口继续调用可能导致订单结算有问题。
func (a *API) OrderConfirm(orderID string) (err error) {
_, err = a.AccessAPI("order.confirm", map[string]interface{}{
@@ -282,6 +306,46 @@ func (a *API) OrderIdConvert(orderID string, isElemeOrder bool) (convertedOrderI
return "", err
}
// 查看订单列表
// https://open-be.ele.me/dev/api/doc/v3/#api-Order_Up-order_list
// page从1开始
func (a *API) OrderList(shopID string, baiduShopID int64, startTime, endTime int64, status int, page int) (listOrderInfo *ListOrderInfo, err error) {
params := a.genShopIDParams(shopID, baiduShopID, 0)
if startTime > 0 {
params["start_time"] = startTime
}
if endTime > 0 {
params["end_time"] = endTime
}
if status > 0 {
params["status"] = status
}
if page > 0 {
params["page"] = page
}
result, err := a.AccessAPI("order.list", params)
if err == nil {
err = utils.Map2StructByJson(result.Data, &listOrderInfo, true)
}
return listOrderInfo, err
}
func (a *API) OrderListAll(shopID string, baiduShopID int64, startTime, endTime int64, status int) (listOrder []*ListOrderItemInfo, err error) {
page := 1
for {
result, err := a.OrderList(shopID, baiduShopID, startTime, endTime, status, page)
if err != nil {
return nil, err
}
listOrder = append(listOrder, result.List...)
if result.Page == result.Pages {
break
}
page++
}
return listOrder, nil
}
// 查看部分退款订单详情
func (a *API) OrderPartRefundGet(orderID string) (orderMap map[string]interface{}, err error) {
result, err := a.AccessAPI("order.partrefund.get", map[string]interface{}{

View File

@@ -15,6 +15,15 @@ func TestOrderGet(t *testing.T) {
}
}
func TestOrderList(t *testing.T) {
result, err := api.OrderList("", 0, 0, 0, 0, 0)
if err != nil {
t.Fatal(err)
} else {
t.Log(utils.Format4Output(result, false))
}
}
func TestOrderPartRefundGet(t *testing.T) {
result, err := api.OrderPartRefundGet("1557459492221457830")
if err != nil {