From c4f39e6c9442f5aa0149276242975f9560e9ec0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 20 Aug 2024 17:38:22 +0800 Subject: [PATCH] 1 --- platformapi/mtwmapi/comment_test.go | 4 +- platformapi/mtwmapi/mtwmapi_test.go | 2 +- platformapi/mtwmapi/order.go | 160 ++++++++++++------ platformapi/mtwmapi/order_test.go | 6 +- .../tiktok_shop/tiktok_api/afs_test.go | 2 +- .../tiktok_shop/tiktok_api/store_test.go | 2 +- 6 files changed, 121 insertions(+), 55 deletions(-) diff --git a/platformapi/mtwmapi/comment_test.go b/platformapi/mtwmapi/comment_test.go index 71cdac02..1151e2fd 100644 --- a/platformapi/mtwmapi/comment_test.go +++ b/platformapi/mtwmapi/comment_test.go @@ -11,7 +11,7 @@ import ( ) func TestCommentQuery(t *testing.T) { - result, err := api.CommentQuery("7821254", "20240730", "20240731", 0, 0, CommentReplyStatusAll) + result, err := api.CommentQuery("23932637", "20240813", "20240819", 0, 0, CommentReplyStatusNotReplied) if err != nil { t.Fatal(err) } @@ -38,7 +38,7 @@ func TestCommentQuery(t *testing.T) { } func TestCommentAddReply(t *testing.T) { - err := api.CommentAddReply("24617232", 2947288966, "非常抱歉让您没有得到十分满意的购物体验,我们会及时与您联系进行确认并解决问题!") + err := api.CommentAddReply("23932637", 2947288966, "非常抱歉让您没有得到十分满意的购物体验,我们会及时与您联系进行确认并解决问题!") if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/mtwmapi_test.go b/platformapi/mtwmapi/mtwmapi_test.go index f5ff41d2..a8d7b3b2 100644 --- a/platformapi/mtwmapi/mtwmapi_test.go +++ b/platformapi/mtwmapi/mtwmapi_test.go @@ -26,7 +26,7 @@ func init() { //api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "") //商超 - api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_rxzM5HT4X9IbdrOI5wBI1w") //token_n4TwqCntWWuvQwAawzxC0w + api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_q3-GrKUcZmNq-l4JzH5EjQ") //token_n4TwqCntWWuvQwAawzxC0w //cookieStr := ` // acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1; //` diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index a05200e9..77a98600 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -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 +//} diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index d25910f1..78e1e18c 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -263,6 +263,8 @@ func TestOrderStatusAndPsInfo(t *testing.T) { }) } -func Test22(t *testing.T) { - fmt.Println((57 & 8) != 0) +func TestEcommerceGetOrderIdByPage(t *testing.T) { + orderIdList, err := api.EcommerceGetOrderIdByPage("23932637", time.Now().Add(-24*time.Hour), time.Now()) + t.Log(orderIdList) + t.Log(err) } diff --git a/platformapi/tiktok_shop/tiktok_api/afs_test.go b/platformapi/tiktok_shop/tiktok_api/afs_test.go index e815e2fd..d81a8136 100644 --- a/platformapi/tiktok_shop/tiktok_api/afs_test.go +++ b/platformapi/tiktok_shop/tiktok_api/afs_test.go @@ -8,7 +8,7 @@ import ( ) // 京西速食(蔬菜) -var token1 = `{"access_token":"83b9af04-3419-46ae-90fd-fe496330bb69","expires_in":1718153350,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市","refresh_token":"804d69e4-4b0a-4bc5-a409-ca35455f67f7","authority_id":""}` +var token1 = `{"access_token":"5a646b72-9eb2-4fc9-a037-541d6dab98c7","expires_in":1723880345,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市","refresh_token":"493e94e2-7cae-4f47-95b8-f6cb6dec4d7c","authority_id":""}` // 美好菜市 //var token1 = `{"access_token":"9a315a03-c737-4a82-ae52-c9a6ce827007","expires_in":1699490747,"scope":"SCOPE","shop_id":68032645,"shop_name":"美好菜市","refresh_token":"8334c006-5301-4d25-911b-4d8cc7b70ebb","authority_id":""}` diff --git a/platformapi/tiktok_shop/tiktok_api/store_test.go b/platformapi/tiktok_shop/tiktok_api/store_test.go index 51df699f..d8dedb9c 100644 --- a/platformapi/tiktok_shop/tiktok_api/store_test.go +++ b/platformapi/tiktok_shop/tiktok_api/store_test.go @@ -95,7 +95,7 @@ func TestGetStoreList2(t *testing.T) { //获取门店详细信息 func TestGetStoreDetail(t *testing.T) { data, err := a.GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{ - StoreId: "62490423", + StoreId: "64250739", }) fmt.Println(utils.Format4Output(data, false)) fmt.Println(err)