Merge branch 'master' of e.coding.net:rosydev/baseapi

This commit is contained in:
苏尹岚
2019-12-02 09:55:09 +08:00
9 changed files with 98 additions and 15 deletions

View File

@@ -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" // 配送异常

View File

@@ -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)
}

View File

@@ -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, ",")
}

View File

@@ -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)
}
}
}

View File

@@ -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)
}

View File

@@ -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) {

View File

@@ -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))
}

View File

@@ -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)
}
}

View File

@@ -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
})