1
This commit is contained in:
@@ -2,6 +2,7 @@ package ebaiapi
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -133,42 +134,6 @@ func (a *API) OrderCancelDelivery(orderID string) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
//饿了么自配送订单接入骑手状态
|
||||
func (a *API) OrderselfDeliveryStateSync(orderID, phone string) (err error) {
|
||||
_, err = a.AccessAPI("order.selfDeliveryStateSync", map[string]interface{}{
|
||||
"order_id": orderID,
|
||||
"phone": phone,
|
||||
"distributor_id": 201,
|
||||
"state": 21,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
// OrderselfDeliveryStateSync2 饿了么自配送订单接入骑手状态
|
||||
func (a *API) OrderselfDeliveryStateSync2(info *PushRiderInfo) (err error) {
|
||||
_, err = a.AccessAPI("order.selfDeliveryStateSync", utils.Struct2MapByJson(info))
|
||||
return err
|
||||
}
|
||||
|
||||
// 饿了么自配送订单回传订单已送出状态
|
||||
// 此接口目前只支持饿了么侧订单调用
|
||||
func (a *API) OrderSendOut(orderID, phone string) (err error) {
|
||||
_, err = a.AccessAPI("order.sendout", map[string]interface{}{
|
||||
"order_id": orderID,
|
||||
"phone": phone,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
// 饿了么自配送订单回传订单送达状态,调用成功后订单状态变为已完成。需先调用订单送出接口,且接单5分钟后可调用
|
||||
func (a *API) OrderComplete(orderID, phone string) (err error) {
|
||||
_, err = a.AccessAPI("order.complete", map[string]interface{}{
|
||||
"order_id": orderID,
|
||||
// "phone": phone,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
// 提供给合作方在配送异常或物流拒单后选择自行配送
|
||||
func (a *API) OrderSwitchselfdelivery(orderID string) (err error) {
|
||||
_, err = a.AccessAPI("order.switchselfdelivery", map[string]interface{}{
|
||||
@@ -307,17 +272,6 @@ func (a *API) OrderListAll(shopID string, baiduShopID int64, startTime, endTime
|
||||
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{}{
|
||||
"order_id": orderID,
|
||||
})
|
||||
if err == nil {
|
||||
return result.Data.(map[string]interface{}), nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (a *API) SmartOrderIdConvert(orderID string) (convertedOrderID string, err error) {
|
||||
return a.OrderIdConvert(orderID, isOrderIDEleme(orderID))
|
||||
}
|
||||
@@ -406,6 +360,17 @@ func (a *API) EbaiRefundOrder(param *RefundOrderExamine) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// 查看部分退款订单详情(平台已经不再维护这个接口改用下面接口)
|
||||
func (a *API) OrderPartRefundGet(orderID string) (orderMap map[string]interface{}, err error) {
|
||||
result, err := a.AccessAPI("order.reverse.query", map[string]interface{}{
|
||||
"order_id": orderID,
|
||||
})
|
||||
if err == nil {
|
||||
return result.Data.(map[string]interface{}), nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// GetReverseOrder 根据订单号获取详细订单详情
|
||||
func (a *API) GetReverseOrder(orderId string) ([]interface{}, bool, error) {
|
||||
refundOrder, err := a.AccessAPI("order.reverse.query", map[string]interface{}{
|
||||
@@ -449,5 +414,26 @@ func (a *API) OrderCancel(orderID, cancelType, cancelReason string) (err error)
|
||||
// OrderReverseApply 商户发起全退和部分退款(整合OrderPartRefund/OrderCancel)
|
||||
func (a *API) OrderReverseApply(param *OrderReverseApplyParam) error {
|
||||
_, err := a.AccessAPI("order.reverse.apply", utils.Struct2MapByJson(param))
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("OrderReverseApply err : %s --- %v", utils.Format4Output(param, false), err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// OrderselfDeliveryStateSync2 饿了么自配送订单接入骑手状态
|
||||
func (a *API) OrderselfDeliveryStateSync2(info *PushRiderInfo) (err error) {
|
||||
_, err = a.AccessAPI("order.selfDeliveryStateSync", utils.Struct2MapByJson(info))
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("OrderReverseApply err : %s --- %v", utils.Format4Output(info, false), err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// SelfDeliveryLocationSync 自配送定时更新骑手坐标信息
|
||||
func (a *API) SelfDeliveryLocationSync(param *OrderSelfDeliveryLocationSync) (err error) {
|
||||
_, err = a.AccessAPI("order.selfDeliveryLocationSync", utils.Struct2MapByJson(param))
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("OrderReverseApply err : %s --- %v", utils.Format4Output(param, false), err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -7,6 +7,23 @@ const (
|
||||
MerchantOrderReverseApplyPartCancel = "2" // 商户发起部分退款
|
||||
)
|
||||
|
||||
const (
|
||||
OrderCommodityType = 4 // 商品子单类型 1:称重品、2:标品、3:按件称重、4:虚拟商品子单
|
||||
OrderVirtualType = 0 // 商品类型为虚拟商品是有效;0:普通实物商品 1:包装费子单 2:处方服务费子单、3:附加0.01费子单、4:配送费子单
|
||||
)
|
||||
|
||||
const (
|
||||
OrderDeliveryStatusCreate = 1 // 生成运单
|
||||
OrderDeliveryStatusWaitRider = 2 // 配送待分配
|
||||
OrderDeliveryStatusReceived = 3 // 骑士接单
|
||||
OrderDeliveryStatusToStore = 8 // 骑手到店
|
||||
OrderDeliveryStatusSend = 20 // 骑手送出
|
||||
OrderDeliveryStatusSendOver = 30 // 配送完成
|
||||
OrderDeliveryStatusCancel = 6 // 配送取消
|
||||
OrderDeliveryStatusAbnormal = 7 // 配送异常
|
||||
OrderDeliveryStatusRefusal = 110 // 配送拒单
|
||||
)
|
||||
|
||||
type ExpressInfo struct {
|
||||
OrderID string `json:"order_id"`
|
||||
ExpressID string `json:"express_id"`
|
||||
@@ -228,9 +245,9 @@ type ListOrderInfo struct {
|
||||
type PushRiderInfo struct {
|
||||
DistributorId int `json:"distributor_id"` // 固定值:201
|
||||
Knight Knight `json:"knight"`
|
||||
OrderId string // 订单id
|
||||
State int // 配送状态,传固定值:21 开始配送(已废弃,已接入商家不影响)
|
||||
SelfStatus int `json:"selfStatus"` // 配送状态
|
||||
OrderId string `json:"order_id"` // 订单id
|
||||
State int `json:"state"` // 配送状态,传固定值:21 开始配送(已废弃,已接入商家不影响)
|
||||
SelfStatus int `json:"selfStatus"` // 配送状态 1:生成运单 2:配送待分配3:骑士接单(必传)8:骑士到店(必传)20:骑手送出(必传)30:配送完成(必传)6:配送取消(必传)7:配送异常(必传)101:配送拒单
|
||||
SelfStatusDesc string `json:"selfStatusDesc"` // 配送状态文案描述
|
||||
SelfSubStatus int `json:"selfSubStatus"` // 配送取消(6)子原因:
|
||||
SelfSubStatusDesc string `json:"selfSubStatusDesc"` // 配送异常子状态文案描述
|
||||
@@ -285,3 +302,17 @@ type RefundProductListParam struct {
|
||||
RefundAmount string `json:"refund_amount"` // 申请退款金额(单位 分,整型)
|
||||
FundCalculateType string `json:"fund_calculate_type"` // 非必填,部分退类型:0按件数退,1按照金额退, 默认为按件数退(0); 按件退 number字段必传, 按金额退 refund_amount字段必传
|
||||
}
|
||||
|
||||
// OrderSelfDeliveryLocationSync 自配送订单骑手位置回传
|
||||
type OrderSelfDeliveryLocationSync struct {
|
||||
OrderId string `json:"order_id"` // 订单号
|
||||
Location *RiderLocation `json:"location"`
|
||||
}
|
||||
|
||||
// RiderLocation 骑手坐标
|
||||
type RiderLocation struct {
|
||||
UTC string `json:"utc"` // 当前时间,格式:10位时间戳
|
||||
Altitude string `json:"altitude"` // 海拔高度,如无,可传入固定值
|
||||
Latitude string `json:"latitude"` // 纬度,建议使用高德坐标 39.90038
|
||||
Longitude string `json:"longitude"` // 经度,建议使用高德坐标 116.389149
|
||||
}
|
||||
|
||||
@@ -114,11 +114,30 @@ func TestOrderListAll(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestOrderPartRefundGet(t *testing.T) {
|
||||
result, err := api.OrderPartRefundGet("4033790060039747082")
|
||||
result, err := api.OrderPartRefundGet("4083800066973664800")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
} else {
|
||||
t.Log(utils.Format4Output(result, false))
|
||||
fmt.Println(utils.Interface2String(result["order_id"]))
|
||||
fmt.Println(utils.MustInterface2Int64(result["remain_user_total_amount"]))
|
||||
fmt.Println(utils.MustInterface2Int64(result["merchant_income"]))
|
||||
if result["reverse_order_list"] != nil {
|
||||
refundDetail := result["reverse_order_list"].([]interface{})
|
||||
refundSkuList := refundDetail[len(refundDetail)-1].(map[string]interface{})["sub_reverse_order_list"].([]interface{})
|
||||
for _, refundInfo := range refundSkuList {
|
||||
xMap := refundInfo.(map[string]interface{})
|
||||
if utils.Interface2String(xMap["sku_name"]) != "包装费" { // 暂时跳出包装费
|
||||
globals.SugarLogger.Debugf("========map := %s", utils.Format4Output(xMap, false))
|
||||
fmt.Println(utils.Int64ToStr(utils.MustInterface2Int64(xMap["platform_sku_id"])))
|
||||
fmt.Println(int(utils.Str2Int64WithDefault(utils.Interface2String(xMap["custom_sku_id"]), 0)))
|
||||
fmt.Println(utils.Interface2String(xMap["sku_name"]))
|
||||
fmt.Println(utils.MustInterface2Int64(xMap["refund_user_amount"]))
|
||||
|
||||
aa := utils.Interface2Int64WithDefault(xMap["discount_detail"].(map[string]interface{})["platform_discount_amount"], 0) + utils.Interface2Int64WithDefault(xMap["discount_detail"].(map[string]interface{})["agent_discount_amount"], 0) + utils.Interface2Int64WithDefault(xMap["discount_detail"].(map[string]interface{})["user_discount_amount"], 0)
|
||||
fmt.Println(aa)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,13 +178,6 @@ func TestOrderSwitchselfdelivery(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestOrderComplete(t *testing.T) {
|
||||
err := api.OrderComplete("4016410136237474551", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOrderPrivateInfo(t *testing.T) {
|
||||
_, err := api.OrderPrivateInfo("1542178206811884")
|
||||
if err != nil {
|
||||
@@ -216,13 +228,6 @@ func TestOrderQueryAcceptancecode(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPI_OrderselfDeliveryStateSync(t *testing.T) {
|
||||
err := api.OrderselfDeliveryStateSync("4457139638483820157", "199999999999")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestForAA(t *testing.T) {
|
||||
|
||||
var a = []int64{6044969,
|
||||
|
||||
Reference in New Issue
Block a user