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
aa51c37a
Commit
aa51c37a
authored
Mar 19, 2021
by
宋毅
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加订单推送状态修改
parent
c0cc7f46
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
79 additions
and
34 deletions
+79
-34
center-channel/app/base/service/app.base.js
+71
-30
center-channel/app/base/utils/dingClient.js
+8
-4
No files found.
center-channel/app/base/service/app.base.js
View file @
aa51c37a
...
...
@@ -7,14 +7,16 @@ const cryptoJS = require('crypto-js');
class
AppServiceBase
{
constructor
()
{
this
.
dingClient
=
system
.
getObject
(
"util.dingClient"
);
this
.
restClient
=
system
.
getObject
(
"util.restClient"
);
this
.
execClientNew
=
system
.
getObject
(
"util.execClientNew"
);
this
.
execClient
=
system
.
getObject
(
'util.execClient'
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
this
.
pushlogSve
=
system
.
getObject
(
"service.common.pushlogSve"
);
this
.
pushlogFailType
=
{
OLDRPC
:
1
,
NEWRPC
:
2
,
FAILLOG
:
3
,
FQ
:
4
};
this
.
pushlogFailType
=
{
OLDRPC
:
1
,
NEWRPC
:
2
,
FAILLOG
:
3
,
FQ
:
4
};
this
.
logCtl
=
system
.
getObject
(
"service.common.oplogSve"
);
}
/**
* 验证签名
* @param {*} params 要验证的参数
...
...
@@ -48,6 +50,7 @@ class AppServiceBase {
}
return
system
.
getResultSuccess
();
}
async
restPostUrl
(
pobj
,
url
)
{
try
{
var
rtn
=
await
this
.
restClient
.
execPost
(
pobj
,
url
);
...
...
@@ -71,6 +74,7 @@ class AppServiceBase {
return
system
.
getResult
(
null
,
errorMsg
);
}
}
async
restPostWithHValueUrl
(
pobj
,
url
,
hValue
)
{
//curl请求带请求头信息
try
{
if
(
!
hValue
)
{
...
...
@@ -97,6 +101,7 @@ class AppServiceBase {
return
system
.
getResult
(
null
,
errorMsg
);
}
}
async
restPostWithHAuthorizationUrl
(
pobj
,
userToken
,
url
)
{
//curl请求带请求头信息
try
{
var
rtn
=
await
this
.
restClient
.
restPostWithHAuthorizationUrl
(
userToken
,
url
);
...
...
@@ -120,6 +125,7 @@ class AppServiceBase {
return
system
.
getResult
(
null
,
errorMsg
);
}
}
async
execPostUrl
(
pobj
,
url
)
{
try
{
var
rtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
...
...
@@ -143,6 +149,7 @@ class AppServiceBase {
return
system
.
getResult
(
null
,
errorMsg
);
}
}
async
opAliyunRpcVerifyParam
(
pobj
)
{
//参数信息验证
var
verify
=
system
.
getResultSuccess
();
if
(
!
pobj
.
interface_params
)
{
...
...
@@ -155,6 +162,7 @@ class AppServiceBase {
verify
.
data
=
interface_params_info
;
return
verify
;
}
/**
* 阿里RPC调用
* @param {*} pobj {action: rpcParam.action,reqbody: pobj.actionBody,rpcParam: rpcParam}
...
...
@@ -183,6 +191,7 @@ class AppServiceBase {
return
system
.
getResult
(
null
,
errorMsg
);
}
}
// /**
// * 阿里RPC调用-post请求
// * @param {*} pobj {action: rpcParam.action,reqbody: pobj.actionBody,rpcParam: rpcParam}
...
...
@@ -219,41 +228,35 @@ class AppServiceBase {
* @param {*} failType this.pushlogFailType
*/
async
disposePushResult
(
pobj
,
result
,
opTitleDesc
,
failType
)
{
//处理结果信息--内部使用
var
opType
=
pobj
.
opType
||
""
;
let
opType
=
pobj
.
opType
||
""
;
let
content
=
JSON
.
stringify
(
pobj
);
if
(
result
.
status
!=
0
)
{
this
.
pushlogSve
.
createFailLogDb
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
content
:
JSON
.
stringify
(
pobj
),
//推送的参数信息
resultInfo
:
JSON
.
stringify
(
result
),
clientIp
:
pobj
.
clientIp
||
""
,
failType
:
failType
||
3
,
opTitle
:
opType
+
"推送操作失败->"
+
opTitleDesc
,
pushNumber
:
pobj
.
pushNumber
||
1
});
result
.
data
=
null
;
return
result
;
return
this
.
disposePushResultFail
(
pobj
,
result
,
opTitleDesc
,
failType
);
}
this
.
pushlogSve
.
createDb
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
op
:
"推送业务类型:"
+
opType
,
content
:
JSON
.
stringify
(
pobj
)
,
//推送的参数信息
content
:
content
,
//推送的参数信息
resultInfo
:
JSON
.
stringify
(
result
),
returnType
:
'1'
,
opTitle
:
opType
+
"数据推送成功->"
+
opTitleDesc
});
// TODO
更改需求推送状态
if
(
opType
.
indexOf
(
'Need'
)
>=
0
&&
opType
.
indexOf
(
'Business'
)
>=
0
)
{
//
更改需求推送状态
if
(
opType
.
indexOf
(
'Need'
)
>=
0
&&
opType
.
indexOf
(
'Business'
)
>=
0
)
{
pobj
.
actionType
=
'updateNeedPushStatus'
;
let
url
=
settings
.
centerOrderUrl
()
+
'action/opNeed/springBoard'
;
let
result
=
await
this
.
execPostByTimeOut
(
null
,
pobj
,
url
,
null
,
null
,
60
);
this
.
execPostByTimeOut
(
null
,
pobj
,
url
,
null
,
null
,
60
);
}
if
([
"pushOrder"
,
"pushOrderBusiness"
,
"pushOrderICPBusiness"
].
includes
(
opType
)
&&
pobj
.
actionBody
&&
pobj
.
actionBody
.
orderNo
)
{
pobj
.
actionBody
.
pushNumber
=
pobj
.
pushNumber
||
1
;
pobj
.
actionBody
.
pushStatus
=
3
;
//推送状态0待推送2推送失败3已成功推送
this
.
disposeOrderPush
(
pobj
);
}
// result.data = null;
return
result
;
}
/**
* 处理失败的结果信息--内部使用
* @param {*} pobj
...
...
@@ -263,20 +266,48 @@ class AppServiceBase {
*/
async
disposePushResultFail
(
pobj
,
result
,
opTitleDesc
,
failType
)
{
//处理失败的结果信息--内部使用
var
opType
=
pobj
.
opType
||
""
;
let
pushNumber
=
pobj
.
pushNumber
||
1
;
let
resultInfo
=
JSON
.
stringify
(
result
);
this
.
pushlogSve
.
createFailLogDb
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
content
:
JSON
.
stringify
(
pobj
),
//推送的参数信息
resultInfo
:
JSON
.
stringify
(
result
)
,
resultInfo
:
resultInfo
,
clientIp
:
pobj
.
clientIp
||
""
,
failType
:
failType
||
3
,
opTitle
:
opType
+
"推送操作失败->"
+
opTitleDesc
,
pushNumber
:
pobj
.
pushNumber
||
1
pushNumber
:
pushNumber
});
result
.
data
=
null
;
if
(
pushNumber
==
10
&&
resultInfo
.
indexOf
(
"订单产品查询出来产品与传递得产品数量不一致,请重新选择"
)
>=
0
)
{
pobj
.
actionBody
.
pushNumber
=
pushNumber
;
pobj
.
actionBody
.
pushStatus
=
2
;
//推送状态0待推送2推送失败3已成功推送
this
.
disposeOrderPushFailSendDing
(
pobj
);
this
.
disposeOrderPush
(
pobj
);
}
return
result
;
}
async
disposeOrderPushFailSendDing
(
pobj
)
{
let
params
=
{
orderNo
:
pobj
.
actionBody
.
orderNo
,
city
:
pobj
.
actionBody
.
city
,
area
:
pobj
.
actionBody
.
area
,
companyCategory
:
pobj
.
actionBody
.
companyCategory
,
appName
:
pobj
.
actionBody
.
appName
,
sku
:
pobj
.
actionBody
.
sku
,
error
:
"订单产品查询出来产品与传递得产品数量不一致,请重新选择!"
}
this
.
dingClient
.
businessPushFqByChannel
(
params
);
}
async
disposeOrderPush
(
pobj
)
{
pobj
.
actionType
=
'updateOrderPushStatus'
;
let
url
=
settings
.
centerOrderUrl
()
+
'action/order/springBoard'
;
this
.
execPostByTimeOut
(
null
,
pobj
,
url
,
null
,
null
,
60
);
}
async
getAliossjavaFileUrl
(
pobj
,
params
)
{
//上传ali oss 文件调用
var
opType
=
pobj
.
opType
||
""
;
try
{
...
...
@@ -329,7 +360,8 @@ class AppServiceBase {
var
rtn
=
await
this
.
ossClient
.
upfile
(
upFileName
,
saveFilePath
);
result
.
data
=
rtn
;
//删除本地文件
fs
.
unlink
(
saveFilePath
,
function
(
err
)
{
});
fs
.
unlink
(
saveFilePath
,
function
(
err
)
{
});
}
catch
(
e
)
{
result
.
code
=
-
200
;
result
.
message
=
"通过flowId获取到的文件url下载操作异常异常error"
;
...
...
@@ -350,7 +382,7 @@ class AppServiceBase {
var
getProductInterfaceObj
=
{
"actionType"
:
"getProductInterface"
,
"appInfo"
:
appInfo
,
"actionBody"
:
{
"product_id"
:
product_id
}
"actionBody"
:
{
"product_id"
:
product_id
}
};
var
productItemInterfaceResult
=
await
this
.
restPostUrl
(
getProductInterfaceObj
,
getProductInterfaceUrl
);
return
productItemInterfaceResult
;
...
...
@@ -370,6 +402,7 @@ class AppServiceBase {
}
return
result
;
}
/*
返回20位业务订单号
prefix:业务前缀
...
...
@@ -388,6 +421,7 @@ class AppServiceBase {
var
timStr
=
moment
().
format
(
"YYYYMMDDHHmm"
);
return
prefix
+
timStr
+
uidStr
;
}
/*
len:返回长度
radix:参与计算的长度,最大为62
...
...
@@ -411,11 +445,13 @@ class AppServiceBase {
}
return
uuid
.
join
(
''
);
}
getUUID
()
{
var
uuid
=
uuidv4
();
var
u
=
uuid
.
replace
(
/
\-
/g
,
""
);
return
u
;
}
/**
* 加密信息
* @param {*} encrypt_key
...
...
@@ -428,9 +464,10 @@ class AppServiceBase {
}
let
keyHex
=
cryptoJS
.
enc
.
Utf8
.
parse
(
encrypt_key
);
let
ivHex
=
cryptoJS
.
enc
.
Utf8
.
parse
(
encrypt_secret
.
substring
(
0
,
8
));
var
cipherStr
=
cryptoJS
.
TripleDES
.
encrypt
(
opStr
,
keyHex
,
{
iv
:
ivHex
}).
toString
();
var
cipherStr
=
cryptoJS
.
TripleDES
.
encrypt
(
opStr
,
keyHex
,
{
iv
:
ivHex
}).
toString
();
return
cipherStr
;
}
/**
* 解密信息
* @param {*} encrypt_key
...
...
@@ -456,6 +493,7 @@ class AppServiceBase {
return
system
.
getResultFail
(
-
200
,
"解密异常:"
+
opStr
);
}
}
/**
* 带超时时间的post请求
* @param {*} req 请求信息
...
...
@@ -469,11 +507,12 @@ class AppServiceBase {
const
result
=
await
this
.
execClientNew
.
execPostTimeOutByBusiness
(
'sve.base'
,
params
,
url
,
ContentType
,
headData
,
timeOut
,
req
);
return
result
;
}
/**
* 验证签名
* @param {*} params 要验证的参数
* @param {*} app_secret 应用的校验key
*/
* 验证签名
* @param {*} params 要验证的参数
* @param {*} app_secret 应用的校验key
*/
async
verifySign
(
params
,
app_secret
)
{
if
(
!
params
)
{
return
system
.
getResult
(
null
,
"请求参数为空"
);
...
...
@@ -506,7 +545,8 @@ class AppServiceBase {
}
return
system
.
getResultSuccess
();
}
async
getFQbossSign
(
pobj
){
async
getFQbossSign
(
pobj
)
{
var
signArr
=
[];
var
keys
=
Object
.
keys
(
pobj
).
sort
();
for
(
let
k
=
0
;
k
<
keys
.
length
;
k
++
)
{
...
...
@@ -519,4 +559,5 @@ class AppServiceBase {
return
md5
(
resultSignStr
).
toUpperCase
();
}
}
module
.
exports
=
AppServiceBase
;
center-channel/app/base/utils/dingClient.js
View file @
aa51c37a
const
system
=
require
(
"../system"
);
class
dingClient
{
constructor
()
{
this
.
execClient
=
system
.
getObject
(
'util.execClient'
);
this
.
gatewayurl
=
"https://oapi.dingtalk.com/robot/send?access_token=2f1ada261ea84f6c621db487ac18d11eba8984202bd82adda8810770a8240572"
this
.
businessToFqUrl
=
"https://oapi.dingtalk.com/robot/send?access_token=9e215f0f1d77980ee6b39e88a82a7c6e5d290775f76d9a8346e97697f8df9788"
}
//推送峰擎异常提醒
async
gatewayPushError
(
err
)
{
if
(
process
.
env
.
APP_ENV
===
"prod"
)
{
...
...
@@ -20,7 +22,7 @@ class dingClient {
}
//渠道钉钉提醒
async
gatewayPushByChannel
(
orderNo
,
appInfo
)
{
async
gatewayPushByChannel
(
orderNo
,
appInfo
)
{
let
gatewayUrl
=
setttings
.
dingRobotUrl
(
appInfo
.
uapp_id
);
if
(
settings
.
env
!=
"dev"
&&
gatewayUrl
)
{
let
c
=
`注意提醒:
${
appInfo
.
app_name
}
->有订单待处理,订单号
${
orderNo
}
,老板们加油,加油,加油 !!!`
...
...
@@ -33,16 +35,17 @@ class dingClient {
});
}
}
//渠道订单到峰擎--sku没有查询到
async
businessPushFqByChannel
(
params
)
{
async
businessPushFqByChannel
(
params
)
{
if
(
process
.
env
.
APP_ENV
!=
"dev"
)
{
let
c
=
`注意提醒:
${
appInfo
.
app_name
}
->有订单待处理,sku为空
,参数:
${
JSON
.
stringify
(
params
)}
,老板们加油,加油,加油 !!!`
let
c
=
`注意提醒:
${
appInfo
.
app_name
}
->有订单待处理,渠道下sku查询不到
,参数:
${
JSON
.
stringify
(
params
)}
,老板们加油,加油,加油 !!!`
let
t
=
new
Date
().
toLocaleString
()
this
.
execClient
.
execPost
({
"msgtype"
:
"text"
,
"text"
:
{
"content"
:
t
+
c
},
at
:
{
atMobiles
:
[
"13051727697"
,
"13453222948"
,
"18201231253"
]
//孟令强、王斌、郭峰
atMobiles
:
[
"13051727697"
,
"13453222948"
,
"18201231253"
]
//孟令强、王斌、郭峰
},
},
this
.
businessToFqUrl
).
catch
(
err
=>
{
console
.
log
(
err
)
...
...
@@ -50,4 +53,5 @@ class dingClient {
}
}
}
module
.
exports
=
dingClient
;
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