From b582b554939d1f0fc4c657858dbd5d8832018a69 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 29 Nov 2019 15:29:25 +0800 Subject: [PATCH 1/3] =?UTF-8?q?ProcessQuestionPic=E4=B8=AD=E5=A4=84?= =?UTF-8?q?=E7=90=86=E4=BA=AC=E4=B8=9C=E8=BF=94=E5=9B=9E=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E5=9B=BE=E7=89=87=E5=9C=B0=E5=9D=80=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/jdapi/order.go | 17 +++++++++++++---- platformapi/jdapi/order_test.go | 26 ++++++++++++++++++++++++++ platformapi/jdapi/store_test.go | 2 +- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/platformapi/jdapi/order.go b/platformapi/jdapi/order.go index 4a40a73b..2ce8c9b3 100644 --- a/platformapi/jdapi/order.go +++ b/platformapi/jdapi/order.go @@ -10,7 +10,8 @@ import ( ) const ( - AfsPicPrefix = "http://img10.360buyimg.com/o2o" + AfsPicPrefix = "http://img10.360buyimg.com/o2o" + AfsPicPrefixHttps = "https://img10.360buyimg.com/o2o" ) const ( @@ -675,11 +676,19 @@ func (a *API) AfsSubmit(OrderID, pin, questionTypeCode, questionDesc, questionPi } func ProcessQuestionPic(questionPic string) (outQuestionPic string) { + const httpsPrefix = "https:" if questionPic != "" { picList := strings.Split(questionPic, ",") - picList2 := make([]string, len(picList)) - for index, pic := range picList { - picList2[index] = AfsPicPrefix + "/" + pic + var picList2 []string + for _, pic := range picList { + baseURL := AfsPicPrefix + pic2 := strings.ReplaceAll(pic, httpsPrefix, "") + if pic2 != pic { + baseURL = AfsPicPrefixHttps + } + if pic2 = utils.TrimBlankChar(pic2); pic2 != "" { + picList2 = append(picList2, utils.GenerateGetURL(baseURL, pic2, nil)) + } } outQuestionPic = strings.Join(picList2, ",") } diff --git a/platformapi/jdapi/order_test.go b/platformapi/jdapi/order_test.go index b95119c4..e8c8ad39 100644 --- a/platformapi/jdapi/order_test.go +++ b/platformapi/jdapi/order_test.go @@ -259,3 +259,29 @@ func TestCheckSelfPickCode(t *testing.T) { t.Fatal(err.Error()) } } + +func TestProcessQuestionPic(t *testing.T) { + for _, v := range [][]string{ + []string{ + "http://img10.360buyimg.com/o2o/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", + }, + []string{ + "https://img10.360buyimg.com/o2o/jfs/a.jpg", + ",https:jfs/a.jpg", + }, + []string{ + "", + ",https:", + }, + } { + str := ProcessQuestionPic(v[1]) + if str != v[0] { + t.Fatalf("%s, desired:%s, but its:%s", v[1], v[0], str) + } + } +} diff --git a/platformapi/jdapi/store_test.go b/platformapi/jdapi/store_test.go index 0c809544..33531478 100644 --- a/platformapi/jdapi/store_test.go +++ b/platformapi/jdapi/store_test.go @@ -153,7 +153,7 @@ func TestUpdateStoreFreightConfigNew(t *testing.T) { } func TestPrivilegeSearchUser(t *testing.T) { - result, err := api.PrivilegeSearchUser(1, 1) + result, _, _, err := api.PrivilegeSearchUser(1) if err != nil { t.Fatal(err) } From dd1399d17367affbae2693570770294d12ff761e Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 29 Nov 2019 16:26:13 +0800 Subject: [PATCH 2/3] =?UTF-8?q?comment:=E9=A5=BF=E7=99=BE=E5=9C=A8?= =?UTF-8?q?=E5=8F=91=E9=80=81=E8=BF=90=E5=8D=95=E5=8F=96=E6=B6=88=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=90=8E=EF=BC=8C=E5=A6=82=E6=9E=9C=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=8F=8A=E6=97=B6=EF=BC=88=E5=85=B7=E4=BD=93?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=9C=AA=E7=9F=A5=EF=BC=89=E8=BD=AC=E5=87=BA?= =?UTF-8?q?=E8=87=AA=E9=80=81=EF=BC=8C=E5=88=99=E8=AE=A2=E5=8D=95=E4=BC=9A?= =?UTF-8?q?=E8=A2=AB=E5=8F=96=E6=B6=88=EF=BC=8C=E4=B8=94=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E5=8F=91=E9=80=81=E8=AE=A2=E5=8D=95=E5=8F=96=E6=B6=88=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/ebaiapi/order.go | 2 ++ platformapi/ebaiapi/order_test.go | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/platformapi/ebaiapi/order.go b/platformapi/ebaiapi/order.go index c7a144cb..78c98d99 100644 --- a/platformapi/ebaiapi/order.go +++ b/platformapi/ebaiapi/order.go @@ -36,6 +36,8 @@ const ( WaybillStatusWait4Courier = "4" // 等待分配骑士 WaybillStatusCourierAccepted = "7" // 骑士接单 WaybillStatusCourierPickedup = "8" // 骑士取餐 + // 饿百在发送运单取消事件后,如果订单没有及时(具体时间未知)转出自送,则订单会被取消,且不会发送订单取消事件 + // https://open-be.ele.me/dev/answer/reedit?list_id=23667&question=my WaybillStatusDeliveryCancled = "15" // 配送取消 WaybillStatusFinished = "16" // 配送完成 WaybillStatusExceptional = "17" // 配送异常 diff --git a/platformapi/ebaiapi/order_test.go b/platformapi/ebaiapi/order_test.go index 23aa6924..4a9582b8 100644 --- a/platformapi/ebaiapi/order_test.go +++ b/platformapi/ebaiapi/order_test.go @@ -7,7 +7,7 @@ import ( ) func TestOrderGet(t *testing.T) { - result, err := api.OrderGet("1572950448227442318") + result, err := api.OrderGet("1574590633159550053") if err != nil { t.Fatal(err) } else { @@ -16,7 +16,7 @@ func TestOrderGet(t *testing.T) { } func TestOrderGet2(t *testing.T) { - result, err := api.OrderGet2("1572950448227442318") + result, err := api.OrderGet2("1574550169196474502") if err != nil { t.Fatal(err) } else { @@ -81,6 +81,13 @@ func TestOrderCallDelivery(t *testing.T) { } } +func TestOrderSwitchselfdelivery(t *testing.T) { + err := api.OrderSwitchselfdelivery("1574550169196474502") + if err != nil { + t.Fatal(err) + } +} + func TestOrderSendOut(t *testing.T) { err := api.OrderSendOut("1555731848221773250", "") if err != nil { @@ -104,7 +111,7 @@ func TestOrderPrivateInfo(t *testing.T) { } func TestOrderDeliveryGet(t *testing.T) { - result, err := api.OrderDeliveryGet("15421782068884") + result, err := api.OrderDeliveryGet("1574550169196474502") if err != nil { t.Fatal(err) } From cf1dc1d6a2d8ac2757fa8088981260ab8a2ae733 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 30 Nov 2019 14:08:58 +0800 Subject: [PATCH 3/3] mtwmapi.ParseErr4RetailDiscountDelete --- platformapi/mtwmapi/act.go | 27 +++++++++++++++++++++++---- platformapi/mtwmapi/act_test.go | 14 ++++++++++++-- platformapi/mtwmapi/comment_test.go | 7 +++++++ platformapi/mtwmapi/mtwmapi.go | 5 ++++- 4 files changed, 46 insertions(+), 7 deletions(-) diff --git a/platformapi/mtwmapi/act.go b/platformapi/mtwmapi/act.go index 0caac913..a82826e3 100644 --- a/platformapi/mtwmapi/act.go +++ b/platformapi/mtwmapi/act.go @@ -175,6 +175,11 @@ type CouponActInfo struct { Status int `json:"status"` // 活动状态 } +type ActItemErrMsg struct { + ActID int64 `json:"act_id"` + ErrorMsg string `json:"error_msg"` +} + // 批量创建指定商品满减活动或创建店内满减活动 // http://developer.waimai.meituan.com/home/docDetail/255 func (a *API) FullDiscountBatchSave(poiCode string, actInfo *FullDiscountActInfo, actList []*FullDiscountActDetail, actSkuList []*FullDiscountSku) (actIDList []int64, err error) { @@ -318,15 +323,19 @@ func (a *API) FulllDiscountShippingFeeBatchDelete(poiCode string, actIDList []st // 批量创建或更新零售折扣商品 // http://developer.waimai.meituan.com/home/docDetail/287 -func (a *API) RetailDiscountBatchSave(poiCode string, actData []*RetailDiscountActData) (actResult []*RetailDiscountActResult, err error) { +func (a *API) RetailDiscountBatchSave(poiCode string, actData []*RetailDiscountActData) (actResult []*RetailDiscountActResult /*failedList []*AppFoodResult, */, err error) { result, err := a.AccessAPI2("act/retail/discount/batchsave", false, map[string]interface{}{ KeyAppPoiCode: poiCode, "act_data": string(utils.MustMarshal(actData)), - }, resultKeySuccessMsg, "") + }, "", "") if err == nil { - err = utils.UnmarshalUseNumber([]byte(result.(string)), &actResult) + resultMap := result.(map[string]interface{}) + err = utils.UnmarshalUseNumber([]byte(resultMap[resultKeySuccessMsg].(string)), &actResult) + // if err == nil { + // failedList, err = handleRetailBatchResult(resultMap[resultKeyMsg]) + // } } - return actResult, err + return actResult /*failedList, */, err } // 查询门店零售折扣商品 @@ -367,6 +376,16 @@ func (a *API) RetailDiscountDelete(poiCode string, actIDList []string) (err erro return err } +func ParseErr4RetailDiscountDelete(err error) (failedList []*ActItemErrMsg) { + if errExt, ok := err.(*utils.ErrorWithCode); ok { + var mapData map[string]interface{} + if err := utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &mapData); err == nil { + utils.Map2StructByJson(mapData["error_list"], &failedList, false) + } + } + return failedList +} + // 批量修改零售折扣商品当日活动库存 // http://developer.waimai.meituan.com/home/docDetail/290 func (a *API) RetailDiscountBatchStock(poiCode, actDataList []*RetailDiscountActDataLimit) (err error) { diff --git a/platformapi/mtwmapi/act_test.go b/platformapi/mtwmapi/act_test.go index cd280ed2..ec9db282 100644 --- a/platformapi/mtwmapi/act_test.go +++ b/platformapi/mtwmapi/act_test.go @@ -65,14 +65,14 @@ func TestFulllDiscountShippingFeeList(t *testing.T) { func TestRetailDiscountBatchSave(t *testing.T) { result, err := api.RetailDiscountBatchSave(testPoiCode, []*RetailDiscountActData{&RetailDiscountActData{ - AppFoodCode: "5246", + AppFoodCode: "1140", UserType: UserTypeAll, StartTime: time.Now().Unix(), EndTime: time.Now().Add(24 * time.Hour).Unix(), OrderLimit: 1, DayLimit: 1, SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.7, + DiscountCoefficient: 0.97, }}) if err != nil { t.Fatal(err) @@ -102,3 +102,13 @@ func TestInStoreCouponList(t *testing.T) { } t.Log(utils.Format4Output(result, false)) } + +func TestParseErr4RetailDiscountDelete(t *testing.T) { + errStr := ` + {"error_list":[{"act_id":1053302130,"error_msg":"活动ID不存在"},{"act_id":1053302127,"error_msg":"活动ID不存在"},{"act_id":1053302128,"error_msg":"活动ID不存在"},{"act_id":1053302129,"error_msg":"活动ID不存在"},{"act_id":1053302135,"error_msg":"活动ID不存在"},{"act_id":1053302132,"error_msg":"活动ID不存在"},{"act_id":1053302123,"error_msg":"活动ID不存在"},{"act_id":1053302125,"error_msg":"活动ID不存在"},{"act_id":1053302124,"error_msg":"活动ID不存在"},{"act_id":1053302133,"error_msg":"活动ID不存在"},{"act_id":1053302126,"error_msg":"活动ID不存在"},{"act_id":1053302134,"error_msg":"活动ID不存在"},{"act_id":1053302131,"error_msg":"活动ID不存在"}]} + + ` + errExt := utils.NewErrorCode(errStr, "") + failedList := ParseErr4RetailDiscountDelete(errExt) + t.Log(utils.Format4Output(failedList, false)) +} diff --git a/platformapi/mtwmapi/comment_test.go b/platformapi/mtwmapi/comment_test.go index 155e56ba..3be549d6 100644 --- a/platformapi/mtwmapi/comment_test.go +++ b/platformapi/mtwmapi/comment_test.go @@ -13,3 +13,10 @@ func TestCommentQuery(t *testing.T) { } t.Log(utils.Format4Output(result, false)) } + +func TestCommentAddReply(t *testing.T) { + err := api.CommentAddReply("24617232", 2947288966, "非常抱歉让您没有得到十分满意的购物体验,我们会及时与您联系进行确认并解决问题!") + if err != nil { + t.Fatal(err) + } +} diff --git a/platformapi/mtwmapi/mtwmapi.go b/platformapi/mtwmapi/mtwmapi.go index 1738a494..3b79013a 100644 --- a/platformapi/mtwmapi/mtwmapi.go +++ b/platformapi/mtwmapi/mtwmapi.go @@ -165,7 +165,6 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{ if jsonResult1 == nil { return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil") } - retVal = jsonResult1[resultKey] if errObj, ok := jsonResult1["error"]; ok { baseapi.SugarLogger.Debugf("mtwm AccessAPI failed, jsonResult1:%s", utils.Format4Output(jsonResult1, true)) errorInfo := errObj.(map[string]interface{}) @@ -176,6 +175,10 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{ return platformapi.ErrLevelRecoverableErr, newErr } return platformapi.ErrLevelCodeIsNotOK, newErr + } else if resultKey != "" { + retVal = jsonResult1[resultKey] + } else { + retVal = jsonResult1 } return platformapi.ErrLevelSuccess, nil })