diff --git a/platformapi/ebaiapi/order_test.go b/platformapi/ebaiapi/order_test.go index 31bd596c..d6250771 100644 --- a/platformapi/ebaiapi/order_test.go +++ b/platformapi/ebaiapi/order_test.go @@ -112,7 +112,7 @@ func TestOrderPrivateInfo(t *testing.T) { } func TestOrderDeliveryGet(t *testing.T) { - result, err := api.OrderDeliveryGet("1574550169196474502") + result, err := api.OrderDeliveryGet("4033300102969791105") if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/mtwmapi_test.go b/platformapi/mtwmapi/mtwmapi_test.go index 75a6a131..bf0ba738 100644 --- a/platformapi/mtwmapi/mtwmapi_test.go +++ b/platformapi/mtwmapi/mtwmapi_test.go @@ -20,10 +20,10 @@ func init() { baseapi.Init(sugarLogger) // 菜市 - api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "") + //api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "") // 果园 - //api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "") + api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "") //商超 //api = New("5873", "41c479790a76f86326f89e8048964739", "", "") //token_nH_IlcWQKAkZBqklwItNRw diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index 2fe114d9..59621145 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -3,6 +3,7 @@ package mtwmapi import ( "fmt" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" "strings" "testing" "time" @@ -18,14 +19,14 @@ func TestOrderViewStatus(t *testing.T) { } func TestOrderGetOrderDetail(t *testing.T) { - result, err := api.OrderGetOrderDetail(1100335050573312765, false) + result, err := api.OrderGetOrderDetail(1100449970093397157, false) if err != nil { t.Fatal(err) } if len(result) == 0 { t.Fatal("result should have value") } - t.Log(utils.Format4Output(result, false)) + globals.SugarLogger.Debugf("%s", utils.Format4Output(result, false)) } func TestOrderGetOrderDetail2(t *testing.T) { diff --git a/platformapi/mtwmapi/retail.go b/platformapi/mtwmapi/retail.go index 807d2264..9ff2623d 100644 --- a/platformapi/mtwmapi/retail.go +++ b/platformapi/mtwmapi/retail.go @@ -34,7 +34,7 @@ const ( // {"attrId":1200000275,"attrName":"是否有机","valueList":[{"valueId //200002667,200002713 MtwmSkuAttr200002670 = `[{"attrId":1200000202,"attrName":"品种","valueList":[{"valueId":1300000249,"value":"其他"}]},{"attrId":1200000287,"attrName":"特产品种","valueList":[{"valueId":1300003951,"value":"非特产品种"}]},{"attrId":1200000094,"attrName":"产地","valueList":[{"valueId":100000050,"value":"中国"}]},{"attrId":1200000132,"attrName":"国产/进口","valueList":[{"valueId":1300000003,"value":"国产"}]},{"attrId":1200000286,"attrName":"果品品牌","valueList":[{"valueId":1300000249,"value":"其他"}]}]` //MtwmSkuAttr200002680 = `[{"attrId":1200000289,"attrName":"品规","valueList":[{"valueId":1300004255,"value":"未区分品规"}]},{"attrId":1200000202,"attrName":"品种","valueList":[{"valueId":1300000249,"value":"其他"}]},{"attrId":1200000094,"attrName":"产地","valueList":[{"valueId":100000050,"value":"中国"}]},{"attrId":1200000132,"attrName":"国产/进口","valueList":[{"valueId":1300000003,"value":"国产"}]},{"attrId":1200000286,"attrName":"果品品牌","valueList":[{"valueId":1300000249,"value":"其他"}]}]` - MtwmSkuAttr200002680 = `[{"attrId":1200004607,"attrName":"水果形态","valueList":[{"valueId":1300017364,"value":"新鲜整果"}]},{"attrId":1200004608,"attrName":"单果重量","valueList":[{"valueId":1300004271,"value":"4kg~4.5kg"}]},{"attrId":1200000202,"attrName":"品种","valueList":[{"valueId":1300000249,"value":"其他"}]},{"attrId":1200000094,"attrName":"产地","valueList":[{"valueId":100000050,"value":"中国"}]},{"attrId":1200000132,"attrName":"国产/进口","valueList":[{"valueId":1300000003,"value":"国产"}]},{"attrId":1200000286,"attrName":"果品品牌","valueList":[{"valueId":1300000249,"value":"其他"}]}]` + MtwmSkuAttr200002680 = `[{"attrId":1200004607,"attrName":"水果形态","valueList":[{"valueId":1300017364,"value":"新鲜整果"}]},{"attrId":1200004608,"attrName":"单果重量","valueList":[{"valueId":1300017449,"value":"约4.5kg~5kg"}]},{"attrId":1200000202,"attrName":"品种","valueList":[{"valueId":1300000249,"value":"其他"}]},{"attrId":1200000094,"attrName":"产地","valueList":[{"valueId":100000050,"value":"中国"}]},{"attrId":1200000132,"attrName":"国产/进口","valueList":[{"valueId":1300000003,"value":"国产"}]},{"attrId":1200000286,"attrName":"果品品牌","valueList":[{"valueId":1300000249,"value":"其他"}]}]` ) var ( diff --git a/platformapi/tiktok_shop/222/dd_test.go b/platformapi/tiktok_shop/222/dd_test.go deleted file mode 100644 index 81bce186..00000000 --- a/platformapi/tiktok_shop/222/dd_test.go +++ /dev/null @@ -1,652 +0,0 @@ -package _22 - -import ( - "fmt" - "testing" -) - -var ddId = []int64{ - 3592874112982368249, - 3592874112940433384, - 3592744342617513942, - 3592744342583915237, - 3592874190300147609, - 3592874190182716852, - 3592744267514307517, - 3592744267514307518, - 3592876722099516085, - 3592876722065951498, - 3592874737925265106, - 3592874737858139868, - 3592874361931079567, - 3592874362115593491, - 3592744246073029217, - 3592744243925530274, - 3592874117168262707, - 3592874117235398789, - 3592875133020295634, - 3592875132928047816, - 3592875311303377588, - 3592875311118859624, - 3592875607555443133, - 3592875607656121909, - 3592874194595104394, - 3592874194477702630, - 3592744767785707224, - 3592744767735336038, - 3592876337733461607, - 3592876337616009832, - 3592579467513589810, - 3592579467412927143, - 3592706293468649462, - 3592706293535784889, - 3592744920382871323, - 3592744920391263249, - 3592706650059989389, - 3592706649900605011, - 3592875158647518351, - 3592875158823638485, - 3592875472297590656, - 3592875472297590658, - 3592875730062691828, - 3592875729878181516, - 3592579796070209506, - 3592579795944352814, - 3592579821840004272, - 3592579821714192028, - 3592876056463423982, - 3592876056295648209, - 3592707010677855976, - 3592707010795324965, - 3592579952777756852, - 3592579954992392786, - 3592745126415478421, - 3592745126415478423, - 3592876445040536891, - 3592876445040536892, - 3592874701317357464, - 3592874701283795174, - 3592706899184901160, - 3592706899008729117, - 3595274789255833614, - 3595274789138382989, - 3592875914612068298, - 3592875914746322223, - 3592707279230777862, - 3592707279113351382, - 3592580320056211507, - 3592580320022659986, - 3592744727117718996, - 3592744729265219568, - 3592707307215142972, - 3592707307030587925, - 3592745233739324364, - 3592745233789643596, - 3592579203188538144, - 3592579203331137922, - 3595275714653476099, - 3595275714653476100, - 3592745238218837831, - 3592745238151698214, - 3592745227347183385, - 3592745227347183387, - 3592707133268978134, - 3592707133227016709, - 3592583597057513876, - 3592583596990407672, - 3595275293864146035, - 3595275293797001232, - 3592580736609295960, - 3592580736542230482, - 3592745459384494613, - 3592745457127966928, - 3592875463749567642, - 3592875461627264447, - 3592876949699215849, - 3592876949699215846, - 3592876954061278574, - 3592876954061278578, - 3595275130730871566, - 3595275130655360773, - 3592707015148991459, - 3592707015090296881, - 3592876752256520160, - 3592876752264948230, - 3592880454526750420, - 3592880454392533150, - 3592747909688486367, - 3592747911810800008, - 3592876599793569838, - 3592876599609044830, - 3595275718998772843, - 3595275719065925781, - 3592877989081306705, - 3592877989081306701, - 3592581015664725906, - 3592581015782163353, - 3592877222429635324, - 3592877222547030149, - 3592582942041494281, - 3592582942007929873, - 3592877737959918413, - 3592877737892801190, - 3592581174737953495, - 3592581174746295391, - 3592877688550988674, - 3592877688383229551, - 3592877112975072431, - 3592877112907926506, - 3592877499572454983, - 3592877499580844036, - 3592746024189439676, - 3592746024197827307, - 3592877046461762524, - 3592877046335972286, - 3592877078497858311, - 3592877080762828568, - 3592877308328969516, - 3592877308463199281, - 3592706924937930626, - 3592706924963041149, - 3592581451603962805, - 3592581451763319584, - 3592879271263256001, - 3592879271238071971, - 3592581610568027710, - 3592581610702301157, - 3592581627747951625, - 3592581627815037921, - 3595275139304062736, - 3595275139312445832, - 3592878453071975489, - 3592878452887422635, - 3592876958356210371, - 3592876958423367151, - 3595275442099240023, - 3595275442116016769, - 3592581720215560776, - 3592581720089723007, - 3595275257289827609, - 3595275257289827610, - 3592707137522007318, - 3592707137429707847, - 3592877982705944081, - 3592877982773075902, - 3592581784547786704, - 3592581784547786705, - 3595275869448483181, - 3595275869456848589, - 3592582141130708434, - 3592582140996510817, - 3592707159030370174, - 3592707158971693380, - 3592581833906353832, - 3592581833856051516, - 3592707807394302824, - 3592707807444604679, - 3592877933380945634, - 3592877933196408451, - 3592581447392856405, - 3592581447451553341, - 3592877984786310479, - 3592877984786310480, - 3592582145383730226, - 3592582145291487480, - 3592582218373058171, - 3592582218431742670, - 3592879047790718816, - 3592879047740367380, - 3592582308533802487, - 3592582308500241784, - 3595276730589444142, - 3595276730463553916, - 3592746058373027057, - 3592746058490469678, - 3592877594070126043, - 3592877593893972540, - 3592582422350407239, - 3592582422409118259, - 3592877909624416528, - 3592877909758587717, - 3595275847847822453, - 3595275847797484427, - 3592878302563559290, - 3592878302613891355, - 3595275852209857367, - 3595275852142751066, - 3595274718405594296, - 3595274718363681415, - 3592582579083190468, - 3592582579150283180, - 3592582585659866418, - 3592582585592737507, - 3592582589887707260, - 3592582589946438767, - 3592707648665035870, - 3592707648530860027, - 3592707670139884174, - 3592707669955340571, - 3592878476560042076, - 3592878478833407691, - 3595275980991772195, - 3595275980991772196, - 3592877213965536802, - 3592877213839659392, - 3592877780775400640, - 3592877780842483681, - 3592748023496758301, - 3592748023320591733, - 3592583053794499430, - 3592583053802888779, - 3595275985236455798, - 3595275985236455797, - 3595276592974310188, - 3595276593167228935, - 3592879913360821134, - 3592879913360821135, - 3592878794454754516, - 3592878794337330504, - 3592583167560830566, - 3592583167443390264, - 3592583174003234873, - 3592583174003234874, - 3595275289451726903, - 3595275289451726904, - 3592879150995783227, - 3592879150962226825, - 3592878916794242429, - 3592878916911635068, - 3595276983958949521, - 3595276983816351033, - 3595274971624168076, - 3595274971825482993, - 3592879578286290819, - 3592879578168870786, - 3592878382070782235, - 3592878382196627598, - 3592878291985540158, - 3592878291876447565, - 3592878577525328438, - 3592878577491779009, - 3592706570494029867, - 3592706570561178803, - 3592877503749958113, - 3592877503875795438, - 3592583680809406656, - 3592583680868094654, - 3595277308086325755, - 3595277308136683479, - 3592878833134616506, - 3592878833042387007, - 3595275965909096649, - 3595275965959375455, - 3595276386866171557, - 3595276386933329551, - 3592877447915383702, - 3592877447915383705, - 3592880136682347034, - 3592880136632038159, - 3592707614305288517, - 3592707614171077306, - 3592878957663539795, - 3592878957546087011, - 3592580274967437972, - 3592580274782866808, - 3592707691480544588, - 3592707691547640995, - 3592879621202428503, - 3592879621277914105, - 3592880673469399403, - 3592880673385484725, - 3592878399317760827, - 3592878399359730452, - 3592879077989684432, - 3592879077964550463, - 3592879034855518921, - 3592879034905840484, - 3592879717805608953, - 3592879717839165600, - 3592583124678223806, - 3592583124577576623, - 3592584337821952103, - 3592584338006534661, - 3595276490062856667, - 3595276490088042269, - 3592747080625605329, - 3592747080759782354, - 3592584576360445299, - 3592584576276519767, - 3592584580487633241, - 3592584580537946902, - 3592584584832939618, - 3592584584832939616, - 3592879752115012197, - 3592879752115012192, - 3592747806609258845, - 3592747806424753522, - 3592584627782567638, - 3592584627916796246, - 3592584634342447894, - 3592584634174684110, - 3592879756410027959, - 3592879756410027958, - 3592880465197016328, - 3592880465129934240, - 3592584150990855178, - 3592584150990855180, - 3595276721965906807, - 3595276721991120207, - 3592879174601281178, - 3592879172344800421, - 3595276784150649431, - 3595276784301663462, - 3595276726168595710, - 3595276726118315682, - 3592880905481493661, - 3592880905489903645, - 3592584056686149618, - 3592584056677747287, - 3592879900450810541, - 3592879900291382002, - 3592878257516755226, - 3592878257650959920, - 3592876659881165060, - 3592876659923121364, - 3592746956138629355, - 3592746956071556656, - 3592748317702021062, - 3592748317609750925, - 3592880254626211945, - 3592880254743650219, - 3592585192696642313, - 3592585192688215660, - 3592586212625517845, - 3592586212625517844, - 3592708657982366547, - 3592708657848187656, - 3592880690749931956, - 3592880692830330698, - 3592747769917494885, - 3592747770102046767, - 3592748094187541522, - 3592748094304977025, - 3592708668585594347, - 3592708668652682995, - 3595277333906480878, - 3595277333856158113, - 3592880843221286867, - 3592880843204494692, - 3592880729337535342, - 3592880729303961913, - 3592585501934269683, - 3592585501808436938, - 3592746947481573812, - 3592746947481573811, - 3592880697125255297, - 3592880697183986668, - 3595277312431644708, - 3595277312381296630, - 3595276079725735061, - 3595276079927013434, - 3592585641394839530, - 3592585641344549950, - 3592585742326576605, - 3592585742452448664, - 3592585753156299642, - 3592585753064006340, - 3592585757358982306, - 3592585757358982307, - 3592585768096393968, - 3592585768096393970, - 3592881371435118565, - 3592881371401603263, - 3592881684850304905, - 3592881684850304907, - 3592747946170578806, - 3592747946128593609, - 3592879722134162651, - 3592879722100609546, - 3592586064575001967, - 3592586062301659912, - 3592879258193762965, - 3592879258311243793, - 3592881330683260996, - 3592881328552586998, - 3595277327464051187, - 3595277327464051186, - 3592708784658744199, - 3592708784675524355, - 3592880306165795448, - 3592880306341949939, - 3592877029223186318, - 3592877029265156457, - 3592586395295856826, - 3592586397434925778, - 3592748545159086097, - 3592748545318485237, - 3592880093564939823, - 3592880095896973072, - 3592881959778519818, - 3592881959778519823, - 3592880673502970826, - 3592880673502970829, - 3592881502431659706, - 3592881502498718756, - 3592748156464588479, - 3592748156514920477, - 3595277870911631455, - 3595277870777406388, - 3592586597159294199, - 3592586597092174289, - 3592880798057028774, - 3592880798082202717, - 3592881964073531969, - 3592881964073531973, - 3592881906217315323, - 3592881906183702955, - 3592586910591277024, - 3592586910557693906, - 3592881985548346799, - 3592881985548346796, - 3592881989977554036, - 3592881989977554038, - 3592881564750642632, - 3592881564733861471, - 3592586996549305549, - 3592586996457043544, - 3592748510849665709, - 3592748510967154417, - 3592881137359436272, - 3592881137409722530, - 3592587080301156250, - 3592587080158557910, - 3592877186048201463, - 3592877185922426340, - 3592877082843201263, - 3592877082843201265, - 3592877072055444195, - 3592877072055444193, - 3592881373582596894, - 3592881371502227741, - 3595278147802793477, - 3595278147752444226, - 3595277806503890513, - 3595277806470348862, - 3592587007194479417, - 3592587007227990144, - 3592748772976941741, - 3592748772792347130, - 3592877181744845712, - 3592877181753276213, - 3592587350791824629, - 3592587350825372054, - 3592586992254345145, - 3592586992271157136, - 3592882221905757908, - 3592882221897383343, - 3592708937054571146, - 3592708937054571147, - 3592877024995342343, - 3592877024928267254, - 3592882464386850812, - 3592882464470729298, - 3595278137132475383, - 3595278137015023673, - 3592882565402524824, - 3592882565494763519, - 3592879037179102577, - 3592879037002968161, - 3592881931928353175, - 3592881931995486704, - 3592744479972534409, - 3592744480157106912, - 3592875624810859507, - 3592875624810859506, - 3592875296203909139, - 3592875296136791147, - 3592878102847587118, - 3592878102897935612, - 3592876840269780957, - 3592876840177518109, - 3592876717838076991, - 3592876717770957632, - 3592748571088306219, - 3592748571046363981, - 3592748549571505296, - 3592748549454082711, - 3592876827410064233, - 3592876827359762271, - 3592877993443363842, - 3592877993510500705, - 3592881936189800134, - 3592881936248535081, - 3592747707799840506, - 3592747707690834981, - 3592747692658398170, - 3592747692608066856, - 3592747868819221472, - 3592747866738832055, - 3592878173873915099, - 3592878173831998876, - 3592878193209639829, - 3592878193159351086, - 3595276341861344083, - 3595276341903287928, - 3592876709181044503, - 3592876709181044501, - 3592880997840105564, - 3592880997655547593, - 3592748354175643228, - 3592748354150509429, - 3592881201842639017, - 3592881201842639018, - 3592882288410633241, - 3592882288410633238, - 3592748777171205176, - 3592748777271879303, - 3592877016271214939, - 3592877016220848388, - 3592747759180101626, - 3592747759297544581, - 3595276700398780919, - 3595276700398780921, - 3592747117082470219, - 3592747117199911262, - 3592881556118760740, - 3592881556001283376, - 3592708690177850566, - 3592708690060408623, - 3592881274680920101, - 3592881274798405739, - 3592881274865453906, - 3592881274731263317, - 3592881351990335712, - 3592881352107792971, - 3592881128702385567, - 3592881128836575273, - 3592706282865459829, - 3592706282840314360, - 3592583208388173122, - 3592583206148423521, - 3592745583863053944, - 3592745583779165176, - 3592878496021628601, - 3592878495996473416, - 3592584146695934374, - 3592584146695934377, - 3592881981253409613, - 3592881981203050547, - 3592746762932225799, - 3592746762915473170, - 3592586749563519648, - 3592586749446062727, - 3592879299113403015, - 3592879299138569897, - 3592881425172594285, - 3592881425189314362, - 3592747454421946914, - 3592747454237395040, - 3592880490899740552, - 3592880491033937718, - 3595277651801199624, - 3595277651868292922, - 3592880085159534683, - 3592880084974980679, - 3592708653502827415, - 3592708653553179781, - 3592881096490127568, - 3592881096624326756, - 3592876649143752159, - 3592876649001148175, - 3595277810597557438, - 3595277810647854190, - 3592881725652513009, - 3592881725702827503, - 3592877020700399907, - 3592877020566160067, - 3592876348353424056, - 3592876348529601153, - 3592882380718895833, - 3592882380819545110, - 3592876913141645931, - 3592876913141645934, - 3592878053455468553, - 3592878053623257702, - 3592880175169277423, - 3592880175328720082, - 3592748817889518885, - 3592748818057329000, - 3592881133131569487, - 3592881132997340055, - 3592881422974724476, - 3592881422857326447, - 3592877005533794464, - 3592877005533794465, - 3592745607518910355, - 3592745607586020751, - 3592746492340927665, - 3592746492349296178, - 3592747048413351235, - 3592747048530772186, - 3592879232423975728, - 3592879232474312161, - 3592881154505710711, - 3592881154539267723, - 3595277501552843658, - 3595277501410225911, - 3595276543766727635, - 3595276543758352999, -} - -func TestDdDelete(t *testing.T) { - fmt.Println(len(ddId)) -} - -func TestC222(t *testing.T) { - var map1 = make(map[int64]int, - 0) - for _, v := range ddId { - map1[v] = 1 - } - fmt.Println(len(map1)) -} diff --git a/platformapi/tiktok_shop/ascription_place/dd_test.go b/platformapi/tiktok_shop/ascription_place/dd_test.go new file mode 100644 index 00000000..d113d922 --- /dev/null +++ b/platformapi/tiktok_shop/ascription_place/dd_test.go @@ -0,0 +1,11 @@ +package ascription_place + +import ( + "testing" +) + +func TestAscriptionPlace(t *testing.T) { + //p, err := Find("18744776542") + //fmt.Println(p) + //fmt.Println(err) +} diff --git a/platformapi/tiktok_shop/ascription_place/phone.dat b/platformapi/tiktok_shop/ascription_place/phone.dat new file mode 100644 index 00000000..34bcab7f Binary files /dev/null and b/platformapi/tiktok_shop/ascription_place/phone.dat differ diff --git a/platformapi/tiktok_shop/ascription_place/phonedata.go b/platformapi/tiktok_shop/ascription_place/phonedata.go new file mode 100644 index 00000000..5d631e03 --- /dev/null +++ b/platformapi/tiktok_shop/ascription_place/phonedata.go @@ -0,0 +1,182 @@ +package ascription_place + +import ( + "bytes" + "errors" + "fmt" + "io/ioutil" +) + +const ( + CMCC byte = iota + 0x01 //中国移动 + CUCC //中国联通 + CTCC //中国电信 + CTCC_v //电信虚拟运营商 + CUCC_v //联通虚拟运营商 + CMCC_v //移动虚拟运营商 + INT_LEN = 4 + CHAR_LEN = 1 + HEAD_LENGTH = 8 + PHONE_INDEX_LENGTH = 9 + PHONE_DAT = "phone.dat" +) + +type PhoneRecord struct { + PhoneNum string + Province string + City string + ZipCode string + AreaZone string + CardType string +} + +var ( + content []byte + CardTypemap = map[byte]string{ + CMCC: "中国移动", + CUCC: "中国联通", + CTCC: "中国电信", + CTCC_v: "中国电信虚拟运营商", + CUCC_v: "中国联通虚拟运营商", + CMCC_v: "中国移动虚拟运营商", + } + total_len, firstoffset int32 +) + +func init() { + //dir := os.Getenv("PHONE_DATA_DIR") + //if dir == "" { + // _, fulleFilename, _, _ := runtime.Caller(0) + // dir = path.Dir(fulleFilename) + //} + + var err error + content, err = ioutil.ReadFile(PHONE_DAT) //path.Join(dir, PHONE_DAT) + if err != nil { + panic(err) + } + total_len = int32(len(content)) + firstoffset = get4(content[INT_LEN : INT_LEN*2]) +} + +func Debug() { + fmt.Println(version()) + fmt.Println(totalRecord()) + fmt.Println(firstRecordOffset()) +} + +func (pr PhoneRecord) String() string { + return fmt.Sprintf("PhoneNum: %s\nAreaZone: %s\nCardType: %s\nCity: %s\nZipCode: %s\nProvince: %s\n", pr.PhoneNum, pr.AreaZone, pr.CardType, pr.City, pr.ZipCode, pr.Province) +} + +func get4(b []byte) int32 { + if len(b) < 4 { + return 0 + } + return int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 +} + +func getN(s string) (uint32, error) { + var n, cutoff, maxVal uint32 + i := 0 + base := 10 + cutoff = (1<<32-1)/10 + 1 + maxVal = 1<= byte(base) { + return 0, errors.New("invalid syntax") + } + + if n >= cutoff { + // n*base overflows + n = (1<<32 - 1) + return n, errors.New("value out of range") + } + n *= uint32(base) + + n1 := n + uint32(v) + if n1 < n || n1 > maxVal { + // n+v overflows + n = (1<<32 - 1) + return n, errors.New("value out of range") + } + n = n1 + } + return n, nil +} + +func version() string { + return string(content[0:INT_LEN]) +} + +func totalRecord() int32 { + return (int32(len(content)) - firstRecordOffset()) / PHONE_INDEX_LENGTH +} + +func firstRecordOffset() int32 { + return get4(content[INT_LEN : INT_LEN*2]) +} + +// 二分法查询phone数据 +func Find(phone_num string) (pr *PhoneRecord, err error) { + if len(phone_num) < 7 || len(phone_num) > 11 { + return nil, errors.New("illegal phone length") + } + + var left int32 + phone_seven_int, err := getN(phone_num[0:7]) + if err != nil { + return nil, errors.New("illegal phone number") + } + phone_seven_int32 := int32(phone_seven_int) + right := (total_len - firstoffset) / PHONE_INDEX_LENGTH + for { + if left > right { + break + } + mid := (left + right) / 2 + offset := firstoffset + mid*PHONE_INDEX_LENGTH + if offset >= total_len { + break + } + cur_phone := get4(content[offset : offset+INT_LEN]) + record_offset := get4(content[offset+INT_LEN : offset+INT_LEN*2]) + card_type := content[offset+INT_LEN*2 : offset+INT_LEN*2+CHAR_LEN][0] + switch { + case cur_phone > phone_seven_int32: + right = mid - 1 + case cur_phone < phone_seven_int32: + left = mid + 1 + default: + cbyte := content[record_offset:] + end_offset := int32(bytes.Index(cbyte, []byte("\000"))) + data := bytes.Split(cbyte[:end_offset], []byte("|")) + card_str, ok := CardTypemap[card_type] + if !ok { + card_str = "未知电信运营商" + } + pr = &PhoneRecord{ + PhoneNum: phone_num, + Province: string(data[0]), + City: string(data[1]), + ZipCode: string(data[2]), + AreaZone: string(data[3]), + CardType: card_str, + } + return + } + } + return nil, errors.New("phone's data not found") +} diff --git a/platformapi/tiktok_shop/tiktok_api/api_test.go b/platformapi/tiktok_shop/tiktok_api/api_test.go index 942bddd3..89b5955a 100644 --- a/platformapi/tiktok_shop/tiktok_api/api_test.go +++ b/platformapi/tiktok_shop/tiktok_api/api_test.go @@ -94,5 +94,5 @@ func TestOrderStatusAndPsInfo(t *testing.T) { } func TestMap(t *testing.T) { - fmt.Println((57 & 16) != 0) + fmt.Println((57 & 2) != 0) }