diff --git a/platformapi/ebaiapi/ebaiapi.go b/platformapi/ebaiapi/ebaiapi.go index 5d4faf58..71b7a903 100644 --- a/platformapi/ebaiapi/ebaiapi.go +++ b/platformapi/ebaiapi/ebaiapi.go @@ -104,6 +104,7 @@ func (a *API) AccessAPI2(cmd string, body map[string]interface{}, trackInfo stri "body": []string{string(utils.MustMarshal(body))}, "encrypt": []string{a.encrypt}, } + params[signKey] = []string{a.signParams(params)} encodedParams := params.Encode() err = platformapi.AccessPlatformAPIWithRetry(a.client, diff --git a/platformapi/ebaiapi/order.go b/platformapi/ebaiapi/order.go index f5d202ba..658050b1 100644 --- a/platformapi/ebaiapi/order.go +++ b/platformapi/ebaiapi/order.go @@ -31,6 +31,13 @@ const ( OrderStatusRefund = "15" // 订单退款,这个是售后之后的事件,不应该当成正常订单事件处理 ) +const ( + RefundTypeAgree = "1" // 同意全单/部分退款申请 + RefundTypeRefuse = "2" // 拒绝全单/部分退款申请 + RefundTypeAgreeGoods = "3" // 同意退货申请 + RefundTypeRefuseGoods = "4" // 拒绝退货申请 +) + const ( WaybillStatusEvent = "1" // 一般事件 WaybillStatusNew = "2" // 生成运单 @@ -560,14 +567,6 @@ func (a *API) OrderPartRefundGet(orderID string) (orderMap map[string]interface{ return nil, err } -// func (a *API) OrderPartRefundGet2(orderID string) (partRefundInfo *CBPartRefundInfo, err error) { -// result, err := a.OrderPartRefundGet(orderID) -// if err == nil { -// err = utils.Map2StructByJson(result, &partRefundInfo, true) -// } -// return partRefundInfo, err -// } - func (a *API) SmartOrderIdConvert(orderID string) (convertedOrderID string, err error) { return a.OrderIdConvert(orderID, isOrderIDEleme(orderID)) } @@ -576,23 +575,27 @@ func isOrderIDEleme(orderID string) bool { return len(orderID) == len("3026328756122155111") } -func (a *API) OrderAgreeRefund(orderID string) (err error) { - _, err = a.AccessAPI("order.agreerefund", map[string]interface{}{ - "order_id": orderID, - }) - return err +func (a *API) OrderAgreeRefund(param *RefundOrderExamine) (err error) { + return a.EbaiRefundOrder(param) + //_, err = a.AccessAPI("order.agreerefund", map[string]interface{}{ + // "order_id": orderID, + //}) + //return err } -func (a *API) OrderDisagreeRefund(orderID, refuseReason string) (err error) { - _, err = a.AccessAPI("order.disagreerefund", map[string]interface{}{ - "order_id": orderID, - "refuse_reason": refuseReason, - }) - return err +func (a *API) OrderDisagreeRefund(param *RefundOrderExamine) (err error) { + return a.EbaiRefundOrder(param) + //_, err = a.AccessAPI("order.disagreerefund", map[string]interface{}{ + // "order_id": orderID, + // "refuse_reason": refuseReason, + //}) + //return err } //售后 同意用户多次部分取消 func (a *API) OrderPartRefund(orderID string, removeSkuList []*RefundSku) (err error) { + //return a.EbaiRefundOrder(param) + _, err = a.AccessAPI("order.manyTimesPartrefund", map[string]interface{}{ "order_id": orderID, "products": removeSkuList, @@ -601,34 +604,38 @@ func (a *API) OrderPartRefund(orderID string, removeSkuList []*RefundSku) (err e } //售后 同意用户多次部分取消 -func (a *API) OrderAgreePartRefund(orderID string, removeSkuList []*RefundSku, refundID string) (err error) { - _, err = a.AccessAPI("order.agreepartrefund", map[string]interface{}{ - "order_id": orderID, - "products": removeSkuList, - "refund_id": refundID, - }) - return err +func (a *API) OrderAgreePartRefund(param *RefundOrderExamine) (err error) { + return a.EbaiRefundOrder(param) + + //_, err = a.AccessAPI("order.agreepartrefund", map[string]interface{}{ + // "order_id": orderID, + // "products": removeSkuList, + // "refund_id": refundID, + //}) + //return err } //售后 同意退货退款 -func (a *API) OrderAgreeReturnGoods(orderID, refundOrderID string) (err error) { - _, err = a.AccessAPI("order.agreereturngoods", map[string]interface{}{ - "order_id": orderID, - "refund_order_id": refundOrderID, - }) - return err +func (a *API) OrderAgreeReturnGoods(param *RefundOrderExamine) (err error) { + return a.EbaiRefundOrder(param) + //_, err = a.AccessAPI("order.agreereturngoods", map[string]interface{}{ + // "order_id": orderID, + // "refund_order_id": refundOrderID, + //}) + //return err } //售后 拒绝退货退款 -func (a *API) OrderDisagreeReturnGoods(orderID, refundOrderID, reason string) (err error) { - data, err := a.AccessAPI("order.disagreereturngoods", map[string]interface{}{ - "order_id": orderID, - "refund_order_id": refundOrderID, - "refuse_code": "5", - "refuse_reason": reason, - }) - fmt.Println(data) - return err +func (a *API) OrderDisagreeReturnGoods(param *RefundOrderExamine) (err error) { + return a.EbaiRefundOrder(param) + //data, err := a.AccessAPI("order.disagreereturngoods", map[string]interface{}{ + // "order_id": orderID, + // "refund_order_id": refundOrderID, + // "refuse_code": "5", + // "refuse_reason": reason, + //}) + //fmt.Println(data) + //return err } func (a *API) OrderCheckout(orderID, pickUpCode string) (err error) { @@ -645,3 +652,43 @@ func (a *API) OrderQueryAcceptancecode(orderID string) (err error) { }) return err } + +// EbaiRefundOrder 同意退款V2.0 上面的舍弃使用2.0 +func (a *API) EbaiRefundOrder(param *RefundOrderExamine) error { + if (param.ActionType == RefundTypeRefuse || param.ActionType == RefundTypeRefuseGoods) && param.ReasonCode == "" { + param.ReasonCode = "7001" + } + + _, err := a.AccessAPI("order.reverse.process", utils.Struct2MapByJson(param)) + return err +} + +// GetReverseOrder 根据订单号获取详细订单详情 +func (a *API) GetReverseOrder(orderId string) ([]interface{}, error) { + refundOrder, err := a.AccessAPI("order.reverse.query", map[string]interface{}{ + "order_id": orderId, + }) + if err != nil { + return nil, err + } + + return refundOrder.Data.(map[string]interface{})["reverse_order_list"].([]interface{})[0].(map[string]interface{})["sub_reverse_order_list"].([]interface{}), nil +} + +// RefundOrderExamine 商家审核是售后单 +type RefundOrderExamine struct { + ReverseOrderId string `json:"reverse_order_id" required:"true"` // 逆向单ID + OrderId string `json:"order_id" required:"true"` // 订单id + IdempotentId string `json:"idempotent_id" required:"true"` // 请求唯一标示 + ActionType string `json:"action_type" required:"true"` // 逆向单审批操作类型,枚举值:【1-同意全单/部分退款申请 、 2-拒绝全单/部分退款申请、 3-同意退货申请 、 4-拒绝退货申请】 + ReasonCode string `json:"reason_code" required:"false"` // 当拒绝场景必填,即action_type = 2 or action_type =4 时 必填,枚举值: 7019-双方协商一致不再取消订单、 7020-商品已经备货完成、 7021-商品已送出、 7802-商品发出时完好、 7803-用户未举证/举证无效、 7804-商品影响二次销售、 7805-商品不符合7天无理由退款、 7302-未收到退货(仅退货单支持传入该code)、 7001-其他原因 + ReasonRemarks string `json:"reason_remarks" required:"false"` // 原因备注说明信息 + RefundProductList []*RefundProductList `json:"refund_product_list" required:"false"` // 订单id +} + +type RefundProductList struct { + SubBizOrderId string `json:"sub_biz_order_id" required:"false"` // 商品子单ID + PlatformSkuId string `json:"platform_sku_id" required:"false"` // 平台商品ID + Number string `json:"number"` + RefundAmount string `json:"refund_amount"` +} diff --git a/platformapi/ebaiapi/order_test.go b/platformapi/ebaiapi/order_test.go index afa5ac7a..9c351967 100644 --- a/platformapi/ebaiapi/order_test.go +++ b/platformapi/ebaiapi/order_test.go @@ -2,14 +2,14 @@ package ebaiapi import ( "fmt" + "git.rosy.net.cn/jx-callback/globals" "testing" + "time" "git.rosy.net.cn/baseapi/utils" ) func TestCancelOrder(t *testing.T) { - err := api.OrderDisagreeReturnGoods("4007560108986061407", "1939575364735607", "1") - fmt.Println(err) } func TestOrderGet(t *testing.T) { @@ -21,6 +21,53 @@ func TestOrderGet(t *testing.T) { } } +func TestOrderAgreePartRefund(t *testing.T) { + param := &RefundOrderExamine{ + ReverseOrderId: "2308279044977730245", + OrderId: "4015750049354953219", + IdempotentId: utils.Int64ToStr(time.Now().UnixNano()), + ActionType: RefundTypeAgree, + ReasonCode: "", + ReasonRemarks: "", + } + refundProductList := make([]*RefundProductList, 0, 0) + date, _ := api.GetReverseOrder("4015750049354953219") + for _, v := range date { + v2 := v.(map[string]interface{}) + refundProduct := &RefundProductList{ + SubBizOrderId: v2["sub_biz_order_id"].(string), + PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)), + } + switch utils.MustInterface2Int64(v2["fund_calculate_type"]) { + case 0: + refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"])) + case 1: + refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"])) + } + refundProductList = append(refundProductList, refundProduct) + } + param.RefundProductList = refundProductList + err := api.EbaiRefundOrder(param) + globals.SugarLogger.Debugf("err := %s", utils.Format4Output(err, false)) +} + +func TestOrderAgreeRefund(t *testing.T) { + err := api.OrderAgreeRefund(&RefundOrderExamine{ + ReverseOrderId: "2308279044977730245", + OrderId: "4002450124418844395", + IdempotentId: utils.Int64ToStr(time.Now().UnixNano()), + ActionType: "1", + ReasonRemarks: "", + }) + fmt.Println(err) +} + +func TestGetReverseOrder(t *testing.T) { + date, _ := api.GetReverseOrder("4099660048407490187") + for _, v := range date { + fmt.Println(v) + } +} func TestOrderGet2(t *testing.T) { result, err := api.OrderGet2("2147234624018417846") if err != nil { @@ -57,7 +104,7 @@ func TestOrderListAll(t *testing.T) { } func TestOrderPartRefundGet(t *testing.T) { - result, err := api.OrderPartRefundGet("4056950043422699136") + result, err := api.OrderPartRefundGet("4015750049354953219") if err != nil { t.Fatal(err) } else { @@ -165,12 +212,6 @@ func TestAPI_OrderselfDeliveryStateSync(t *testing.T) { t.Fatal(err) } } -func TestAggrent(t *testing.T) { - err := api.OrderAgreeReturnGoods("4648176604190697145", "1483635799404794") - if err != nil { - t.Fatal(err) - } -} func TestForAA(t *testing.T) { diff --git a/platformapi/jdapi/jdapi_test.go b/platformapi/jdapi/jdapi_test.go index 6e49e965..be10b185 100644 --- a/platformapi/jdapi/jdapi_test.go +++ b/platformapi/jdapi/jdapi_test.go @@ -29,12 +29,12 @@ func init() { // 天天果园 //api = New("c45e6510-00ba-4be2-977e-bcb9c9792cc7", "5d5577a2506f41b8b4ec520ba83490f5", "0b01b9eeb15b41dab1c3d05d95c17a26") // 京东果园 320406 - api = New("c454ef86-2213-4860-9a31-f2ef7e883386", "1dba76d40cac446ca500c0391a0b6c9d", "a88d031a1e7b462cb1579f12e97fe7f4") + //api = New("c454ef86-2213-4860-9a31-f2ef7e883386", "1dba76d40cac446ca500c0391a0b6c9d", "a88d031a1e7b462cb1579f12e97fe7f4") // 果切 //api = New("3ef42248-1247-4efa-8624-43cd3a3b97ae", "5d5577a2506f41b8b4ec520ba83490f5", "0b01b9eeb15b41dab1c3d05d95c17a26") // 京东超市 381564 - // api = New("f99d25b8-33a6-4251-a97c-5e24b80b0005", "d2d1e2e3213d4320bc2712a684307831", "1750f5b9848d4a6492c1c20b487074da") + api = New("f99d25b8-33a6-4251-a97c-5e24b80b0005", "d2d1e2e3213d4320bc2712a684307831", "1750f5b9848d4a6492c1c20b487074da") //prod zs // api = New("6f8d3290-0120-4ad7-8b53-943c67c84f3f", "789279b9ae814ba091ac52815566b54d", "5d668cd227644637bb0fd73ed8118ec8") // const cookieValue = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHCT3RM3CQG7IJIPUQ3THS5UIUYWMKINM7ETUOQB7OBPOPZVCT3ZJY55243TDVXLO25PP4UYSPTTPMNQ7HPMWOJKJ3BJWGVHD243MXH7NZWW264TKN5UOCJBSSSOKD2QQII" diff --git a/platformapi/jdapi/order_test.go b/platformapi/jdapi/order_test.go index e4f34d89..8423c0de 100644 --- a/platformapi/jdapi/order_test.go +++ b/platformapi/jdapi/order_test.go @@ -75,7 +75,7 @@ func TestOrderJDZBDelivery(t *testing.T) { } func TestModifySellerDelivery(t *testing.T) { - result, err := api.ModifySellerDelivery("2318183905000222", "") + result, err := api.ModifySellerDelivery("2320085686000392", "") if err != nil { t.Fatal(err.Error()) } @@ -147,7 +147,7 @@ func TestOrderQuery2(t *testing.T) { } func TestGetByOrderNoForOaos(t *testing.T) { - orderList, err := api.GetByOrderNoForOaos("2226675449000192") + orderList, err := api.GetByOrderNoForOaos("2320085686000392") t.Log(utils.Format4Output(orderList, false)) if err != nil { t.Fatal(err.Error()) diff --git a/platformapi/mtwmapi/act_test.go b/platformapi/mtwmapi/act_test.go index 0f123b26..0271c214 100644 --- a/platformapi/mtwmapi/act_test.go +++ b/platformapi/mtwmapi/act_test.go @@ -66,7 +66,7 @@ func TestFulllDiscountShippingFeeList(t *testing.T) { } func TestRetailDiscountBatchSave(t *testing.T) { - result, _, err := api.RetailDiscountBatchSave2("12944552", 0, []*RetailDiscountActData{ + result, _, err := api.RetailDiscountBatchSave2("18822904", 0, []*RetailDiscountActData{ &RetailDiscountActData{ AppFoodCode: "6094573", StartTime: time.Now().Unix(), diff --git a/platformapi/mtwmapi/bill_list.go b/platformapi/mtwmapi/bill_list.go index bf9e52d3..6bbd1b3c 100644 --- a/platformapi/mtwmapi/bill_list.go +++ b/platformapi/mtwmapi/bill_list.go @@ -13,11 +13,12 @@ const ( //#region 获取门店订单的结算信息 bill/list type Bill struct { - AppPoiCode string `json:"app_poi_code"` // APP方门店id,传商家中台系统里门店的编码。如商家在操作绑定门店至开放平台应用中时,未绑定三方门店id信息,则默认APP方门店id与美团门店id相同。 - StartDate int64 `json:"start_date"` // 秒级时间戳 - EndDate int64 `json:"end_date"` // 秒级时间戳 - Offset int64 `json:"offset"` - Limit int64 `json:"limit"` + AppPoiCode string `json:"app_poi_code"` // APP方门店id,传商家中台系统里门店的编码。如商家在操作绑定门店至开放平台应用中时,未绑定三方门店id信息,则默认APP方门店id与美团门店id相同。 + StartDate int64 `json:"start_date"` // 秒级时间戳 + EndDate int64 `json:"end_date"` // 秒级时间戳 + Offset int64 `json:"offset"` + Limit int64 `json:"limit"` + AccessToken string `json:"access_token"` } // GetStoreBillList 获取门店的订单账单 diff --git a/platformapi/mtwmapi/bill_list_test.go b/platformapi/mtwmapi/bill_list_test.go index cad6e24b..4e27d445 100644 --- a/platformapi/mtwmapi/bill_list_test.go +++ b/platformapi/mtwmapi/bill_list_test.go @@ -8,14 +8,15 @@ import ( func TestBillList(t *testing.T) { now := time.Now() - from := time.Date(now.Year(), now.Month(), now.Day()-7, 0, 0, 0, 0, time.Local) + from := time.Date(now.Year(), now.Month(), now.Day()-2, 0, 0, 0, 0, time.Local) to := time.Date(now.Year(), now.Month(), now.Day()-1, 23, 59, 59, 59, time.Local) param := &Bill{ - AppPoiCode: "9202390", - StartDate: from.Unix(), - EndDate: to.Unix(), - Offset: 0, - Limit: 200, + AppPoiCode: "18833517", + StartDate: from.Unix(), + EndDate: to.Unix(), + Offset: 0, + Limit: 200, + AccessToken: api.token, } data, settleId, err := api.GetStoreBillList(param) diff --git a/platformapi/mtwmapi/food.go b/platformapi/mtwmapi/food.go index 3c640276..d3905f0b 100644 --- a/platformapi/mtwmapi/food.go +++ b/platformapi/mtwmapi/food.go @@ -1,6 +1,7 @@ package mtwmapi import ( + "git.rosy.net.cn/jx-callback/globals" "time" "git.rosy.net.cn/baseapi/utils" @@ -145,3 +146,14 @@ func (a *API) FoodSkuSellStatus(poiCode string, foodData []map[string]interface{ }) return err } + +// GetSkuPurchasePrice 获取商品进货价 +func (a *API) GetSkuPurchasePrice(poiCode, skuId string) { + data, err := a.AccessAPI("retail/purchase/price/list", true, map[string]interface{}{ + KeyAppPoiCode: poiCode, + "sku_id": skuId, + "page_size": 20, + }) + globals.SugarLogger.Debugf("data :== %s", utils.Format4Output(data, false)) + globals.SugarLogger.Debugf("err :== %s", utils.Format4Output(err, false)) +} diff --git a/platformapi/mtwmapi/food_test.go b/platformapi/mtwmapi/food_test.go index a10aca7c..a903439f 100644 --- a/platformapi/mtwmapi/food_test.go +++ b/platformapi/mtwmapi/food_test.go @@ -14,3 +14,7 @@ func TestFoodList(t *testing.T) { } // t.Log(result) } + +func TestGetSkuPurchasePrice(t *testing.T) { + api.GetSkuPurchasePrice("18048546", "16295939515") +} diff --git a/platformapi/mtwmapi/mtwmapi_test.go b/platformapi/mtwmapi/mtwmapi_test.go index 9378e3f9..c2b55bc3 100644 --- a/platformapi/mtwmapi/mtwmapi_test.go +++ b/platformapi/mtwmapi/mtwmapi_test.go @@ -26,7 +26,11 @@ func init() { //api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "") //商超 +<<<<<<< HEAD //api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_ovSLnyKTsMNx0RxMzJ1C7w") //token_n4TwqCntWWuvQwAawzxC0w +======= + //api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_v-zI40EPjPfXLmaKdgRPqA") //token_n4TwqCntWWuvQwAawzxC0w +>>>>>>> 1eebd3a457d772f335a41fd04f88e08ffc8e1bc3 cookieStr := ` acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1; ` @@ -64,7 +68,7 @@ func TestGetAccessToken(t *testing.T) { } func TestGetAccessToken2(t *testing.T) { - result, err := api.GetAccessToken2("18574879") //refresh_token_pLG7Jw7g9mu7oOzNSuJIUg + result, err := api.GetAccessToken2("18048546") //refresh_token_pLG7Jw7g9mu7oOzNSuJIUg if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index 21ad0af2..ec1ae22b 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" "time" ) @@ -553,6 +554,7 @@ func (a *API) OrderLogisticsCancel(orderID int64, reason string) (err error) { return err } +// OrderLogisticsStatus 获取订单状态 func (a *API) OrderLogisticsStatus(orderID int64) (status int64, err error) { result, err := a.AccessAPI("order/logistics/status", true, map[string]interface{}{ KeyOrderID: orderID, @@ -565,6 +567,29 @@ func (a *API) OrderLogisticsStatus(orderID int64) (status int64, err error) { return utils.Interface2Int64WithDefault(data["logistics_status"], 0), err } +// OrderLogisticsFee 获取订单配送费 +func (a *API) OrderLogisticsFee(orderID int64) (payFee float64, err error) { + result, err := a.AccessAPI("order/logistics/status", true, map[string]interface{}{ + KeyOrderID: orderID, + }) + globals.SugarLogger.Debugf("=resutl := %s", utils.Format4Output(result, false)) + if err != nil { + return 0, err + } + data := result.(map[string]interface{}) + // 美团运单,骑手确认订单之后取消的话就需要扣除全部的运单费用了,到店之后取消订单也不支付骑手配送费 + if utils.Interface2Int64WithDefault(data["logistics_status"], 0) == utils.Str2Int64WithDefault(WaybillStatusCanceled, 0) { + if utils.Interface2Int64WithDefault(data["dispatcher_reach_poi_time"], 0) != 0 { + return 2, nil + } else if utils.Interface2Int64WithDefault(data["send_time"], 0) != 0 { + return utils.TryInterface2Float64(data["pay_amount"]) + } else { + return 0, nil + } + } + return utils.TryInterface2Float64(data["pay_amount"]) +} + // 拉取用户真实手机号(必接) // https://developer.waimai.meituan.com/home/docDetail/222 // limit最大为MaxBatchPullPhoneNumberLimit = 1000 diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index 52597d1e..99a41e75 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -19,7 +19,7 @@ func TestOrderViewStatus(t *testing.T) { } func TestOrderGetOrderDetail(t *testing.T) { - result, err := api.OrderGetOrderDetail(900658760944919842, false) + result, err := api.OrderGetOrderDetail(1100692033635137950, false) if err != nil { t.Fatal(err) } @@ -35,7 +35,7 @@ func TestOrderGetOrderDetail(t *testing.T) { } func TestOrderGetOrderDetail2(t *testing.T) { - result, err := api.OrderGetOrderDetail2(1000533651036489997, false) + result, err := api.OrderGetOrderDetail2(1100687990339131759, false) if err != nil { t.Fatal(err) } @@ -77,7 +77,18 @@ func TestOrderApplyPartRefund(t *testing.T) { } func TestOrderLogisticsStatus(t *testing.T) { - result, err := api.OrderLogisticsStatus(140382472052682640) + result, err := api.OrderLogisticsStatus(1100687990339131759) + if err != nil { + t.Fatal(err) + } + if result == 0 { + t.Fatal("result should have value") + } + t.Log(utils.Format4Output(result, false)) +} + +func TestOrderLogisticsFee(t *testing.T) { + result, err := api.OrderLogisticsFee(900699454211738469) if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/poi_test.go b/platformapi/mtwmapi/poi_test.go index bc48bd3e..02d47746 100644 --- a/platformapi/mtwmapi/poi_test.go +++ b/platformapi/mtwmapi/poi_test.go @@ -24,7 +24,7 @@ func TestPoiGetIDs(t *testing.T) { } func TestPoiMGet(t *testing.T) { - result, err := api.PoiMGet([]string{"15467875"}) + result, err := api.PoiMGet([]string{"18822904"}) t.Log(utils.Format4Output(result, false)) if err != nil { t.Fatal(err) @@ -44,10 +44,10 @@ func TestPoiSave(t *testing.T) { //} poiParams := map[string]interface{}{} //utils.FilterMapNilMembers(utils.Struct2FlatMap(result[0])) - poiParams["address"] = "云南省楚雄彝族自治州楚雄市东瓜镇高新区永安路1号四季银座花园城6栋6-4" + poiParams["address"] = "北京市朝阳区百子湾路32号院6号楼-1层C3-1号" //poiParams["pic_url"] = "http://image.jxc4.com/image/5c9fc4fffb4d5ff1aecf85a2d2543e00.jpg" //poiParams["name"] = "京西菜市(礼嘉桥村市场店)" - err := api.PoiSave("15467875", poiParams) + err := api.PoiSave("18830143", poiParams) fmt.Println(err) } diff --git a/platformapi/mtwmapi/retail_test.go b/platformapi/mtwmapi/retail_test.go index 77cfa38c..a3e6e217 100644 --- a/platformapi/mtwmapi/retail_test.go +++ b/platformapi/mtwmapi/retail_test.go @@ -132,7 +132,7 @@ func TestReloadStoreSku(t *testing.T) { } func TestRetailGet(t *testing.T) { - result, err := api.RetailGet("17886205", "mtcode_1664518383900835894") + result, err := api.RetailGet("18048546", "305011012") if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/shipping.go b/platformapi/mtwmapi/shipping.go index c278b26f..2770a509 100644 --- a/platformapi/mtwmapi/shipping.go +++ b/platformapi/mtwmapi/shipping.go @@ -25,6 +25,7 @@ const ( PeiSongTypeKuaiDi = "2002" // 快送 PeiSongTypeWholeCity = "2010" // 全城送 PeiSongTypeMixed = "3001" // 混合送(即美团专送+快送) + PeiSongTypeQiKe = "4015" // 企客远距离配送 ) func (a *API) ShippingSave(poiCode string, area string, minPrice, shippingFee float32) (err error) { diff --git a/platformapi/tao_vegetable/api_model.go b/platformapi/tao_vegetable/api_model.go index 76e51bdf..a44ceb9b 100644 --- a/platformapi/tao_vegetable/api_model.go +++ b/platformapi/tao_vegetable/api_model.go @@ -36,7 +36,7 @@ func CallBackResultInfo(err error) *CallBackResult { return &CallBackResult{ Success: true, ErrCode: "SUCCESS", - ErrMsg: "", + ErrMsg: "成功", } } return &CallBackResult{ @@ -52,7 +52,7 @@ func CallBackResultSign(err error) *CallBackResult { return &CallBackResult{ Success: true, ErrCode: "SUCCESS", - ErrMsg: "", + ErrMsg: "成功", } } diff --git a/platformapi/tao_vegetable/order_delivery.go b/platformapi/tao_vegetable/order_delivery.go index fd2b095b..2123ccaa 100644 --- a/platformapi/tao_vegetable/order_delivery.go +++ b/platformapi/tao_vegetable/order_delivery.go @@ -46,7 +46,8 @@ func (a *API) DeliveryFinish(req *request2.AlibabaAelophyOrderWorkCallbackReques client := ability591.NewAbility591(&a.client) //globals.SugarLogger.Debugf("param := %s", utils.Format4Output(req, false)) - data, _ := client.AlibabaAelophyOrderWorkCallback(req, a.token) + data, err := client.AlibabaAelophyOrderWorkCallback(req, a.token) + fmt.Println(err) if data != nil && !*data.ApiResult.Success { //globals.SugarLogger.Debugf("requestId[%s],err[%s]", data.RequestId, utils.Format4Output(data, false)) return fmt.Errorf(*data.ApiResult.ErrMsg) diff --git a/platformapi/tao_vegetable/order_test.go b/platformapi/tao_vegetable/order_test.go index 6bfc557d..11fd7dd2 100644 --- a/platformapi/tao_vegetable/order_test.go +++ b/platformapi/tao_vegetable/order_test.go @@ -22,8 +22,8 @@ func TestName(t *testing.T) { } func TestGetOrderDetail(t *testing.T) { requestParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{ - StoreId: utils.String2Pointer("JX666708"), - BizOrderId: utils.Int64ToPointer(5000910858776180489), + StoreId: utils.String2Pointer("JX101983"), + BizOrderId: utils.Int64ToPointer(5000921008118200880), }} data, err := apiTao.QueryOrderDetail(requestParam) globals.SugarLogger.Debugf("data := %s", utils.Format4Output(data, false)) @@ -135,20 +135,44 @@ func TestGetTransactionOrderList(t *testing.T) { func TestPickUp(t *testing.T) { param := &request591.AlibabaAelophyOrderWorkCallbackRequest{} param.WorkCallbackRequest = &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{ - StoreId: utils.String2Pointer("JX668594"), - BizOrderId: utils.Int64ToPointer(5000900604228190922), - Status: utils.String2Pointer("SHIPPING"), + StoreId: utils.String2Pointer("JX101983"), + BizOrderId: utils.Int64ToPointer(5000921008118200880), + Status: utils.String2Pointer("PICKED"), } workCallbackSubOrderInfoList := make([]domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo, 0, 0) workCallbackSubOrderInfo := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{ - BizSubOrderId: utils.Int64ToPointer(3422286108419706112), - SkuCode: utils.String2Pointer("19930827"), - PickSaleQuantity: utils.String2Pointer("3"), - PickStockQuantity: utils.String2Pointer("3"), + BizSubOrderId: utils.Int64ToPointer(5000921008118210880), + SkuCode: utils.String2Pointer("39132"), + PickSaleQuantity: utils.String2Pointer("1"), + PickStockQuantity: utils.String2Pointer("1"), } workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo) + workCallbackSubOrderInfo2 := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{ + BizSubOrderId: utils.Int64ToPointer(5000921008118220880), + SkuCode: utils.String2Pointer("6093937"), + PickSaleQuantity: utils.String2Pointer("2"), + PickStockQuantity: utils.String2Pointer("2"), + } + workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo2) + + workCallbackSubOrderInfo3 := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{ + BizSubOrderId: utils.Int64ToPointer(5000921008118230880), + SkuCode: utils.String2Pointer("6045098"), + PickSaleQuantity: utils.String2Pointer("1"), + PickStockQuantity: utils.String2Pointer("1"), + } + workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo3) + + workCallbackSubOrderInfo4 := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{ + BizSubOrderId: utils.Int64ToPointer(5000921008118240880), + SkuCode: utils.String2Pointer("24342"), + PickSaleQuantity: utils.String2Pointer("1"), + PickStockQuantity: utils.String2Pointer("1"), + } + workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo4) + // 出库 param.WorkCallbackRequest.WorkCallbackSubOrderInfoList = &workCallbackSubOrderInfoList diff --git a/platformapi/tao_vegetable/store_sku_test.go b/platformapi/tao_vegetable/store_sku_test.go index aebcf6fb..7cebb7e9 100644 --- a/platformapi/tao_vegetable/store_sku_test.go +++ b/platformapi/tao_vegetable/store_sku_test.go @@ -112,21 +112,47 @@ func TestAddStoreSku(t *testing.T) { globals.SugarLogger.Debugf("err = %s", utils.Format4Output(err, false)) } +var skucodeMap = []string{ + "JX100829:25278", +} + func TestUpdateSku(t *testing.T) { - param := &request585.AlibabaWdkSkuUpdateRequest{} - updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0) - updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{ - OuCode: utils.String2Pointer("JX101870"), - SkuCode: utils.String2Pointer("6045426"), - CleanSkuMemberPrice: utils.Int64ToPointer(1), - AllowAppSale: utils.Int64ToPointer(1), - OnlineSaleFlag: utils.Int64ToPointer(1), + data2 := make([]string, 0, 0) + for _, v := range skucodeMap { + storeCodeAndSkuCode := strings.Split(v, ":") + skuCode := []string{storeCodeAndSkuCode[1]} + storeCode1 := utils.String2Pointer(storeCodeAndSkuCode[0]) + result, err := apiTao.QueryStoreSKu(&request585.AlibabaWdkSkuQueryRequest{Param: &domain585.AlibabaWdkSkuQuerySkuQueryDo{ + OuCode: storeCode1, + SkuCodes: &skuCode, + }}) + if err != nil { + data2 = append(data2, v) + continue + } + + storeCode := *result + if len(storeCode) > 0 && utils.Str2Float64WithDefault(*storeCode[0].Model.SalePrice, 0) < 5 { + param := &request585.AlibabaWdkSkuUpdateRequest{} + updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0) + updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{ + OuCode: storeCode1, + SkuCode: utils.String2Pointer(skuCode[0]), + SkuPrice: utils.String2Pointer(utils.Float64ToStr(utils.Str2Float64WithDefault(*storeCode[0].Model.SalePrice, 0) + 2)), // 优先使用skuPrice 靠后SalePrice + } + updateSkuList = append(updateSkuList, updateSku) + param.ParamList = &updateSkuList + _, err := apiTao.UpdateStoreSku(param) + if err != nil { + data2 = append(data2, v) + continue + } + } + } - updateSkuList = append(updateSkuList, updateSku) - param.ParamList = &updateSkuList - data, err := apiTao.UpdateStoreSku(param) - globals.SugarLogger.Debugf("data = %s", utils.Format4Output(data, false)) - globals.SugarLogger.Debugf("err = %s", utils.Format4Output(err, false)) + + globals.SugarLogger.Debugf("data2 :============ %s", utils.Format4Output(data2, false)) + } // 商品上下架 diff --git a/platformapi/tiktok_shop/ascription_place/phonedata.go b/platformapi/tiktok_shop/ascription_place/phonedata.go index 5d631e03..32a18a49 100644 --- a/platformapi/tiktok_shop/ascription_place/phonedata.go +++ b/platformapi/tiktok_shop/ascription_place/phonedata.go @@ -44,12 +44,6 @@ var ( ) func init() { - //dir := os.Getenv("PHONE_DATA_DIR") - //if dir == "" { - // _, fulleFilename, _, _ := runtime.Caller(0) - // dir = path.Dir(fulleFilename) - //} - var err error content, err = ioutil.ReadFile(PHONE_DAT) //path.Join(dir, PHONE_DAT) if err != nil { diff --git a/platformapi/tiktok_shop/tiktok_api/afs_test.go b/platformapi/tiktok_shop/tiktok_api/afs_test.go index 173978e9..c48b2d34 100644 --- a/platformapi/tiktok_shop/tiktok_api/afs_test.go +++ b/platformapi/tiktok_shop/tiktok_api/afs_test.go @@ -7,21 +7,8 @@ import ( "testing" ) -//var token = `{ -// "access_token": "b668f8cc-d875-4887-a613-5452f05e752e", -// "expires_in": 1671432212, -// "scope": "SCOPE", -// "shop_id": 63141688, -// "shop_name": "小时达开放平台专用店", -// "refresh_token": "fa64fedf-05a7-4c1b-b6c4-f97f90e10b75", -// "authority_id": "" -//}` - -var token = `{"access_token":"387f10da-bb2f-4416-9323-697574efc8b1","expires_in":1690696461,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市速食","refresh_token":"65d99337-6e0e-47fb-80af-f90929ceea64","authority_id":""}` - -//var token = `{"access_token":"e3173e9f-266f-4d87-88e7-e7cd837bc9d9","expires_in":1672882632,"scope":"SCOPE","shop_id":68023619,"shop_name":"京西到家","refresh_token":"5070aae2-493f-46bd-b5d6-6ea0cd64729f","authority_id":""}` - -var a = New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) +var token = `{"access_token":"4a1ac795-50a7-4f83-8b13-a0ee30d93456","expires_in":1692502247,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市速食","refresh_token":"b1892379-82b9-4636-91a3-2bff32d164ca","authority_id":""}` +var a = New("7267745202649957900", "51998fcf-d521-4553-8c0c-fa662c8dbd6e", token) // 查询售后单详情 func TestAfsOrder(t *testing.T) { diff --git a/platformapi/tiktok_shop/tiktok_api/store_test.go b/platformapi/tiktok_shop/tiktok_api/store_test.go index 1e1134bc..17d50f4e 100644 --- a/platformapi/tiktok_shop/tiktok_api/store_test.go +++ b/platformapi/tiktok_shop/tiktok_api/store_test.go @@ -104,6 +104,7 @@ func TestGetStoreDetail(t *testing.T) { fmt.Println(utils.Format4Output(data, false)) fmt.Println(err) } + func TestSysnc(t *testing.T) { var c = []int64{71199364, 71199363, 71199362, 71199361, 71199360, 71199359, 71199358, 71199357, 71199356, 71199355, 71199354, 71199353, 71199352, 71199351, 71199350, 71199349, 70870848, 70870393, 69608467, 69395217, 66502882, 65585133, 65402632, 65401463, 64363086, 64292416, 64270631, 64270382, 64270381, 64270380, 64270379, 64270378, 64270377, 64270376, 64270375, 64270374, 64270373, 64270372, 64270371, 64270370, 64270369, 64270368, 64270367, 64270366, 64270365, 64270364, 64270363, 64270362, 64270361, 64270360, 64270359, 64270358, 64270357, 64270356, 64270355, 64270354, 64270353, 64270352, 64270351, 64270350, 64270349, 64270348, 64270347, 64270346, 64270345, 64270344, 64270343, 64270342, 64270341, 64270340, 64270339, 64270338, 64270337, 64270336, 64270335, 64270334, 64270333, 64270331, 64270330, 64270329, 64270328, 64270327, 64270326, 64270325, 64270324, 64270323, 64270322, 64270321, 64270320, 64270319, 64270318, 64270317, 64270316, 64270315, 64270314, 64270313, 64270312, 64270311, 64270310, 64270309, 64270308, 64270307, 64270306, 64270305, 64270304, 64270303, 64270302, 64270301, 64270300, 64270299, 64270298, 64270297, 64270296, 64270295, 64270294, 64270293, 64270292, 64270291, 64270290, 64270289, 64270288, 64270287, 64270286, 64270285, 64270284, 64270283, 64270282, 64270281, 64270280, 64270279, 64270278, 64270277, 64270276, 64270275, 64270274, 64270273, 64270272, 64270271, 64270270, 64270269, 64270268, 64270267, 64270266, 64270265, 64270264, 64270263, 64270262, 64270261, 64270260, 64270259, 64270258, 64270257, 64270256, 64270255, 64270254, 64270253, 64270252, 64270251, 64270250, 64270249, 64270248, 64270247, 64270246, 64270245, 64270244, 64270243, 64270242, 64270241, 64270240, 64270239, 64270238, 64270237, 64270236, 64270235, 64270234, 64270233, 64270232, 64270231, 64270230, 64270229, 64270228, 64270227, 64270226, 64270225, 64270224, 64270223, 64270222, 64270221, 64270220, 64270219, 64270217, 64270216, 64270215, 64270214, 64270213, 64270212, 64270211, 64270210, 64270209, 64270208, 64270207, 64270206, 64270205, 64270204, 64270203, 64270202, 64270201, 64270200, 64270199, 64270198, 64270197, 64270196, 64270195, 64270194, 64270193, 64270192, 64270191, 64270190, 64270189, 64270188, 64270187, 64270186, 64270185, 64270184, 64270183, 64270182, 64270181, 64270180, 64270179, 64270178, 64270177, 64270176, 64270175, 64270174, 64270173, 64270172, 64270171, 64270170, 64270169, 64270168, 64270167, 64270166, 64270165, 64270164, 64270163, 64270162, 64270161, 64270160, 64270159, 64270158, 64270157, 64270156, 64270155, 64270154, 64270153, 64270152, 64270151, 64270150, 64270149, 64270148, 64270147, 64270146, 64270145, 64270144, 64270143, 64270142, 64270141, 64270140, 64270139, 64270138, 64270137, 64270136, 64270135, 64270134, 64270133, 64270132, 64270131, 64270130, 64270129, 64270128, 64270127, 64270126, 64270125, 64270124, 64270123, 64270122, 64270121, 64270120, 64270119, 64270118, 64270117, 64270116, 64270115, 64270114, 64270113, 64270112, 64270111, 64270110, 64270109, 64270108, 64270107, 64270106, 64270105, 64270104, 64270103, 64270102, 64270101, 64270100, 64270099, 64270098, 64270097, 64270096, 64270095, 64270094, 64270093, 64270092, 64270091, 64270090, 64270089, 64270088, 64270087, 64270086, 64270085, 64270084, 64270083, 64270082, 64270081, 64270080, 64270079, 64270078, 64270077, 64270076, 64270075, 64270074, 64270073, 64270072, 64270071, 64270070, 64270069, 64270068, 64270067, 64270066, 64270065, 64270064, 64270063, 64270062, 64270061, 64270060, 64270059, 64270058, 64270057, 64270056, 64270055, 64270054, 64270053, 64270052, 64270051, 64270050, 64270049, 64270048, 64270047, 64270046, 64270045, 64270044, 64270043, 64270042, 64270041, 64270040, 64270039, 64270038, 64270037, 64270036, 64270035, 64270034, 64270033, 64270032, 64270031, 64270030, 64270029, 64270028, 64270027, 64270026, 64270025, 64270024, 64270023, 64270022, 64270021, 64270020, 64270019, 64270018, 64270017, 64270016, 64270015, 64270014, 64270013, 64270012, 64270011, 64270010, 64270009, 64270008, 64270007, 64270006, 64270005, 64270004, 64270003, 64270002, 64270001, 64270000, 64269999, 64269998, 64269997, 64269996, 64269995, 64269994, 64269993, 64269992, 64269991, 64269990, 64269989, 64269988, 64269987, 64269986, 64269985, 64269984, 64269983, 64269982, 64269981, 64269980, 64269979, 64269978, 64269977, 64269976, 64269975, 64269974, 64269973, 64269972, 64269971, 64269970, 64269969, 64269968, 64269967, 64269966, 64269965, 64269964, 64269963, 64269962, 64269961, 64269960, 64269959, 64269958, 64269957, 64269956, 64269955, 64269954, 64269953, 64269952, 64269951, 64269950, 64269949, 64269948, 64269947, 64269946, 64269945, 64269944, 64269943, 64269942, 64269941, 64269940, 64269939, 64269938, 64269937, 64269936, 64269935, 64269934, 64269933, 64269932, 64269931, 64269930, 64269929, 64269928, 64269927, 64269926, 64269925, 64269924, 64269923, 64269922, 64252804, 64252803, 64252802, 64252801, 64252800, 64252799, 64252798, 64252797, 64252796, 64252795, 64252794, 64252793, 64252792, 64252791, 64252790, 64252789, 64252788, 64252787, 64252786, 64252785, 64252784, 64252783, 64252782, 64251903, 64251902, 64251901, 64251900, 64251899, 64251898, 64251897, 64251896, 64251895, 64251894, 64251893, 64251892, 64251891, 64251890, 64251889, 64251888, 64251887, 64251886, 64251885, 64251884, 64251883, 64251882, 64251881, 64251880, 64251879, 64251878, 64251877, 64251876, 64251875, 64251874, 64251873, 64251872, 64251871, 64251870, 64251869, 64251868, 64251867, 64251866, 64251865, 64251864, 64251863, 64251862, 64251861, 64251860, 64251859, 64251858, 64251857, 64251856, 64251855, 64251854, 64251853, 64251634, 64251633, 64251632, 64251631, 64251630, 64251629, 64251628, 64251627, 64251626, 64251625, 64251624, 64251623, 64251622, 64251621, 64251620, 64251619, 64251618, 64251617, 64251616, 64251615, 64251614, 64251613, 64251612, 64251611, 64251610, 64251609, 64251608, 64251607, 64251606, 64251605, 64251604, 64251603, 64251602, 64251601, 64251600, 64251599, 64251224, 64251223, 64251222, 64251221, 64251220, 64251219, 64251218, 64251217, 64251216, 64251215, 64251214, 64251213, 64251212, 64251211, 64251210, 64251209, 64251208, 64251207, 64251206, 64251205, 64251204, 64251203, 64251202, 64251201, 64251200, 64251199, 64251198, 64251197, 64251196, 64251195, 64250758, 64250756, 64250755, 64250754, 64250753, 64250751, 64250750, 64250749, 64250748, 64250746, 64250745, 64250744, 64250743, 64250742, 64250741, 64250740, 64250739, 64250738, 64250736, 64250735, 64250734, 64250733, 64250732, 64250731, 64250730, 64250729, 64250728, 64250727, 64250724, 64250722, 64250720, 64250717, 64250715, 64250714, 64250713, 64250712, 64250711, 64250710, 64250709, 64250708, 64250707, 64250704, 64250703, 64212758, 64212030, 64208920, 64208821, 64208482, 64208305, 64208009, 64200572, 64200094, 64199878, 64199719, 64198428, 64176100, 64175830, 64175570, 64174147, 64140100, 64138874, 64138148, 64137635, 64134486, 64091796, 64091449, 64090703, 64089616, 64089252, 64088268, 64042829, 63841927, 63841926, 63841925, 63841924, 63841923, 63841426, 63840545, 63840103, 63837040, 63836369, 63836019, 63835743, 63830250, 63826512, 63825967, 63789725, 63783027, 63783026, 63783025, 63783024, 63783023, 63783022, 63783021, 63521502, 63521394, 63520894, 63520826, 63520432, 63520016, 63519651, 63517900, 63517652, 63517290, 63511878, 63509810, 63509510, 63509364, 63508531, 63508263, 63507300, 63507093, 63504497, 63504222, 63503537, 63503468, 63503199, 63485316, 63468251, 63468130, 63468038, 63467912, 63467783, 63467659, 63467462, 63467326, 63467143, 63467044, 63465423, 63465133, 63463365, 63463026, 63463014, 63462817, 63457010, 63325222, 63224599, 63223727, 63183340, 63183100, 63182898, 63182749, 63182392, 63182200, 63181030, 63179331, 63178998, 63178597, 63177967, 63177531, 63177145, 63172646, 62493432, 62490423} fmt.Println(len(c))