diff --git a/platformapi/dadaapi/shop_test.go b/platformapi/dadaapi/shop_test.go index 418da217..87acdab6 100644 --- a/platformapi/dadaapi/shop_test.go +++ b/platformapi/dadaapi/shop_test.go @@ -37,9 +37,8 @@ func TestShopAdd(t *testing.T) { func TestShopUpdate(t *testing.T) { shopInfo := &ShopInfo{ - OriginShopID: "18180948107", - StationName: "京西大本营234", - CityName: "包头市", + OriginShopID: "666872", + Status: 1, } err := dadaapi.ShopUpdate(shopInfo) if err != nil { diff --git a/platformapi/ebaiapi/store_page.go b/platformapi/ebaiapi/store_page.go index 88d488ae..74d8e2a1 100644 --- a/platformapi/ebaiapi/store_page.go +++ b/platformapi/ebaiapi/store_page.go @@ -760,7 +760,7 @@ func (a *API) getCommentList(isElm bool, fromTime, toTime time.Time, shopID, sup for { params["page_num"] = pageNo retVal, err2 := a.AccessStorePage(fixedURL, "", params, false) - if err = err2; err == nil { + if err = err2; err == nil && retVal != nil { for _, comment := range retVal["comment_list"].([]interface{}) { commentMap := comment.(map[string]interface{}) for _, orderComment := range commentMap["order_commentList"].([]interface{}) { @@ -782,7 +782,7 @@ func (a *API) getCommentList(isElm bool, fromTime, toTime time.Time, shopID, sup } func (a *API) GetEleCommentList(fromTime, toTime time.Time, shopID, supplierID string, replyStatus, level, nonEmpty int) (commentList []map[string]interface{}, err error) { - return a.getCommentList(true, fromTime, toTime, shopID, supplierID, replyStatus, level, nonEmpty) + return a.getCommentList(false, fromTime, toTime, shopID, supplierID, replyStatus, level, nonEmpty) } func (a *API) GetCommentList(fromTime, toTime time.Time, shopID, supplierID string, replyStatus, level, nonEmpty int) (commentList []map[string]interface{}, err error) { diff --git a/platformapi/jcqapi/jcqapi.go b/platformapi/jcqapi/jcqapi.go index 81448118..df60761c 100644 --- a/platformapi/jcqapi/jcqapi.go +++ b/platformapi/jcqapi/jcqapi.go @@ -36,12 +36,12 @@ const ( var ( TopicList = []string{ "open_message_order_order_pay", //订单付款 - // "open_message_pop_order_remk_chg", //POP订单备注变更 // "open_message_pop_order_out", //POP订单出库 // "open_message_pop_order_create", //POP订单创建 // "open_message_pop_order_change", //POP订单变更消息 // "open_message_order_order_finish", //订单完成 "open_message_order_order_cancel", //订单取消 + // "open_message_pop_order_remk_chg", //POP订单备注变更 } ) diff --git a/platformapi/jdapi/jdapi_test.go b/platformapi/jdapi/jdapi_test.go index 7722474e..e16601cb 100644 --- a/platformapi/jdapi/jdapi_test.go +++ b/platformapi/jdapi/jdapi_test.go @@ -28,7 +28,7 @@ func init() { // api = New("c45e6510-00ba-4be2-977e-bcb9c9792cc7", "5d5577a2506f41b8b4ec520ba83490f5", "0b01b9eeb15b41dab1c3d05d95c17a26") // const cookieValue = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHCT3RM3CQG7IJIPUQ3THS5UIUYWMKINM7ETUOQB7OBPOPZVCT3ZJY55243TDVXLO25PP4UYSPTTPMNQ7HPMWOJKJ3BJWGVHD243MXH7NZWW264TKN5UOCJBSSSOKD2QQII" - const cookieValue = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHD6O37OTAHUCKU6ALXATYTGMHNFLM4XRLVSFUQAJR77M4URSZRKVO55243TDVXLO25PP4UYSPTTPMNRUFXDNP4WPE566Q6V4AH32F7HT" + const cookieValue = "OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3J7VMEGG2RGQEK6VMGIWEIL3X66ZYUZZOKKUUBKAWCWZPLF745R6MSYFJJ6EXUPLU4UGKXFQWEBUCQAMIOV7EVR4JGDPUMIPCVZVKBP5XQU32N7XTB6LGOP5RZQCH7DRHM" api.SetJdCookie(cookieValue) api.SetCookie("user", "VCQUVHVJI4ELNGFZOYMCDYDUSHEJMPXZRZXSNBRB4MVBNENP72REAAZR3R4SGDJ5ZI4FLYLLN5EGBBMTFCWHZVESIWBNLKZPLHWD6UIBTPXOF5IXM6AVA3V6TUNZD5UJS43AROJ2IRPZWEN5AGZYBUEGD3MSKKBKBSRP3DSEQXLITYNBLFZCHXCA7L4KGOSJRMM7R5IQP7QGLGRQB27AOE4YMLRJ3UPTZADPWJOYB3UZ7UZHLBVZRREEX647O3WQUU4BYXUOFZPIPRR77W3PQV543E") } diff --git a/platformapi/jdapi/store_page.go b/platformapi/jdapi/store_page.go index 0118a8cf..192de73c 100644 --- a/platformapi/jdapi/store_page.go +++ b/platformapi/jdapi/store_page.go @@ -298,10 +298,12 @@ var ( regexpTable = regexp.MustCompile(`([\s\S]*?)
`) regexpTd = regexp.MustCompile(`([0-9].*)`) regexpJDUserPage = regexp.MustCompile(`共([\s\S].*)页/([\s\S].*)条记录`) + regexpJDStoreSkuPage = regexp.MustCompile(`共1/(.*)页`) regexpJDTbody = regexp.MustCompile(`([\s\S]*?)`) regexpJDTr = regexp.MustCompile(`([\s\S]*?)`) regexpJDTdInfo = regexp.MustCompile(`([\s\S]*?)`) regexpJDSkuID = regexp.MustCompile(`sku编码:(.*)`) + regexpJDSkuID2 = regexp.MustCompile(`

SKU编码:(.*)

`) regexpJDUserID = regexp.MustCompile(`value="(.*)"`) regexpJDUserIsManager = regexp.MustCompile(`
`) regexpJDStoreLevel = regexp.MustCompile(`门店分级 :(.*);`) @@ -1074,3 +1076,29 @@ func (a *API) GetJdShopOrders(orderStartTime, orderEndTime, orgCode, loginName s } return getJdShopOrdersResult, err } + +//获取京东的置顶门店商品 +//https://stock-store.jddj.com/storeproduct/query +func (a *API) GetJdTopSkus(vendorStoreID string, currentPage int) (vendorSkuIDs []string, totalCount int, err error) { + jdParams := map[string]interface{}{ + "fixedStatus": 1, + "stationNo": vendorStoreID, + "numStatus": 0, + "currentPage": currentPage, + "pageSize": 10, + } + body, err := a.AccessStorePage2("https://stock-store.jddj.com/storeproduct/query", jdParams, true, "") + if body != nil { + bodyStr := body.(map[string]interface{})["fakeData"].(string) + result := regexpJDStoreSkuPage.FindStringSubmatch(bodyStr) + totalCount = utils.Str2Int(result[1]) + resultTr := regexpJDTr.FindAllStringSubmatch(bodyStr, -1) + for _, v := range resultTr { + resultSkuID := regexpJDSkuID2.FindStringSubmatch(v[1]) + if strings.Contains(v[1], "取消置顶") { + vendorSkuIDs = append(vendorSkuIDs, resultSkuID[1]) + } + } + } + return vendorSkuIDs, totalCount, err +} diff --git a/platformapi/jdapi/store_page_test.go b/platformapi/jdapi/store_page_test.go index 62d085c3..f6f3a06b 100644 --- a/platformapi/jdapi/store_page_test.go +++ b/platformapi/jdapi/store_page_test.go @@ -272,3 +272,12 @@ func TestGetJdShopOrders(t *testing.T) { } t.Log(utils.Format4Output(result, false)) } + +func TestGetJdTopSkus(t *testing.T) { + result1, result2, err := api.GetJdTopSkus("11732425") + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result1, false)) + t.Log(utils.Format4Output(result2, false)) +} diff --git a/platformapi/jdshopapi/callback.go b/platformapi/jdshopapi/callback.go index 40279a09..21875810 100644 --- a/platformapi/jdshopapi/callback.go +++ b/platformapi/jdshopapi/callback.go @@ -9,25 +9,26 @@ import ( ) type CallBackResult struct { - OrderStateRemark string `json:"orderStateRemark"` - OrderRemark string `json:"orderRemark"` - OrderSellerPrice string `json:"orderSellerPrice"` - OrderState string `json:"orderState"` - OrderType string `json:"orderType"` - OrderPayment string `json:"orderPayment"` - PayType string `json:"payType"` - StoreID string `json:"storeId"` - OrderTotalPrice string `json:"orderTotalPrice"` - OrderExt string `json:"orderExt"` - StoreOrder string `json:"storeOrder"` - OrderStartTime string `json:"orderStartTime"` - OrderID string `json:"orderId"` - OrderSource string `json:"orderSource"` - FreightPrice string `json:"freightPrice"` - MsgType string `json:"msgType"` - Pin string `json:"pin"` - ConsigneeInfo *CallBackConsigneeInfo `json:"consigneeInfo"` - ItemInfoList []*CallBackItemInfoList `json:"itemInfoList"` + OrderStateRemark string `json:"orderStateRemark"` + OrderRemark string `json:"orderRemark"` + OrderSellerPrice string `json:"orderSellerPrice"` + OrderState string `json:"orderState"` + OrderType string `json:"orderType"` + OrderPayment string `json:"orderPayment"` + PayType string `json:"payType"` + StoreID string `json:"storeId"` + OrderTotalPrice string `json:"orderTotalPrice"` + OrderExt string `json:"orderExt"` + StoreOrder string `json:"storeOrder"` + OrderStartTime string `json:"orderStartTime"` + OrderID string `json:"orderId"` + OrderSource string `json:"orderSource"` + FreightPrice string `json:"freightPrice"` + MsgType string `json:"msgType"` + Pin string `json:"pin"` + IDSopShipmenttype string `json:"idSopShipmenttype"` + ConsigneeInfo *CallBackConsigneeInfo `json:"consigneeInfo"` + ItemInfoList []*CallBackItemInfoList `json:"itemInfoList"` } type CallBackConsigneeInfo struct { diff --git a/platformapi/jdshopapi/jdshopapi.go b/platformapi/jdshopapi/jdshopapi.go index fd729689..e5f86575 100644 --- a/platformapi/jdshopapi/jdshopapi.go +++ b/platformapi/jdshopapi/jdshopapi.go @@ -62,7 +62,7 @@ const ( JdsBeefCatID = 13582 JdsBeefLastCatID = 17902 - JdsPayPercentage float64 = 0.97 + JdsPayPercentage float64 = 0.94 ) var ( diff --git a/platformapi/jdshopapi/order.go b/platformapi/jdshopapi/order.go index 576bf368..fec13e2b 100644 --- a/platformapi/jdshopapi/order.go +++ b/platformapi/jdshopapi/order.go @@ -6,6 +6,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "strings" "time" "git.rosy.net.cn/baseapi/utils" @@ -16,6 +17,8 @@ const ( OrderStatusPause = "PAUSE" OrderStatusWait = "WAIT_SELLER_STOCK_OUT" OrderStatusCancel = "TRADE_CANCELED" + + IdSopShipmenttypeTC = "71" //同城配送,需要调其他接口获取期望送货时间 ) //订单出库 @@ -107,7 +110,7 @@ func (a *API) GetOrder(orderID int64, isStatus bool) (getOrderResult *GetOrderRe orderStartTime,orderEndTime,orderRemark,consigneeInfo, itemInfoList,pauseBizInfo,pin,idSopShipmenttype` if isStatus { - params["order_state"] = "WAIT_SELLER_STOCK_OUT,PAUSE,TRADE_CANCELED" + params["order_state"] = "WAIT_SELLER_STOCK_OUT,TRADE_CANCELED" } result, err := a.AccessAPI("jingdong.pop.order.get", prodURL, params) if err == nil { @@ -218,3 +221,35 @@ func (a *API) KeyGet() (keyGetResult *KeyGetResult, err error) { } return keyGetResult, err } + +type GetOrderExtInfoByOrderIdResult struct { + IDSopShipmentType string `json:"idSopShipmentType"` + OrderCreateDate string `json:"orderCreateDate"` + CodDate string `json:"codDate"` + SelectedItem string `json:"selectedItem"` + Batch string `json:"batch"` + DeliveryCodTime string `json:"deliveryCodTime"` + Speedhour string `json:"Speedhour"` + FinalDelieveredTime string `json:"finalDelieveredTime"` +} + +//获取期望送货时间 +func (a *API) GetOrderExtInfoByOrderId(orderId string) (time string, err error) { + getOrderExtInfoByOrderIdResult := &GetOrderExtInfoByOrderIdResult{} + result, err := a.AccessAPI("jingdong.pop.order.getOrderExtInfoByOrderId", prodURL, map[string]interface{}{ + "orderId": orderId, + "searchFileds": "deliveryInfo", + }) + if err == nil { + str := strings.ReplaceAll(result["jingdong_pop_order_getOrderExtInfoByOrderId_responce"].(map[string]interface{})["orderExtraInfoResultModel"].(map[string]interface{})["resultMap"].(map[string]interface{})["deliveryInfo"].(string), "\\", "") + err = json.Unmarshal([]byte(str), &getOrderExtInfoByOrderIdResult) + exTime := strings.Split(getOrderExtInfoByOrderIdResult.DeliveryCodTime, ",") + if len(exTime) < 2 { + time = getOrderExtInfoByOrderIdResult.FinalDelieveredTime + } else { + exTime2 := strings.Split(exTime[1], "-") + time = exTime[0] + " " + exTime2[1] + ":00" + } + } + return time, err +} diff --git a/platformapi/jdshopapi/order_test.go b/platformapi/jdshopapi/order_test.go index 65fc3cc7..c1ec31f2 100644 --- a/platformapi/jdshopapi/order_test.go +++ b/platformapi/jdshopapi/order_test.go @@ -45,3 +45,11 @@ func TestKeyGet(t *testing.T) { } t.Log(utils.Format4Output(result, false)) } + +func TestGetOrderExtInfoByOrderId(t *testing.T) { + result, err := api.GetOrderExtInfoByOrderId("130427633633") + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result, false)) +} diff --git a/platformapi/jdshopapi/store_page_test.go b/platformapi/jdshopapi/store_page_test.go index bbe707ef..57151748 100644 --- a/platformapi/jdshopapi/store_page_test.go +++ b/platformapi/jdshopapi/store_page_test.go @@ -43,16 +43,16 @@ func TestNewInfoList(t *testing.T) { } func Test11(t *testing.T) { - type StrA struct { - Cat string `json:"cat"` - Dog int `json:"dog,omitempty"` - Mouse int `json:"mouse"` + change := func(s ...string) { + s[0] = "Go" + s = append(s, "playground") + fmt.Println(s) } - a := &StrA{ - Cat: "加菲", - } - fmt.Println(utils.Format4Output(a, false)) - fmt.Println(a.Dog == 0, a.Mouse) + + welcome := []string{"hello", "world"} + change(welcome...) + fmt.Println(welcome) + } func TestAllOrders(t *testing.T) { diff --git a/platformapi/mtpsapi/shop_test.go b/platformapi/mtpsapi/shop_test.go index 99732a22..4b307bc5 100644 --- a/platformapi/mtpsapi/shop_test.go +++ b/platformapi/mtpsapi/shop_test.go @@ -18,7 +18,7 @@ func TestShopQuery(t *testing.T) { // if err == nil { // t.Fatal("应该报错找不到门店") // } - shopInfo, err := api.ShopQuery("11732425") + shopInfo, err := api.ShopQuery("667446") if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index 207afabb..b8ba09fa 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -16,7 +16,7 @@ func TestOrderViewStatus(t *testing.T) { } func TestOrderGetOrderDetail(t *testing.T) { - result, err := api.OrderGetOrderDetail(69760842061320598, false) + result, err := api.OrderGetOrderDetail(73322892924405911, false) if err != nil { t.Fatal(err) } @@ -27,7 +27,7 @@ func TestOrderGetOrderDetail(t *testing.T) { } func TestOrderGetOrderDetail2(t *testing.T) { - result, err := api.OrderGetOrderDetail2(69760842061320598, false) + result, err := api.OrderGetOrderDetail2(73322892924405911, false) if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/retail_test.go b/platformapi/mtwmapi/retail_test.go index 65a6af3d..b1131ee7 100644 --- a/platformapi/mtwmapi/retail_test.go +++ b/platformapi/mtwmapi/retail_test.go @@ -286,7 +286,7 @@ func TestRetailSellStatus(t *testing.T) { } func TestCategoryAttrList(t *testing.T) { - result, err := api.CategoryAttrList(200002728) + result, err := api.CategoryAttrList(200002727) if err != nil { t.Fatal(err) } diff --git a/platformapi/weixinapi/weixinapi_test.go b/platformapi/weixinapi/weixinapi_test.go index 244bebab..40368bfb 100644 --- a/platformapi/weixinapi/weixinapi_test.go +++ b/platformapi/weixinapi/weixinapi_test.go @@ -26,7 +26,7 @@ func init() { // prod api = New("wx2bb99eb5d2c9b82c", "6bbbed1443cc062c20a015a64c07a531") - api.CBSetToken("35_1ilNtBtqXwojmsYWgzpjn8Nn-1DuOfy0rTcsIuRz5RqXAcJRYCmcFP0oBQR6N6dBm6lOvg7j7O-YMKh_--zfbJ_4hBCfBbvI7svoeIc3l4W_UHA41LyT_asp731YpNKA9oRWkg0ftTJj0rHwLEDhAHAUNM") + api.CBSetToken("36_un9YOYENTdiNi4TVoDfrb2oiiU9XSugSgbm0B-uJ4TbhVk543aOi5UcBgYcujsCZ1gyCIMDbaKCON7oWMHtHRLCg1P2KzjRhxU3KoVbNZ04PPzdDOXStnigkoSLTxv-y9pbenFP0kHYHUeRHQEUeAHAJXN") } func handleError(t *testing.T, err error) {