package jdapi import ( "net/http" "testing" "git.rosy.net.cn/baseapi" "git.rosy.net.cn/baseapi/utils" "go.uber.org/zap" ) var ( api *API sugarLogger *zap.SugaredLogger ) func init() { logger, _ := zap.NewDevelopment() sugarLogger = logger.Sugar() baseapi.Init(sugarLogger) // sandbox // api = New("594ab45a-9a73-4a43-82b0-a64cbd55d883", "06692746f7224695ad4788ce340bc854", "d6b42a35a7414a5490d811654d745c84") // prod api = New("1c14b86e-54f0-4048-9062-c6aed5438578", "1dba76d40cac446ca500c0391a0b6c9d", "a88d031a1e7b462cb1579f12e97fe7f4") // 天天果园 //api = New("c45e6510-00ba-4be2-977e-bcb9c9792cc7", "5d5577a2506f41b8b4ec520ba83490f5", "0b01b9eeb15b41dab1c3d05d95c17a26") //prod zs // api = New("6f8d3290-0120-4ad7-8b53-943c67c84f3f", "789279b9ae814ba091ac52815566b54d", "5d668cd227644637bb0fd73ed8118ec8") // const cookieValue = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHCT3RM3CQG7IJIPUQ3THS5UIUYWMKINM7ETUOQB7OBPOPZVCT3ZJY55243TDVXLO25PP4UYSPTTPMNQ7HPMWOJKJ3BJWGVHD243MXH7NZWW264TKN5UOCJBSSSOKD2QQII" //const cookieValue = "OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3JWVXCZBKYQN5CW57OZAUUGW26BM5GBMDUKCPJGLYBMEIVPIGG6PY2HOZTQL5PWKCSDJLG7AKSLKUQ422BVJDNQ36DIA74FV7RFQMMQPNJ5YQMCG2M72IH43LZDVSAYZWKUGAVD7VFRMEYTOXYHWCYVDXJ6HYFIPWIN3ULLXDDLN2ICON4GRK" //api.SetJdCookie(cookieValue) //api.SetCookie("user", "VCQUVHVJI4ELNGFZOYMCDYDUSHEJMPXZRZXSNBRB4MVBNENP72REAAZR3R4SGDJ5ZI4FLYLLN5EGBBMTFCWHZVESIWBNLKZPLHWD6UIBTPXOF5IXM6AVA3V6TUNZD5UJS43AROJ2IRPZWEN5AGZYBUEGD2EWFHHT3AOYXZYY4Q2OLWFTVITE5NEOXZXC5NSQWCV6NZG4LREQ6W2UVRSYWKL4Y6X7FXYIKJXSBSCOJ5OVVBPYJL4VDJUHW3P6D73BS6HG6MBXGIW576I6LGDTS6QISBWMZ4QZKVKOUHWBVIEMWKUWC6B6WPMKTCCKNRJ5MDOXFCWFFRK3ET3YXVE3ATQCURQ67HGQGUZFPZ46FQDYCONJQX6ZPVAQSQPDVL3HDBIIYIYDMWKFWXVFNA7BVVYJ34ADKDSEDLEEF5B2PIQZFLSUSODQ") api.SetCookieWithStr(` user_email=jd_jxcs1223; lsp-store1.jddj.com=OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3JNOEL2AB3X2CHI2INRIKCSGSOFKPR3OGH5BQEIVFZZB4KTZI7T3U3XO3AAUS2JMCK2Q75R3CSEA66K7RCJWNQLNB7ZW2SHFCPBWKK2WASIPBG2XVFQKS52PYRKBM4MYVZ4ANKYUYK6KOCYNU7MPQZRGZ7A3RCFZCSP5UJH6H2OTKVR4EGOCXYTZO2DXT6UDKHMIWF7PCFTVIYAVZV6TUYE43JONRCTQBY2PDBQYCB4ONJOEWAF6KFL3GJ3XH26R6E; __jdv=1736810%7Cdirect%7C-%7Cnone%7C-; __jdc=1736810; UM_distinctid=17a12b9cc28176-0928164ed7a903-5b1e341a-1fa400-17a12b9cc292e2; __jda=1736810.1704902685.1623811804.1623811804.1623811914.1; __jdb=1736810.2.1704902685%7C1.1623811914; josl-privilege1.jddj.com=OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3J6FF3QXQNY5NFGN2HASJWWNGKB2PR3OGH5BQEIVFZZB4KTZI7T3VYIKV4CINLIKFY47TGTGUH67RN27RCJWNQLNB7ZW2SHFCPBWKK2WBM3Q57WKXFDV4ZFAFGCLYIRHLLVSPMIG6L6KR7Z24OSIUDC7LA7HQBVLCTBLZJYLBWT5R6DGE3H4C4L7R23TYZA5JMSPJU7HE6MGAWXAMIJ7H54ZWWGP56KATLF26DHPBFC7H6AGN62RYAH3GOOTQMZPFOOK3A5M4RSJGLYDIG2YB3HH35HA; o2o-stock1.jddj.com=OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3KYOICOZSHJDAOYASPERU6MKWOV2PR3OGH5BQEIVFZZB4KTZI7T3VRCNUAXLXU5O5WOKOL4XKHF2Z2IMIOV7EVR4JGDPUMIPCVZVKBP5E4RJGGER5KFUQWJBFZJVCAXQUQ; o2o-pms1.jddj.com=OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3LEUGBETUGPLQ2YNFFBWXWG5QQC2PR3OGH5BQEIVFZZB4KTZI7T3URUJ3JOSPDH72IBC54EZ3WO76GAMIOV7EVR4JGDPUMIPCVZVKBP5E4RJGGER5KFUQWJBFZJVCAXQUQ `) } func TestTest(t *testing.T) { sugarLogger.Debug(utils.GetCurTimeStr()) } func TestAccessAPI(t *testing.T) { result, err := api.AccessAPI("address/allcities", nil) if err != nil { t.Fatalf("Error when accessing AccessAPI: %v", err) } else { code := result["code"].(string) if code != "0" { t.Fatalf("code is not 0, %v", code) } } } func TestAccessAPINoPage(t *testing.T) { result, err := api.AccessAPINoPage("address/allcities", nil, []string{"yn"}, nil, nil) if err != nil { t.Fatalf("TestAccessAPINoPage return error:%v", err) } cityInfo := result.([]interface{}) if len(cityInfo) == 0 { t.Fatal("city info is empty") } oneCity := cityInfo[0].(map[string]interface{}) if _, ok := oneCity["areaName"]; !ok { t.Fatal("no areaName key") } if _, ok := oneCity["yn"]; ok { t.Fatal("yn field havn't been removed") } } func TestAccessAPIHavePage(t *testing.T) { jdParams := map[string]interface{}{ "pageNo": 1, "pageSize": 20, } skuInfo, totalCount, err := api.AccessAPIHavePage("pms/querySkuInfos", jdParams, nil, []string{"skuName", "skuId"}, nil) if err != nil { t.Fatalf("AccessAPIHavePage return error:%v", err) } if len(skuInfo) == 0 || totalCount == 0 { t.Fatal("sku info is empty") } oneSku := skuInfo[0].(map[string]interface{}) if _, ok := oneSku["skuName"]; !ok { t.Fatal("no skuName key") } if _, ok := oneSku["outSkuId"]; ok { t.Fatal("outSkuId key not removed") } } func TestGenerateURL(t *testing.T) { params := make(map[string]interface{}) params["key"] = "v" params["key2"] = "v2" fullURL := utils.GenerateGetURL(prodURL, "address/allcities", params) response, err := http.Get(fullURL) if err != nil { t.Fatalf("Get return error:%v", err) } defer response.Body.Close() } func TestJdMap2StructByJson(t *testing.T) { testStr := ` { "stationNo": "11053496", "stationName": "京西菜市-三平台测试门店4", "outSystemId": "2", "mobile": "18109051396", "phone": "13684045765", "lat": 34.224367, "lng": 108.726791, "city": 2376, "county": 50231, "stationAddress": "西安市长安区长安区", "serviceTimeEnd1": 47, "serviceTimeStart1": 1, "closeStatus": 1, "allowRangeOptimized": 0, "cacheKey4StoreList": "_sn_11053496vi_82029p_2376c_2376co_50231oi_2wt_2sne_京西菜市-三平台测试门店4sa_西安市长安区长安区yn_0pe_2", "carrierNo": 9966, "cityName": "西安市", "coordinate": "108.726791,34.224367", "coordinateAddress": "韩南村", "countyName": "长安区", "createPin": "jd_jxcs8285", "createTime": { "day": 4, "hours": 13, "minutes": 33, "seconds": 22, "time": 1470893602321, "timezoneOffset": -480, "date": 11, "month": 7, "year": 116 }, "id": 123108, "industryTag": 3, "innerNoStatus": 1, "isAutoOrder": 0, "isMembership": 0, "isNoPaper": 2, "onlineTime": 1470893602123, "orderAging": 60, "orderNoticeType": 1, "preWarehouse": 2, "province": 2376, "provinceName": "西安市", "qualifyStatus": 2, "regularFlag": 3, "stationDeliveryStatus": 2, "supportInvoice": 0, "supportOfflinePurchase": 0, "testMark": 0, "timeAmType": 1, "timePmType": 0, "ts": { "day": 2, "hours": 16, "minutes": 22, "seconds": 13, "time": 1571127733000, "timezoneOffset": -480, "date": 15, "month": 9, "year": 119 }, "updatePin": "jxadmin-zhouyang", "updateTime": 1571127733, "venderId": "82029", "venderName": "测试京西菜市", "wareType": 2, "whiteDelivery": false, "yn": 0 } ` var rawData interface{} err := utils.UnmarshalUseNumber([]byte(testStr), &rawData) if err != nil { t.Fatal(err) } var store *StoreDetail err = JdMap2StructByJson(rawData, &store, true) if err != nil { t.Fatal(err) } if store.CreateTime.GoTime().Unix() != 1470893602 || store.OnlineTime.GoTime().Unix() != 1470893602 || store.UpdateTime.GoTime().Unix() != 1571127733 { t.Fatalf("%d,%d,%d", store.CreateTime.GoTime().Unix(), store.OnlineTime.GoTime().Unix(), store.UpdateTime.GoTime().Unix()) } t.Log(utils.Format4Output(store, false)) t.Log(store.CreateTime) }