99 lines
2.7 KiB
Go
99 lines
2.7 KiB
Go
package uuptapi
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
)
|
|
|
|
//计算订单价格
|
|
func (a *API) GetOrderPrice(req map[string]interface{}) (*GetOrderPriceResp, error) {
|
|
preParam := a.MakeUURequestHead()
|
|
resp, err := a.AccessAPI(BaseURL, "getorderprice.ashx", RequestPost, utils.MergeMaps(preParam, req))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if resp["return_code"] != ReturnSuccess {
|
|
return nil, fmt.Errorf("UU跑腿获取运单价格失败:%s", resp["return_msg"])
|
|
}
|
|
retVal := GetOrderPriceResp{}
|
|
if temp, err := json.Marshal(resp); err == nil {
|
|
err = json.Unmarshal(temp, &retVal)
|
|
}
|
|
con := retVal != GetOrderPriceResp{}
|
|
if con {
|
|
return &retVal, nil
|
|
} else {
|
|
return nil, fmt.Errorf("UU跑腿未返回运单价格")
|
|
}
|
|
}
|
|
|
|
//发布订单
|
|
func (a *API) AddOrder(req map[string]interface{}) (orderCode, originID string, err error) {
|
|
preParam := a.MakeUURequestHead()
|
|
resp, err := a.AccessAPI(BaseURL, "addorder.ashx", RequestPost, utils.MergeMaps(preParam, req))
|
|
if err != nil {
|
|
return "", "", err
|
|
}
|
|
if resp["return_code"] != ReturnSuccess {
|
|
return "", "", fmt.Errorf("UU跑腿发布运单失败:%s", resp["return_msg"])
|
|
}
|
|
retVal := AddOrderResp{}
|
|
if temp, err := json.Marshal(resp); err == nil {
|
|
err = json.Unmarshal(temp, &retVal)
|
|
}
|
|
con := retVal != AddOrderResp{}
|
|
if con {
|
|
return retVal.OrderCode, retVal.OriginID, nil
|
|
} else {
|
|
return "", "", fmt.Errorf("UU跑腿未返回运单ID")
|
|
}
|
|
}
|
|
|
|
//查询订单信息
|
|
func (a *API) GetOrderDetail(orderCode string) (*GetOrderDetailResp, error) {
|
|
preParam := a.MakeUURequestHead()
|
|
preParam["order_code"] = orderCode
|
|
resp, err := a.AccessAPI(BaseURL, "getorderdetail.ashx", RequestPost, preParam)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if resp["return_code"] != ReturnSuccess {
|
|
return nil, fmt.Errorf("UU跑腿获取运单详情失败:%s", resp["return_msg"])
|
|
}
|
|
retVal := GetOrderDetailResp{}
|
|
if temp, err := json.Marshal(resp); err == nil {
|
|
err = json.Unmarshal(temp, &retVal)
|
|
}
|
|
con := retVal != GetOrderDetailResp{}
|
|
if con {
|
|
return &retVal, nil
|
|
} else {
|
|
return nil, fmt.Errorf("UU跑腿未返回运单详情")
|
|
}
|
|
}
|
|
|
|
//取消订单
|
|
func (a *API) CancelOrder(orderCode, reason string) error {
|
|
preParam := a.MakeUURequestHead()
|
|
preParam["order_code"] = orderCode
|
|
preParam["reason"] = reason
|
|
resp, err := a.AccessAPI(BaseURL, "cancelorder.ashx", RequestPost, preParam)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp["return_code"] != ReturnSuccess {
|
|
return fmt.Errorf("UU跑腿取消运单失败:%s", resp["return_msg"])
|
|
}
|
|
retVal := CancelOrderResp{}
|
|
if temp, err := json.Marshal(resp); err == nil {
|
|
err = json.Unmarshal(temp, &retVal)
|
|
}
|
|
con := retVal != CancelOrderResp{}
|
|
if con {
|
|
return nil
|
|
} else {
|
|
return fmt.Errorf("UU跑腿未返回取消运单详情")
|
|
}
|
|
}
|