Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
4253173a
Commit
4253173a
authored
Apr 01, 2021
by
宋毅
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
渠道增加
parent
1b34e4d4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
287 additions
and
237 deletions
+287
-237
igirl-channel/app/base/service/impl/trademark/tmquerySve.js
+253
-231
igirl-channel/app/base/utils/execClient.js
+34
-6
No files found.
igirl-channel/app/base/service/impl/trademark/tmquerySve.js
View file @
4253173a
...
...
@@ -4,247 +4,269 @@ const _ = require("lodash")
const
md5
=
require
(
"MD5"
);
class
TmqueryService
{
constructor
()
{
this
.
channelApiUrl
=
"https://tm.plus.jdcloud.com"
;
this
.
zcApiUrl
=
settings
.
reqZcApi
();
this
.
reqEsAddr
=
settings
.
reqEsAddr
();
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
}
/**
* 验证签名
* @param {*} params 要验证的参数
* @param {*} app_key 应用的校验key
* @param {*} isEmptySign params key 对应值为空是否参与签名
*/
createSign
(
params
,
app_key
,
isEmptySign
)
{
if
(
!
params
)
{
return
system
.
getResult
(
null
,
"请求参数为空"
);
}
var
signArr
=
[];
var
keys
=
Object
.
keys
(
params
).
sort
();
if
(
keys
.
length
==
0
)
{
return
system
.
getResult
(
null
,
"请求参数信息为空"
);
}
for
(
let
k
=
0
;
k
<
keys
.
length
;
k
++
)
{
const
tKey
=
keys
[
k
];
if
(
tKey
!=
"sign"
)
{
if
(
tKey
!=
"token"
)
{
if
(
tKey
!=
"actionProcess"
)
{
if
(
isEmptySign
)
{
signArr
.
push
(
tKey
+
"="
+
params
[
tKey
]);
}
else
{
if
(
params
[
tKey
])
{
signArr
.
push
(
tKey
+
"="
+
params
[
tKey
]);
}
}
}
}
}
}
if
(
signArr
.
length
==
0
)
{
return
system
.
getResult
(
null
,
"请求参数组装签名参数信息为空"
);
}
var
resultSignStr
=
signArr
.
join
(
"&"
)
+
"&key="
+
app_key
;
var
resultTmpSign
=
md5
(
resultSignStr
).
toUpperCase
();
return
system
.
getResultSuccess
(
resultTmpSign
);
}
async
findTrademarkNameAccurate
(
queryobj
,
req
)
{
//通过商标名来进行精准查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkNameAccurate"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findTrademarkNameIndex
(
queryobj
,
req
)
{
//根据商标名称模糊查询,首次查询,
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkNameIndex"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findTrademarkName
(
queryobj
,
req
)
{
//根据商标名称模糊查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkName"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findTrademarkzchAccurate
(
queryobj
,
req
)
{
//通过商标号来进行精准查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkzchAccurate"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findTrademarkzcr
(
queryobj
,
req
)
{
//通过注册人模糊查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkzcr"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
imagequery
(
queryobj
,
req
)
{
//图像检索
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/imagequery"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findImageSearch
(
queryobj
,
req
)
{
//图像检索查询,
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findImageSearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
tradeMarkDetail
(
queryobj
,
req
)
{
//商标详情
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/tradeMarkDetail"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
sbzuixinsearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/sbzuixinsearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticequeryTMZCSQ
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticequeryTMZCSQ"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticequery
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticequery"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticezcggsearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticezcggsearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticesearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticesearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
getCompanyInfoNoUser
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/getCompanyInfoNoUser"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
getNclDetail
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/getNclDetail"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
gettwoNcl
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/gettwoNcl"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
nclFuwuSearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/nclFuwuSearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
opReqResult
(
reqUrl
,
queryobj
,
req
)
{
var
rtn
=
await
this
.
execClient
.
execPushDataPost
(
queryobj
,
reqUrl
,
req
.
headers
[
"token"
],
req
.
headers
[
"request-id"
]);
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
return
data
;
}
async
pushJdPayOrder
(
queryobj
,
req
)
{
constructor
()
{
this
.
channelApiUrl
=
"https://tm.plus.jdcloud.com"
;
this
.
zcApiUrl
=
settings
.
reqZcApi
();
this
.
reqEsAddr
=
settings
.
reqEsAddr
();
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
}
/**
* 请求es 拿出数据,组装
* 验证签名
* @param {*} params 要验证的参数
* @param {*} app_key 应用的校验key
* @param {*} isEmptySign params key 对应值为空是否参与签名
*/
let
failOrders
=
[];
try
{
const
data
=
await
this
.
execClient
.
execPost
({
"query"
:
{
"bool"
:
{
"must"
:
[
{
"query_string"
:
{
"default_field"
:
"optitle"
,
"query"
:
"
\"
###处理京东推送的订单信息参数
\"
"
}
}
]
}
},
"from"
:
0
,
"size"
:
2000
,
"sort"
:
[
{
"created_at"
:
"desc"
}
]
},
`
${
this
.
reqEsAddr
}
bigdata_zc_op_log/_search`
);
let
result
=
data
.
stdout
;
result
=
JSON
.
parse
(
result
);
result
=
result
.
hits
.
hits
;
result
=
_
.
uniqBy
(
result
.
map
(
item
=>
{
return
JSON
.
parse
(
item
.
_source
.
content
.
replace
(
/pushData参数=/g
,
""
))
}).
filter
(
item
=>
{
return
item
.
skuId
}),
"orderNumber"
).
filter
(
item
=>
{
const
signResult
=
this
.
createSign
(
item
,
"F6FBD101C7571ADE231670F080653874"
,
true
);
if
(
signResult
.
status
!=
0
||
signResult
.
data
!=
item
.
token
.
toUpperCase
())
{
failOrders
.
push
({
errMsg
:
"签名失败"
,
param
:
item
});
return
false
}
else
{
return
true
;
createSign
(
params
,
app_key
,
isEmptySign
)
{
if
(
!
params
)
{
return
system
.
getResult
(
null
,
"请求参数为空"
);
}
});
var
tokenInfo
=
await
this
.
getToken
();
if
(
tokenInfo
.
status
!=
0
)
{
return
tokenInfo
;
}
let
buildResult
=
[];
for
(
let
pushData
of
result
)
{
//自助注册产品---用updateOrderPayStatus,否则为addOrderAndDelivery
let
param
=
{
actionProcess
:
pushData
.
actionProcess
,
actionType
:
""
,
actionBody
:
{
channelUserId
:
pushData
.
jdPin
,
payStatus
:
"yfk"
,
channelItemCode
:
pushData
.
skuId
,
//------用此字段查询渠道产品是否存在
needNo
:
pushData
.
skuId
+
"_"
+
pushData
.
orderNumber
,
needNoOrderNo
:
pushData
.
orderNumber
,
//---用此字段查找
buyerMoblie
:
pushData
.
mobile
,
payCode
:
pushData
.
skuId
,
email
:
pushData
.
email
},
isUser
:
"yes"
};
if
([
"FW_GOODS-582206-1"
,
"FW_GOODS-582208-1"
,
"FW_GOODS-582207-1"
].
indexOf
(
pushData
.
skuId
)
>=
0
)
{
param
.
actionType
=
pushData
.
skuId
==
"FW_GOODS-582206-1"
?
"updateOrderPayStatusJd"
:
"addOrderAndDelivery"
;
}
//商标的产品订单
else
{
param
.
actionBody
.
channelItemCode
=
pushData
.
serviceCode
;
param
.
actionType
=
"jdAddQifuOrder"
;
}
//工商产品订单
let
reqUrl
=
this
.
channelApiUrl
+
"/action/tmOrder/springBoard"
;
let
rtn
=
await
this
.
execClient
.
execPushDataPost
(
param
,
reqUrl
,
tokenInfo
.
data
.
token
,
req
.
headers
[
"request-id"
]);;
if
(
!
rtn
||
!
rtn
.
stdout
)
{
failOrders
.
push
(
{
orderNumber
:
item
.
orderNumber
,
errMsg
:
"this.execClient.execPushDataPost无返回"
}
)
var
signArr
=
[];
var
keys
=
Object
.
keys
(
params
).
sort
();
if
(
keys
.
length
==
0
)
{
return
system
.
getResult
(
null
,
"请求参数信息为空"
);
}
let
data
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
data
.
status
===
0
)
{
buildResult
.
push
({
...
data
,
param
})
}
else
{
failOrders
.
push
(
{
param
,
errMsg
:
data
for
(
let
k
=
0
;
k
<
keys
.
length
;
k
++
)
{
const
tKey
=
keys
[
k
];
if
(
tKey
!=
"sign"
)
{
if
(
tKey
!=
"token"
)
{
if
(
tKey
!=
"actionProcess"
)
{
if
(
isEmptySign
)
{
signArr
.
push
(
tKey
+
"="
+
params
[
tKey
]);
}
else
{
if
(
params
[
tKey
])
{
signArr
.
push
(
tKey
+
"="
+
params
[
tKey
]);
}
}
}
}
}
)
}
}
return
{
successOrders
:
buildResult
,
failOrders
};
}
catch
(
error
)
{
console
.
log
(
error
)
return
system
.
getResultFail
(
-
200
,
"操作error"
);
if
(
signArr
.
length
==
0
)
{
return
system
.
getResult
(
null
,
"请求参数组装签名参数信息为空"
);
}
var
resultSignStr
=
signArr
.
join
(
"&"
)
+
"&key="
+
app_key
;
var
resultTmpSign
=
md5
(
resultSignStr
).
toUpperCase
();
return
system
.
getResultSuccess
(
resultTmpSign
);
}
async
findTrademarkNameAccurate
(
queryobj
,
req
)
{
//通过商标名来进行精准查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkNameAccurate"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findTrademarkNameIndex
(
queryobj
,
req
)
{
//根据商标名称模糊查询,首次查询,
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkNameIndex"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findTrademarkName
(
queryobj
,
req
)
{
//根据商标名称模糊查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkName"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
}
async
getToken
()
{
var
reqTokenUrl
=
this
.
channelApiUrl
+
"/auth/accessAuth/getToken"
;
var
reqParam
=
{};
var
rtn
=
await
this
.
execClient
.
execPost
({
appkey
:
"201911251551"
,
secret
:
"56006077354d48858026c80c0e10bef6"
},
reqTokenUrl
);
if
(
!
rtn
.
stdout
)
{
return
system
.
getResult
(
null
,
"获取token失败"
);
async
findTrademarkzchAccurate
(
queryobj
,
req
)
{
//通过商标号来进行精准查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkzchAccurate"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
var
tokenResult
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
tokenResult
.
status
==
0
)
{
tokenResult
.
data
.
secret
=
reqParam
.
secret
;
async
findTrademarkzcr
(
queryobj
,
req
)
{
//通过注册人模糊查询
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findTrademarkzcr"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
imagequery
(
queryobj
,
req
)
{
//图像检索
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/imagequery"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
findImageSearch
(
queryobj
,
req
)
{
//图像检索查询,
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/findImageSearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
tradeMarkDetail
(
queryobj
,
req
)
{
//商标详情
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/tradeMarkDetail"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
sbzuixinsearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/sbzuixinsearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticequeryTMZCSQ
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticequeryTMZCSQ"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticequery
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticequery"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticezcggsearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticezcggsearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
noticesearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/noticesearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
getCompanyInfoNoUser
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/getCompanyInfoNoUser"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
getNclDetail
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/getNclDetail"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
gettwoNcl
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/gettwoNcl"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
nclFuwuSearch
(
queryobj
,
req
)
{
var
url
=
this
.
zcApiUrl
+
"api/trademark/tmqueryApi/nclFuwuSearch"
;
return
await
this
.
opReqResult
(
url
,
queryobj
,
req
);
}
async
opReqResult
(
reqUrl
,
queryobj
,
req
)
{
var
rtn
=
await
this
.
execClient
.
execPushDataPost
(
queryobj
,
reqUrl
,
req
.
headers
[
"token"
],
req
.
headers
[
"request-id"
]);
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
return
data
;
}
async
pushJdPayOrder
(
queryobj
,
req
)
{
/**
* 请求es 拿出数据,组装
*/
let
failOrders
=
[];
try
{
const
data
=
await
this
.
execClient
.
execPostTimeOut
({
"query"
:
{
"bool"
:
{
"must"
:
[
{
"query_string"
:
{
"default_field"
:
"optitle"
,
"query"
:
"
\"
###处理京东推送的订单信息参数
\"
"
}
}
]
}
},
"from"
:
0
,
"size"
:
2000
,
"sort"
:
[
{
"created_at"
:
"desc"
}
]
},
`
${
this
.
reqEsAddr
}
bigdata_zc_op_log/_search`
,
20000
);
let
result
=
data
.
stdout
;
result
=
JSON
.
parse
(
result
);
result
=
result
.
hits
.
hits
;
result
=
_
.
uniqBy
(
result
.
map
(
item
=>
{
return
JSON
.
parse
(
item
.
_source
.
content
.
replace
(
/pushData参数=/g
,
""
))
}).
filter
(
item
=>
{
return
item
.
skuId
}),
"orderNumber"
).
filter
(
item
=>
{
const
signResult
=
this
.
createSign
(
item
,
"F6FBD101C7571ADE231670F080653874"
,
true
);
if
(
signResult
.
status
!=
0
||
signResult
.
data
!=
item
.
token
.
toUpperCase
())
{
failOrders
.
push
({
errMsg
:
"签名失败"
,
param
:
item
});
return
false
}
else
{
return
true
;
}
});
var
tokenInfo
=
await
this
.
getToken
();
if
(
tokenInfo
.
status
!=
0
)
{
return
tokenInfo
;
}
let
buildResult
=
[];
for
(
let
pushData
of
result
)
{
//自助注册产品---用updateOrderPayStatus,否则为addOrderAndDelivery
let
param
=
{
actionProcess
:
pushData
.
actionProcess
,
actionType
:
""
,
actionBody
:
{
channelUserId
:
pushData
.
jdPin
,
payStatus
:
"yfk"
,
channelItemCode
:
pushData
.
skuId
,
//------用此字段查询渠道产品是否存在
needNo
:
pushData
.
skuId
+
"_"
+
pushData
.
orderNumber
,
needNoOrderNo
:
pushData
.
orderNumber
,
//---用此字段查找
buyerMoblie
:
pushData
.
mobile
,
payCode
:
pushData
.
skuId
,
email
:
pushData
.
email
},
isUser
:
"yes"
};
if
([
"FW_GOODS-582206-1"
,
"FW_GOODS-582208-1"
,
"FW_GOODS-582207-1"
].
indexOf
(
pushData
.
skuId
)
>=
0
)
{
param
.
actionType
=
pushData
.
skuId
==
"FW_GOODS-582206-1"
?
"updateOrderPayStatusJd"
:
"addOrderAndDelivery"
;
}
//商标的产品订单
else
{
param
.
actionBody
.
channelItemCode
=
pushData
.
serviceCode
;
param
.
actionType
=
"jdAddQifuOrder"
;
}
//工商产品订单
let
reqUrl
=
this
.
channelApiUrl
+
"/action/tmOrder/springBoard"
;
let
rtn
=
await
this
.
execClient
.
execPushDataPost
(
param
,
reqUrl
,
tokenInfo
.
data
.
token
,
req
.
headers
[
"request-id"
]);
;
if
(
!
rtn
||
!
rtn
.
stdout
)
{
failOrders
.
push
(
{
orderNumber
:
item
.
orderNumber
,
errMsg
:
"this.execClient.execPushDataPost无返回"
}
)
}
let
data
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
data
.
status
===
0
)
{
buildResult
.
push
({
...
data
,
param
})
}
else
{
failOrders
.
push
(
{
param
,
errMsg
:
data
}
)
}
}
return
{
successOrders
:
buildResult
,
failOrders
};
}
catch
(
error
)
{
console
.
log
(
error
)
return
system
.
getResultFail
(
-
200
,
"操作error"
);
}
}
async
getToken
()
{
var
reqTokenUrl
=
this
.
channelApiUrl
+
"/auth/accessAuth/getToken"
;
var
reqParam
=
{};
var
rtn
=
await
this
.
execClient
.
execPost
({
appkey
:
"201911251551"
,
secret
:
"56006077354d48858026c80c0e10bef6"
},
reqTokenUrl
);
if
(
!
rtn
.
stdout
)
{
return
system
.
getResult
(
null
,
"获取token失败"
);
}
var
tokenResult
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
tokenResult
.
status
==
0
)
{
tokenResult
.
data
.
secret
=
reqParam
.
secret
;
}
return
tokenResult
;
}
return
tokenResult
;
}
}
module
.
exports
=
TmqueryService
;
igirl-channel/app/base/utils/execClient.js
View file @
4253173a
...
...
@@ -2,6 +2,7 @@ var childproc = require('child_process');
const
util
=
require
(
'util'
);
const
exec
=
util
.
promisify
(
require
(
'child_process'
).
exec
);
const
uuidv4
=
require
(
'uuid/v4'
);
class
ExecClient
{
constructor
()
{
this
.
cmdPostPattern
=
"curl --user admines:adminGSBes. -k -H 'Content-type: application/json' -d '{data}' {url}"
;
...
...
@@ -10,30 +11,33 @@ class ExecClient {
this
.
cmdDataPostByTokenUserPinPattern
=
"curl -k -H 'Content-type: application/json' -H 'token:{tk}' -H 'userpin:{UPIN}' -d '{data}' {url}"
;
}
getUUID
()
{
var
uuid
=
uuidv4
();
var
u
=
uuid
.
replace
(
/
\-
/g
,
""
);
return
u
;
}
async
exec
(
cmd
)
{
//await后面表达式返回的promise对象,是then的语法糖,await返回then函数的返回值
//异常需要try/catch自己捕获或外部catch捕获
const
{
stdout
,
stderr
}
=
await
exec
(
cmd
);
return
{
stdout
,
stderr
};
const
{
stdout
,
stderr
}
=
await
exec
(
cmd
);
return
{
stdout
,
stderr
};
}
async
exec2
(
cmd
)
{
return
exec
(
cmd
,
{
encoding
:
"base64"
});
return
exec
(
cmd
,
{
encoding
:
"base64"
});
}
FetchPostCmd
(
subData
,
url
)
{
var
data
=
JSON
.
stringify
(
subData
);
var
cmd
=
this
.
cmdPostPattern
.
replace
(
/
\{
data
\}
/g
,
data
).
replace
(
/
\{
url
\}
/g
,
url
);
console
.
log
(
cmd
);
console
.
log
(
cmd
,
"cmd......................................"
);
return
cmd
;
}
FetchPushDataPostCmd
(
subData
,
url
,
token
,
requestId
)
{
var
requestId
=
requestId
||
this
.
getUUID
();
var
data
=
JSON
.
stringify
(
subData
);
...
...
@@ -42,6 +46,7 @@ class ExecClient {
console
.
log
(
cmd
);
return
cmd
;
}
execDataPostByTokenUserPinCmd
(
subData
,
url
,
token
,
userPin
)
{
var
data
=
JSON
.
stringify
(
subData
);
var
cmd
=
this
.
cmdDataPostByTokenUserPinPattern
.
replace
(
/
\{
data
\}
/g
,
...
...
@@ -49,21 +54,43 @@ class ExecClient {
console
.
log
(
cmd
);
return
cmd
;
}
async
execPost
(
subData
,
url
)
{
let
cmd
=
this
.
FetchPostCmd
(
subData
,
url
);
var
result
=
await
this
.
exec
(
cmd
);
return
result
;
}
/**
* 带超时时间的post请求
* @param {*} params 请求数据-json格式
* @param {*} url 请求地址
* @param {*} ContentType 请求头类型,默认application/json
* @param {*} headData 请求头内容-json格式,如:请求头中传递token,格式:{token:"9098902q849q0434q09439"}
* @param {*} timeOut 超时时间设置,单位秒
*/
async
execPostTimeOut
(
params
,
url
,
timeOut
=
5000
)
{
let
cmd
=
this
.
FetchPostCmd
(
params
,
url
);
let
options
=
{
timeout
:
timeOut
,
maxBuffer
:
1024
*
1024
*
20
};
let
result
=
await
this
.
exec
(
cmd
,
options
);
return
result
;
}
async
execPushDataPost
(
subData
,
url
,
token
,
requestId
)
{
let
cmd
=
this
.
FetchPushDataPostCmd
(
subData
,
url
,
token
,
requestId
);
var
result
=
await
this
.
exec
(
cmd
);
return
result
;
}
async
execDataPostByTokenUserPin
(
subData
,
url
,
token
,
userPin
)
{
let
cmd
=
this
.
execDataPostByTokenUserPinCmd
(
subData
,
url
,
token
,
userPin
);
var
result
=
await
this
.
exec
(
cmd
);
return
result
;
}
async
execPost2
(
subData
,
url
)
{
let
cmd
=
this
.
FetchPostCmd
(
subData
,
url
);
var
result
=
await
this
.
exec2
(
cmd
);
...
...
@@ -83,6 +110,7 @@ class ExecClient {
var
result
=
await
this
.
exec
(
cmd
);
return
result
;
}
async
execGet2
(
subData
,
url
)
{
let
cmd
=
this
.
FetchGetCmd
(
subData
,
url
);
console
.
log
(
cmd
);
...
...
@@ -96,8 +124,8 @@ class ExecClient {
var
options
=
{
timeout
:
timeOut
,
};
const
{
stdout
,
stderr
}
=
await
exec
(
cmd
,
options
);
return
{
stdout
,
stderr
};
const
{
stdout
,
stderr
}
=
await
exec
(
cmd
,
options
);
return
{
stdout
,
stderr
};
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment