254 lines
7.6 KiB
Go
254 lines
7.6 KiB
Go
package dadaapi
|
||
|
||
import (
|
||
"fmt"
|
||
"git.rosy.net.cn/baseapi"
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
"git.rosy.net.cn/jx-callback/business/model"
|
||
"go.uber.org/zap"
|
||
"strings"
|
||
"testing"
|
||
)
|
||
|
||
//
|
||
//import (
|
||
// "net/http"
|
||
// "testing"
|
||
//
|
||
// "git.rosy.net.cn/baseapi"
|
||
//
|
||
// "git.rosy.net.cn/baseapi/utils"
|
||
// "go.uber.org/zap"
|
||
//)
|
||
//
|
||
var (
|
||
dadaapi *API
|
||
sugarLogger *zap.SugaredLogger
|
||
testOrder *OperateOrderParams
|
||
)
|
||
|
||
//
|
||
//const (
|
||
// testShopNo = "11047059"
|
||
//)
|
||
//
|
||
func init() {
|
||
logger, _ := zap.NewDevelopment()
|
||
sugarLogger = logger.Sugar()
|
||
baseapi.Init(sugarLogger)
|
||
|
||
// sandbox
|
||
// dadaapi = New("dada9623324449cd250", "30c2abbfe8a8780ad5aace46300c64b9", "73753", "http://callback.jxc4.com/dada/order", false)
|
||
|
||
// prod
|
||
dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true)
|
||
|
||
// prod
|
||
//testOrder = &OperateOrderParams{
|
||
// ShopNo: testShopNo,
|
||
// OriginID: "234242342",
|
||
// CityCode: "028",
|
||
// CargoPrice: 12.34,
|
||
// IsPrepay: 1,
|
||
// ReceiverName: "我是谁",
|
||
// ReceiverAddress: "九里堤",
|
||
// ReceiverLat: 30.74631,
|
||
// ReceiverLng: 103.99112,
|
||
// ReceiverPhone: "12812345678",
|
||
//}
|
||
|
||
}
|
||
|
||
func TestComplaintRider(t *testing.T) {
|
||
err := dadaapi.ComplaintRider("5000952191610480635", 69)
|
||
fmt.Println(err)
|
||
}
|
||
func TestComplaintList(t *testing.T) {
|
||
dadaapi.ComplaintList()
|
||
}
|
||
|
||
func Test222222(t *testing.T) {
|
||
a := 57
|
||
fmt.Println(a&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0)
|
||
fmt.Println((a & 2) != 0)
|
||
fmt.Println((a & 4) != 0)
|
||
}
|
||
|
||
//
|
||
//func TestTest(t *testing.T) {
|
||
// sugarLogger.Debug(utils.GetCurTimeStr())
|
||
//}
|
||
//
|
||
//func TestSignCallback(t *testing.T) {
|
||
// sampleData := `{"signature":"5a277f2519b6011028ff541fb09b8553","client_id":"275000419162381","order_id":"234242342","order_status":1,"cancel_reason":"","cancel_from":0,"dm_id":0,"update_time":1529564947}`
|
||
// mapData := make(map[string]interface{})
|
||
// utils.UnmarshalUseNumber([]byte(sampleData), &mapData)
|
||
// sign := dadaapi.signCallbackParams(mapData)
|
||
// if sign != mapData["signature"] {
|
||
// t.Fatal("sign is not correct")
|
||
// }
|
||
//}
|
||
//
|
||
//func TestAccessAPI(t *testing.T) {
|
||
// body := make(map[string]interface{})
|
||
// body["order_id"] = "fakeorderid"
|
||
// result, err := dadaapi.AccessAPI("api/order/status/query", body)
|
||
//
|
||
// failed := true
|
||
// if err != nil {
|
||
// if err2, ok := err.(*utils.ErrorWithCode); ok {
|
||
// if err2.IntCode() != ResponseCodeSignErr {
|
||
// failed = false
|
||
// }
|
||
// }
|
||
// } else {
|
||
// failed = false
|
||
// }
|
||
//
|
||
// if failed {
|
||
// t.Fatalf("Error when accessing api result:%v, error:%v", result, err)
|
||
// }
|
||
//}
|
||
//
|
||
//func TestGetCites(t *testing.T) {
|
||
// result, err := dadaapi.GetCities()
|
||
// if err != nil {
|
||
// t.Fatal(err.Error())
|
||
// }
|
||
// failed := true
|
||
// for _, city := range result {
|
||
// if city.CityCode == "028" {
|
||
// failed = false
|
||
// }
|
||
// }
|
||
//
|
||
// if failed {
|
||
// t.Fatal("failed")
|
||
// }
|
||
//}
|
||
//
|
||
//func TestGetReasons(t *testing.T) {
|
||
// result, err := dadaapi.GetCancelReasons()
|
||
// if err != nil {
|
||
// t.Fatal(err.Error())
|
||
// }
|
||
// // baseapi.SugarLogger.Debug(result)
|
||
// failed := true
|
||
// for _, reason := range result {
|
||
// if reason.ID == 1 {
|
||
// failed = false
|
||
// }
|
||
// }
|
||
//
|
||
// if failed {
|
||
// t.Fatal("failed")
|
||
// }
|
||
//}
|
||
//
|
||
//func TestAddOrder(t *testing.T) {
|
||
// result, err := dadaapi.AddOrder(testOrder)
|
||
// if err != nil {
|
||
// t.Fatal(err.Error())
|
||
// }
|
||
// t.Fatal(result)
|
||
//}
|
||
//
|
||
//func TestReaddOrder(t *testing.T) {
|
||
// result, err := dadaapi.ReaddOrder(testOrder)
|
||
// if err != nil {
|
||
// t.Fatal(err.Error())
|
||
// }
|
||
// baseapi.SugarLogger.Debug(result)
|
||
//}
|
||
//
|
||
//func TestCancelOrder(t *testing.T) {
|
||
// result, err := dadaapi.CancelOrder("234242342", ReasonIDClientDontWantItAnymore, "")
|
||
// if err != nil {
|
||
// t.Fatal(err.Error())
|
||
// }
|
||
// baseapi.SugarLogger.Debug(result)
|
||
//}
|
||
//
|
||
//func TestCallbackMsgPlayback(t *testing.T) {
|
||
// baseURL := "http://callback.test.jxc4.com:8080/"
|
||
// playbackData := [][]string{
|
||
// []string{
|
||
// "{\"signature\":\"2b10053038eef28af360fa2603d59fd1\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":1,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":0,\"update_time\":1530171995}",
|
||
// baseURL + "dadadelivery/msg",
|
||
// },
|
||
// []string{
|
||
// "{\"signature\":\"14cb9d55179d47de73e09d3b5e800fea\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":2,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530172054}",
|
||
// baseURL + "dadadelivery/msg",
|
||
// },
|
||
// []string{
|
||
// "{\"signature\":\"1058519a18dd8ee8ba6a1638e53bed66\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":3,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173065}",
|
||
// baseURL + "dadadelivery/msg",
|
||
// },
|
||
// []string{
|
||
// "{\"signature\":\"9c7a5d72d4e9bdea7b452f38e5c5a0dc\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":4,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173559}",
|
||
// baseURL + "dadadelivery/msg",
|
||
// },
|
||
// }
|
||
// for _, v := range playbackData {
|
||
// _, err := utils.SendFakeRequest(http.MethodPost, v[1], v[0], "application/json; charset=utf-8")
|
||
// if err != nil {
|
||
// t.Fatal(err)
|
||
// }
|
||
// }
|
||
//}
|
||
|
||
func Test111(t *testing.T) {
|
||
SplitUniversalOrderID("313943552673")
|
||
}
|
||
|
||
func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID int) {
|
||
index := strings.Index(universalOrderID, "|")
|
||
if index != -1 {
|
||
orderID = universalOrderID[:index]
|
||
vendorID = int(utils.Str2Int64(universalOrderID[index+1:]))
|
||
} else {
|
||
if vendorID = GetPossibleVendorIDFromVendorOrderID(universalOrderID); vendorID == -1 {
|
||
panic(fmt.Sprintf("unkown order type, orderID:%s", universalOrderID))
|
||
}
|
||
orderID = universalOrderID
|
||
}
|
||
return orderID, vendorID
|
||
}
|
||
|
||
func GetPossibleVendorIDFromVendorOrderID(vendorOrderID string) (vendorID int) {
|
||
vendorID = -1
|
||
//if vendorOrderIDInt64 := utils.Str2Int64WithDefault(vendorOrderID, 0); vendorOrderIDInt64 > 0 {
|
||
orderIDLen := len(vendorOrderID)
|
||
// 5287873015048 13 wsc
|
||
// 15380342248732 14 old ebai order
|
||
// 800402581000221 15,16 jd order
|
||
// 33437032333978492 17 mtwm order
|
||
// 3022716176275221584 19 elm order, new ebai order
|
||
|
||
// 京东到家从2020年开始订单号的长度都会在现有基础上加一位,订单号的前两位取的是当年的最后两位数(如:2020取的20),以适应业务的发展。
|
||
// 改造点:
|
||
// 1、订单号位数变化,由原有15位数增加1位数调整为16位数,对接商家需检查是否有对订单号位数做长度校验。
|
||
// 2、第一位数字发生变化,由原来9开头调整为当年年份后两位数如:2020年订单开头为20;
|
||
if orderIDLen == len("925265130002541") || orderIDLen == len("1925265130002541") {
|
||
vendorID = 0
|
||
} else if orderIDLen == len("3022716176275221584") {
|
||
// vendorID = model.VendorIDELM
|
||
vendorID = 3 // 饿百零售开放平台订单接口中订单ID“order_id”字段长度将调整为19位,和饿了么订单ID“eleme_order_id”字段格式保持一致。
|
||
} else if orderIDLen == len("15380342248732") {
|
||
if vendorOrderID[:2] == "88" {
|
||
vendorID = 9
|
||
} else {
|
||
vendorID = 3
|
||
}
|
||
} else if orderIDLen == len("33437032333978492") || orderIDLen == len("116379390766579767") {
|
||
vendorID = 1
|
||
} else if orderIDLen == len("5287873015048") {
|
||
vendorID = 11
|
||
} else if orderIDLen == len("1000004390") {
|
||
vendorID = 9
|
||
} else if orderIDLen == len("18100216009800000001") || orderIDLen == len("191075245758000000039") {
|
||
vendorID = 5
|
||
}
|
||
return vendorID
|
||
}
|