From eba2996880df133d675604405b2251ae0555556f Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 1 Feb 2019 20:19:58 +0800 Subject: [PATCH] - ebaiapi.OrderIdConvert - elmapi.GetAllOrders --- platformapi/ebaiapi/order.go | 24 ++++++++++++++++++++++++ platformapi/ebaiapi/order_test.go | 8 ++++++++ platformapi/elmapi/elmapi_test.go | 14 +------------- platformapi/elmapi/order.go | 24 ++++++++++++++++++++++++ platformapi/elmapi/order_test.go | 24 ++++++++++++++++++++++++ platformapi/elmapi/store_test.go | 4 +++- 6 files changed, 84 insertions(+), 14 deletions(-) create mode 100644 platformapi/elmapi/order_test.go diff --git a/platformapi/ebaiapi/order.go b/platformapi/ebaiapi/order.go index 6ad8949b..e5e8b73d 100644 --- a/platformapi/ebaiapi/order.go +++ b/platformapi/ebaiapi/order.go @@ -171,3 +171,27 @@ func (a *API) OrderDeliveryGet(orderID string) (deliveryInfo map[string]interfac } return nil, err } + +func (a *API) OrderIdConvert(orderID string, isElemeOrder bool) (convertedOrderID string, err error) { + key := "order_id" + resultKey := "eleme_order_id" + if isElemeOrder { + key = "eleme_order_id" + resultKey = "order_id" + } + result, err := a.AccessAPI("order.id.convert", map[string]interface{}{ + key: orderID, + }) + if err == nil { + return utils.Interface2String(result.Data.(map[string]interface{})[resultKey]), nil + } + return "", err +} + +func (a *API) SmartOrderIdConvert(orderID string) (convertedOrderID string, err error) { + return a.OrderIdConvert(orderID, isOrderIDEleme(orderID)) +} + +func isOrderIDEleme(orderID string) bool { + return len(orderID) == len("3026328756122155111") +} diff --git a/platformapi/ebaiapi/order_test.go b/platformapi/ebaiapi/order_test.go index 51e095d2..76a10e1d 100644 --- a/platformapi/ebaiapi/order_test.go +++ b/platformapi/ebaiapi/order_test.go @@ -44,3 +44,11 @@ func TestOrderDeliveryGet(t *testing.T) { } t.Log(result) } + +func TestSmartOrderIdConvert(t *testing.T) { + result, err := api.SmartOrderIdConvert("3035779376398878822") + if err != nil { + t.Fatal(err) + } + t.Log(result) +} diff --git a/platformapi/elmapi/elmapi_test.go b/platformapi/elmapi/elmapi_test.go index 0165e015..2304a87f 100644 --- a/platformapi/elmapi/elmapi_test.go +++ b/platformapi/elmapi/elmapi_test.go @@ -23,7 +23,7 @@ func init() { // sandbox elmapi = New("623c0904c0d2499e83df15b62902eb65", "RwT214gAsS", "56afff4b9ebd8a7eb532d18fa33f17be57f9b9db", false) // prod - // elmapi = New("fee89f45d06f93037dd314ceb78fde7b", "KLRDcOZGrk", "1fc221f8265506531da36fb613d5f5ad673f2e9a", true) + // elmapi = New("cf5710018b46e75145eb0f19900bcecd", "KLRDcOZGrk", "1fc221f8265506531da36fb613d5f5ad673f2e9a", true) } func TestTest(t *testing.T) { @@ -43,18 +43,6 @@ func TestAccessAPI(t *testing.T) { } } -func TestGetOrder(t *testing.T) { - result, err := elmapi.GetOrder("3023582487561731159") - if err != nil { - t.Fatalf("Error when accessing AccessJDQuery result:%v, error:%v", result, err) - } else { - shopId := int(utils.MustInterface2Int64(result["shopId"])) - if shopId != 157451615 { - t.Fatalf("userId is not correct:%v", shopId) - } - } -} - func TestCallbackSign(t *testing.T) { jsonStr := `{"requestId":"200016348669063447","type":18,"appId":78247922,"message":"{\"orderId\":\"3024923917769149510\",\"state\":\"settled\",\"shopId\":157492364,\"updateTime\":1529465510,\"role\":1}","shopId":157492364,"timestamp":1529465510255,"signature":"D65F917D93B4F599B85486C799599141","userId":336072266322770688}` msg, response := elmapi.GetCallbackMsg([]byte(jsonStr)) diff --git a/platformapi/elmapi/order.go b/platformapi/elmapi/order.go index ccbcdef9..a911a2a8 100644 --- a/platformapi/elmapi/order.go +++ b/platformapi/elmapi/order.go @@ -1,5 +1,11 @@ package elmapi +import ( + "time" + + "git.rosy.net.cn/baseapi/utils" +) + const ( OrderStatusPending = "pending" OrderStatusUnprocessed = "unprocessed" @@ -43,6 +49,10 @@ const ( RoleOrderFinished = 9 ) +const ( + MaxGetAllOrdersPageSize = 50 +) + func (a *API) GetOrder(orderID string) (map[string]interface{}, error) { result, err := a.AccessAPI("eleme.order.getOrder", map[string]interface{}{ "orderId": orderID, @@ -95,3 +105,17 @@ func (a *API) CompleteDeliveryBySelf(orderID, courierPhone string) error { }) return err } + +func (a *API) GetAllOrders(shopId string, pageNo, pageSize int, date time.Time) (orderList []map[string]interface{}, err error) { + result, err := a.AccessAPI("eleme.order.getAllOrders", map[string]interface{}{ + "shopId": shopId, + "pageNo": pageNo, + "pageSize": pageSize, + "date": date.Format("2006-01-02"), + }) + if err == nil { + innerResult := result.Result.(map[string]interface{}) + return utils.Slice2MapSlice(innerResult["list"].([]interface{})), nil + } + return nil, err +} diff --git a/platformapi/elmapi/order_test.go b/platformapi/elmapi/order_test.go new file mode 100644 index 00000000..b032a838 --- /dev/null +++ b/platformapi/elmapi/order_test.go @@ -0,0 +1,24 @@ +package elmapi + +import ( + "testing" + + "git.rosy.net.cn/baseapi/utils" +) + +func TestGetOrder(t *testing.T) { + result, err := elmapi.GetOrder("2100664403101818890") + if err != nil { + t.Fatalf("Error when accessing AccessJDQuery result:%v, error:%v", result, err) + } else { + sugarLogger.Debug(utils.Format4Output(result, false)) + // shopId := int(utils.MustInterface2Int64(result["shopId"])) + // if shopId != 157451615 { + // t.Fatalf("userId is not correct:%v", shopId) + // } + } +} + +func TestGetAllOrders(t *testing.T) { + +} diff --git a/platformapi/elmapi/store_test.go b/platformapi/elmapi/store_test.go index ed1ce56e..bb4a9599 100644 --- a/platformapi/elmapi/store_test.go +++ b/platformapi/elmapi/store_test.go @@ -2,6 +2,8 @@ package elmapi import ( "testing" + + "git.rosy.net.cn/baseapi/utils" ) func TestGetUser(t *testing.T) { @@ -17,7 +19,7 @@ func TestGetAccAndStores(t *testing.T) { if err != nil || len(stores) == 0 || len(accs) == 0 { t.Fatalf("GetAccAndStores failed with error:%v", err) } - sugarLogger.Debug(stores[0]) + sugarLogger.Debug(utils.Format4Output(stores, false)) } func TestGetShop(t *testing.T) {