diff --git a/platformapi/jdapi/im_test.go b/platformapi/jdapi/im_test.go index 3ef001d4..ae40e7b9 100644 --- a/platformapi/jdapi/im_test.go +++ b/platformapi/jdapi/im_test.go @@ -28,17 +28,6 @@ func TestImWaiterStatusModify(t *testing.T) { api.ImWaiterStatusModify(1, "19854102", 1) } -func TestImMsgChange(t *testing.T) { - data := &JdParamJsonObj{ - StatusId: "", - BillId: "320406", - ExtendJsonData: "{\"ver\":\"4.2\",\"fromChannelId\":-1,\"mid\":376841421,\"body\":{\"chatinfo\":{\"venderId\":\"store_10352814_1000051632\",\"firstMsg\":true,\"source\":\"jimitwo_service_smart_sdk\",\"IMService\":false,\"repeatConsult\":1,\"sid\":\"8b457541accd5e63eb4845f94c4852e8\",\"oGroupId\":113057083,\"askType\":\"o2o\",\"appId\":\"im.waiter\",\"verification\":\"slide\",\"repeatHuman\":1,\"isJdSuperMarket\":\"0\",\"deviceNo\":\"dd_dvc_aes_73FF2098F02392E999FE00A26817AE212E55DF89C9D405370B4B09A908F3A355\",\"label\":1,\"storeId\":\"1000051632\",\"oSid\":\"9ec16e789610328114db937025384666\",\"distinguishPersonJimi\":2,\"proVer\":\"smart_android_15.2.90\",\"entry\":\"sdk_recent\",\"askAllocateType\":\"multiChat\",\"leaveMsgTable\":1,\"venderName\":\"京西菜市-新都三河店\",\"disputeId\":-1,\"ddSessionType\":\"1\",\"systemVer\":\"android_12_BRA-AL00\",\"eidtoken\":\"jdd01SVZE72NCBZ6AXTRFHLIRLNUSF25PCOYF4OPNU3BOITK5SR62TUHMBIDGFBOYGQ7TWY7WRDPLHA3LP6NME42NE5IQNXASKIGJA6ULRAI01234567\",\"region\":\"CN\"},\"llmStream\":0,\"thumbnail\":\"\",\"param\":{\"$ref\":\"$.body.chatinfo\"},\"type\":\"text\",\"requestData\":{\"entry\":\"sdk_recent\",\"venderId\":\"store_10352814_1000051632\"},\"content\":\"低处不胜暖\",\"sid\":\"8b457541accd5e63eb4845f94c4852e8\"},\"type\":\"chat_message\",\"clientTime\":1765873013013,\"datetime\":1765873013299,\"len\":0,\"from\":{\"app\":\"im.customer\",\"art\":\"\",\"clientType\":\"android\",\"pin\":\"jd_52db6569f724f\"},\"subType\":\"text\",\"id\":\"bdf9475389e94265835d90c41912629c\",\"to\":{\"app\":\"im.waiter\",\"pin\":\"liyang12345ly\"},\"lang\":\"zh_CN\",\"timestamp\":1765873013299}", - StoreId: "11998833", - Timestamp: "2025-12-16 16:16:53", - } - ImMsgChange(data, "msChatMessage") -} - func Test(t *testing.T) { api.MessagePushService(&ContextMsg{ Id: "1766037788592184572_Q12", diff --git a/platformapi/jdapi/order_test.go b/platformapi/jdapi/order_test.go index d3cdba8b..cc947691 100644 --- a/platformapi/jdapi/order_test.go +++ b/platformapi/jdapi/order_test.go @@ -179,11 +179,11 @@ func TestProcessQuestionPic(t *testing.T) { for _, v := range [][]string{ []string{ "http://img10.360buyimg.com/o2o/jfs/a.jpg", - ",,,jfs/a.jpg", + ",jfs/a.jpg", }, []string{ "http://img10.360buyimg.com/o2o/jfs/a.jpg,https://img10.360buyimg.com/o2o/jfs/b.jpg", - " , ,, jfs/a.jpg,https:jfs/b.jpg", + " , , jfs/a.jpg,https:jfs/b.jpg", }, []string{ "https://img10.360buyimg.com/o2o/jfs/a.jpg", diff --git a/platformapi/jdapi/sku_test.go b/platformapi/jdapi/sku_test.go index 32498078..98449f77 100644 --- a/platformapi/jdapi/sku_test.go +++ b/platformapi/jdapi/sku_test.go @@ -129,6 +129,11 @@ func TestNewAddSku(t *testing.T) { globals.SugarLogger.Debugf("--------result := %v", err) } +func TestUpdateCurrentQty(t *testing.T) { + err1 := api.UpdateCurrentQty(utils.Int64ToStr(time.Now().Unix()), "23988364", 2023436550, 9999) + fmt.Println(err1) +} + func TestNewAddSku2(t *testing.T) { param := map[string]interface{}{ "traceId": "33F7CD45502711F190B1525400E86DC0,18981810340", diff --git a/platformapi/jdapi/store_sku.go b/platformapi/jdapi/store_sku.go index c403c7b8..cff60bfa 100644 --- a/platformapi/jdapi/store_sku.go +++ b/platformapi/jdapi/store_sku.go @@ -410,12 +410,11 @@ type JDSkuList struct { func (a *API) UnBindStoreGoods(skuId int64) { jdParams := map[string]interface{}{ "skuId": skuId, - "stationNo": "14986394", + "stationNo": "23988364", "opPin": "liulei", } - data, err := a.AccessAPINoPage("StoreGoodsPlatformService/unBindStoreGoods", jdParams, nil, nil, genNoPageResultParser("code", "msg", "data", "0")) + _, err := a.AccessAPINoPage("StoreGoodsPlatformService/unBindStoreGoods", jdParams, nil, nil, genNoPageResultParser("code", "msg", "data", "0")) if err != nil { return } - fmt.Println(data) } diff --git a/platformapi/jdapi/store_sku_test.go b/platformapi/jdapi/store_sku_test.go index 03207566..56898857 100644 --- a/platformapi/jdapi/store_sku_test.go +++ b/platformapi/jdapi/store_sku_test.go @@ -2,10 +2,9 @@ package jdapi import ( "fmt" - "sync" - "testing" - "git.rosy.net.cn/baseapi/utils" + "testing" + "time" ) const ( @@ -126,47 +125,38 @@ func TestBatchUpdateCurrentQtys(t *testing.T) { //baseapi.SugarLogger.Debug(utils.Format4Output(result, false)) } -type Object2222 struct { - Clients map[string]int - *sync.RWMutex -} +var data = []int64{} -func NewTcpClient222() *Object2222 { - t := &Object2222{ - Clients: make(map[string]int), - } - t.RWMutex = new(sync.RWMutex) - return t -} -func TestLock(t *testing.T) { - obj := NewTcpClient222() - go func() { - fmt.Println("1") - for i := 0; i < 100000; i++ { - obj.setParam(utils.Int2Str(i), i) - } - }() - - go func() { - fmt.Println("2") - for i := 0; i < 100000; i++ { - fmt.Println(obj.getParam(utils.Int2Str(i))) - } - }() - - for i := 0; i < 100000; i++ { - fmt.Println(obj.Clients[utils.Int2Str(i)]) +func TestUnBindStoreGoods(t *testing.T) { + for _, v := range data { + api.UnBindStoreGoods(v) + fmt.Println(v) + time.Sleep(200 * time.Microsecond) } } -func (t *Object2222) setParam(key string, v int) { - t.Lock() - defer t.Unlock() - t.Clients[key] = v -} +var data2 = []int64{} -func (t *Object2222) getParam(key string) int { - t.RLock() - defer t.RUnlock() - return t.Clients[key] +func TestUpdateSku2(t *testing.T) { + i2 := len(data2) % 50 + if i2 != 0 { + i2 = len(data2)/50 + 1 + } else { + i2 = len(data2) / 50 + } + + for i := 0; i < i2; i++ { + + bility := make([]*StockVendibility, 0, 50) + for _, v := range data2 { + bility = append(bility, &StockVendibility{OutSkuId: utils.Int64ToStr(v), DoSale: false}) + fmt.Println(v) + } + + _, err := api.BatchUpdateVendibility("liulei", "", "23988364", bility, "test") + if err != nil { + fmt.Println(err.Error()) + } + time.Sleep(200 * time.Microsecond) + } } diff --git a/platformapi/mtwmapi/bill_list.go b/platformapi/mtwmapi/bill_list.go index b8c13eba..6306efb7 100644 --- a/platformapi/mtwmapi/bill_list.go +++ b/platformapi/mtwmapi/bill_list.go @@ -95,6 +95,51 @@ func (a *API) GetStoreBillList(param *Bill) (map[string]*SettleOrderList, []*Bil return nil, fineList, settleID, nil } +//京西菜市(高攀店) 33797914 成都市 17508251223 0.00 10.00 10.00 100.0 4.0 0 0 6214862811223223 实时 +//0.00 0.00 0.00 0.00 7030017.00 席伟 17508251223 席伟 17508251223 0.00 0.00 40.87 0.00 0.00 0.00 +//0.00 0.00 0.00 0.00 0.4 1.5 6.00 0.00 28.26 684.0 0.0 40.87 34.87 -692.21 -692.21 0.00 + +func (a *API) GetStoreBillList2(param *Bill) (map[string]*SettleOrderList, []*BillListData, int64, error) { + var settleAmount int64 = 0 // 平台实际结算 + var promotionServiceFee int64 = 0 + var activityPoiAmount int64 = 0 + var activityAgentAmount int64 = 0 + var platformChargeFee int64 = 0 + var performanceServiceFee int64 = 0 + + for { + result, err := a.AccessAPI3("bill/list", true, utils.Struct2Map(param, "", false)) + if err != nil { + return nil, nil, 0, err + } + + var data *StoreBillListRes + if err := utils.Map2StructByJson(result, &data, false); err != nil { + return nil, nil, 0, err + } + + for i := 0; i < len(data.Data); i++ { + settleAmount += data.Data[i].SettleAmount + promotionServiceFee += data.Data[i].PromotionServiceFee + activityPoiAmount += data.Data[i].ActivityPoiAmount + activityAgentAmount += data.Data[i].ActivityAgentAmount + platformChargeFee += data.Data[i].PlatformChargeFee + performanceServiceFee += data.Data[i].PerformanceServiceFee + } + + if int64(data.ExtraInfo.TotalCount) >= (param.Offset * param.Limit) { + param.Offset += param.Limit + } else { + break + } + + } + + fmt.Println(settleAmount) + fmt.Println(promotionServiceFee) + return nil, nil, 0, nil +} + // StoreBillListReq 门店结算查询条件 type StoreBillListReq struct { AppPoiCode string `json:"app_poi_code"` // APP方门店id diff --git a/platformapi/mtwmapi/bill_list_test.go b/platformapi/mtwmapi/bill_list_test.go index de89ad5b..d304cfda 100644 --- a/platformapi/mtwmapi/bill_list_test.go +++ b/platformapi/mtwmapi/bill_list_test.go @@ -8,11 +8,10 @@ import ( ) func TestBillList(t *testing.T) { - now := time.Now() - from := time.Date(now.Year(), now.Month(), now.Day()-5, 0, 0, 0, 0, time.Local) - to := time.Date(now.Year(), now.Month(), now.Day()-1, 23, 59, 59, 59, time.Local) + from := time.Date(2026, 7, 13, 0, 0, 0, 0, time.Local) + to := time.Date(2026, 7, 19, 23, 59, 59, 59, time.Local) param := &Bill{ - AppPoiCode: "14799080", + AppPoiCode: "33797914", StartDate: from.Unix(), EndDate: to.Unix(), Offset: 0, @@ -20,7 +19,7 @@ func TestBillList(t *testing.T) { AccessToken: api.token, } - _, fine, _, err := api.GetStoreBillList(param) + _, fine, _, err := api.GetStoreBillList2(param) if err != nil { globals.SugarLogger.Debugf("err := %v", err) return diff --git a/platformapi/mtwmapi/mtwmapi.go b/platformapi/mtwmapi/mtwmapi.go index 599cd923..9c49dbd4 100644 --- a/platformapi/mtwmapi/mtwmapi.go +++ b/platformapi/mtwmapi/mtwmapi.go @@ -208,6 +208,16 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{ return platformapi.ErrLevelCodeIsNotOK, newErr } } + } else if errObj2, ok := jsonResult1["error_list"]; ok { + errorInfo := errObj2.([]interface{}) + errStr := "" + code := int64(0) + for _, v := range errorInfo { + errStr += v.(map[string]interface{})["msg"].(string) + code = utils.MustInterface2Int64(v.(map[string]interface{})["code"]) + } + newErr := utils.NewErrorIntCode(errStr, int(code)) + return platformapi.ErrLevelCodeIsNotOK, newErr } return platformapi.ErrLevelSuccess, nil }) diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index 0c5a6113..5dde0edc 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -371,6 +371,17 @@ type GetRiderDeliveryPath struct { //} `json:"data"` } +// ReviewAfterSalesInfo 售后参数 +type ReviewAfterSalesInfo struct { + WmOrderIdView int64 `json:"wm_order_id_view"` // 订单展示ID + RefundId int64 `json:"refund_id"` // 售后单ID + ReviewType int `json:"review_type"` // 0-同意退货;1-同意退款或同意仅退款无需退货;2-驳回退货/退款。 + RejectReasonCode int `json:"reject_reason_code"` // 驳回code,当review_type=2必填 + RejectOtherReason string `json:"reject_other_reason"` // 驳回原因说明,当reject_reason_code = -1 必填 + IsReturnGoods int `json:"is_return_goods"` // 是否需要返货 0-不返货/1-返货 review_type=1时选填,不传默认为0, + OutOfStockItemIds string `json:"out_of_stock_item_ids"` // 商品行item_id,多个item_id之间用逗号隔开,当订单有多个商品时 +} + func (a *API) OrderReceived(orderID int64) (err error) { _, err = a.AccessAPI("order/poi_received", true, map[string]interface{}{ KeyOrderID: orderID, @@ -462,6 +473,7 @@ func (a *API) OrderArrived(orderID int64) (err error) { return err } +// OrderRefundAgree 同意售后 func (a *API) OrderRefundAgree(orderID int64, reason string) (err error) { _, err = a.AccessAPI("order/refund/agree", true, map[string]interface{}{ KeyOrderID: orderID, @@ -470,6 +482,7 @@ func (a *API) OrderRefundAgree(orderID int64, reason string) (err error) { return err } +// OrderRefundReject 拒绝售后 func (a *API) OrderRefundReject(orderID int64, reason string) (err error) { _, err = a.AccessAPI("order/refund/reject", true, map[string]interface{}{ KeyOrderID: orderID, @@ -478,6 +491,12 @@ func (a *API) OrderRefundReject(orderID int64, reason string) (err error) { return err } +// ReviewAfterSales 新版售后要求 +func (a *API) ReviewAfterSales(param *ReviewAfterSalesInfo) (err error) { + _, err = a.AccessAPI("ecommerce/order/reviewAfterSales", true, utils.Struct2MapByJson(param)) + return err +} + func (a *API) OrderApplyPartRefund(orderID int64, reason string, removeSkuList []*RefundSku) (err error) { _, err = a.AccessAPI("order/applyPartRefund", false, map[string]interface{}{ KeyOrderID: orderID, @@ -864,7 +883,7 @@ func (a *API) GetOrderAddress(orderId int64, reasonType int) (address string, er // UploadMediaToOrder 订单上传图片,订单在骑手取货前且未超过订单预计送达时间时可以进行图片上传 func (a *API) UploadMediaToOrder(orderId string, images interface{}) error { byteData := utils.MustMarshal(images) - _, err := a.AccessAPI("ecommerce/order/uploadMedia", false, map[string]interface{}{"order_id": orderId, "media_list": string(byteData)}) + _, err := a.AccessAPI2("ecommerce/order/uploadMedia", false, map[string]interface{}{"order_id": orderId, "media_list": string(byteData)}, "error_list", "") if err != nil { return err } diff --git a/platformapi/mtwmapi/order_page_test.go b/platformapi/mtwmapi/order_page_test.go index 29e5fb23..452d130d 100644 --- a/platformapi/mtwmapi/order_page_test.go +++ b/platformapi/mtwmapi/order_page_test.go @@ -50,3 +50,15 @@ func TestGetRecommendSku(t *testing.T) { } api.GetRecommendSku(param, "") } + +func TestReviewAfterSales(t *testing.T) { + api.ReviewAfterSales(&ReviewAfterSalesInfo{ + WmOrderIdView: 2002231460826744707, + RefundId: 86155877585, + ReviewType: 0, + RejectReasonCode: 0, + RejectOtherReason: "", + IsReturnGoods: 1, + OutOfStockItemIds: "", + }) +} diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index 7d130c33..afd4c1b1 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -31,7 +31,7 @@ func getTimeFromTimestamp(timeStamp int64) time.Time { } func TestOrderGetOrderDetail(t *testing.T) { - result, err := api.OrderGetOrderDetail(2602201502045507987, false) + result, err := api.OrderGetOrderDetail(3502231341944704147, false) if err != nil { t.Fatal(err) } @@ -487,7 +487,7 @@ func TestGetOrderAddress(t *testing.T) { } func TestUploadMediaToOrder(t *testing.T) { - api.UploadMediaToOrder("2202182431134417666", []string{"https://img.meituan.net/retailsp/12b8489847a14dbf128527aa2c7dfbd448308.jpg"}) + api.UploadMediaToOrder("4102234401395379455", []string{"https://img.meituan.net/retailsp/12b8489847a14dbf128527aa2c7dfbd448308.jpg"}) } func Test111(t *testing.T) { diff --git a/platformapi/mtwmapi/retail_test.go b/platformapi/mtwmapi/retail_test.go index af60d205..4d6c5081 100644 --- a/platformapi/mtwmapi/retail_test.go +++ b/platformapi/mtwmapi/retail_test.go @@ -439,18 +439,18 @@ func TestRetailDelete(t *testing.T) { // 测试删除门店分类列表 func TestDeleteCat(t *testing.T) { - result, err := api.RetailCatList("33889953") + result, err := api.RetailCatList("33998402") fmt.Println(result, err) for _, v := range result { if v.Children != nil { for _, v2 := range v.Children { - err = api.RetailCatDelete("33889953", "", v2.Name, 1) + err = api.RetailCatDelete("33998402", "", v2.Name, 1) if err != nil { t.Fatal(err) } } } else { - err = api.RetailCatDelete("33889953", "", v.Name, 1) + err = api.RetailCatDelete("33998402", "", v.Name, 1) if err != nil { continue t.Fatal(err)