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
133705b4
Commit
133705b4
authored
May 19, 2021
by
linboxuan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'center-channel' of
http://gitlab.gongsibao.com/jiangyong/zhichan
into center-channel
parents
07965134
ae75d03e
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1558 additions
and
1302 deletions
+1558
-1302
center-channel/app/base/api/api.base.js
+1
-1
center-channel/app/base/api/impl/action/regapi.js
+4
-0
center-channel/app/base/api/impl/auth/taskapi.js
+2
-2
center-channel/app/base/api/impl/ic/regCfg.js
+4
-2
center-channel/app/base/api/impl/opaction/order.js
+3
-0
center-channel/app/base/api/impl/opreceive/pushAliInfo.js
+56
-0
center-channel/app/base/service/app.base.js
+1
-1
center-channel/app/base/service/impl/common/ncSve.js
+6
-0
center-channel/app/base/service/impl/common/pushlogSve.js
+1
-1
center-channel/app/base/service/impl/common/regCenterOrderSve.js
+673
-618
center-channel/app/base/service/impl/common/rtSve.js
+6
-0
center-channel/app/base/service/impl/utilsSve/utilsAliyunNoteSve.js
+38
-0
center-channel/app/base/service/impl/utilsSve/utilsNeedSve2.js
+5
-5
center-channel/app/base/service/impl/utilsSve/utilsOrderSve.js
+57
-1
center-channel/app/base/service/impl/utilsSve/utilsPushSve.js
+3
-3
center-channel/app/config/businessConfig.js
+5
-1
center-channel/app/config/routes/api.js
+693
-667
No files found.
center-channel/app/base/api/api.base.js
View file @
133705b4
...
...
@@ -34,7 +34,7 @@ class APIBase {
return
JSON
.
parse
(
cacheRes
);
}
var
result
=
await
this
[
methodname
](
pobj
,
query
,
req
);
if
(
!
result
.
requestId
)
{
if
(
result
&&
!
result
.
requestId
)
{
result
.
requestId
=
pobj
.
RequestId
?
pobj
.
RequestId
:
pobj
.
requestId
||
req
.
requestId
;
}
this
.
logCtl
.
createDb
({
...
...
center-channel/app/base/api/impl/action/regapi.js
View file @
133705b4
...
...
@@ -6,6 +6,7 @@ class RegAPI extends APIBase {
constructor
()
{
super
();
this
.
regCenterOrderSve
=
system
.
getObject
(
"service.common.regCenterOrderSve"
);
this
.
utilsPushSve
=
system
.
getObject
(
"service.utilsSve.utilsPushSve"
);
}
/**
* 接口跳转-POST请求
...
...
@@ -76,6 +77,9 @@ class RegAPI extends APIBase {
// opResult = await this.regCenterOrderSve.closeOrderDelivery(pobj);
// break;
case
"againPushYf"
:
//单独重新推送数据到云服
opResult
=
await
this
.
utilsPushSve
.
business2Channel
(
pobj
,
pobj
.
opType
);
break
;
//-----------接入百度reg------end----------------------------
default
:
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
...
...
center-channel/app/base/api/impl/auth/taskapi.js
View file @
133705b4
...
...
@@ -27,7 +27,7 @@ class AccessAuthAPI extends APIBase {
var
rtn
=
await
this
.
gatewaypushlogSve
.
taskAliIcapi
();
return
rtn
;
}
async
taskAgainFqPushInfo
(
pobj
,
qobj
,
req
)
{
//再次推送
蜂擎
业务数据
async
taskAgainFqPushInfo
(
pobj
,
qobj
,
req
)
{
//再次推送
渠道
业务数据
var
rtn
=
await
this
.
utilsPushSve
.
business2Channel
(
pobj
,
pobj
.
opType
);
this
.
pushlogSve
.
delDbPushfaillogById
(
Number
(
pobj
.
id
||
0
));
return
rtn
;
...
...
@@ -71,7 +71,7 @@ class AccessAuthAPI extends APIBase {
self
.
taskAgainPushOneNewBusInfo
(
contentData
);
}
else
if
(
element
.
failType
==
4
)
{
self
.
taskAgainFqPushInfo
(
contentData
);
}
//
FQ
}
//
推送渠道(如:FQ)
}
}
return
system
.
getResultSuccess
();
...
...
center-channel/app/base/api/impl/ic/regCfg.js
View file @
133705b4
...
...
@@ -109,7 +109,8 @@ var regCfg = {
'COLLECTING'
:
'COLLECTING'
,
//材料收集环节
'AUDITING'
:
'AUDITING'
,
//工商审核环节
'ENGRAVING'
:
'ENGRAVING'
,
//刻章环节
'SUCCESS'
:
'SUCCESS'
//已完成
'SUCCESS'
:
'SUCCESS'
,
//已完成
'ACTIVE'
:
'ACTIVE'
//服务中
},
//交付状态
deliverStatus
:{
...
...
@@ -117,7 +118,8 @@ var regCfg = {
'COLLECTING'
:
'材料收集环节'
,
//
'AUDITING'
:
'工商审核环节'
,
//
'ENGRAVING'
:
'刻章环节'
,
//
'SUCCESS'
:
'已完成'
//
'SUCCESS'
:
'已完成'
,
//
'ACTIVE'
:
'服务中'
//
},
//返回结果配置
getUUID
()
{
...
...
center-channel/app/base/api/impl/opaction/order.js
View file @
133705b4
...
...
@@ -102,6 +102,9 @@ class ProductAPI extends WEBBase {
case
"receiveAliTmOrder"
:
//接收阿里商标订单
opResult
=
await
this
.
utilsOrderSve
.
receiveAliTmOrder
(
pobj
,
pobj
.
actionBody
);
break
;
case
"receiveFqbossTmOrder"
:
//接收阿里商标订单
opResult
=
await
this
.
utilsOrderSve
.
receiveFqbossTmOrder
(
pobj
,
pobj
.
actionBody
);
break
;
case
"receiveAliTmStatus"
:
//接收阿里商标状态
opResult
=
await
this
.
utilsOrderSve
.
receiveAliTmStatus
(
pobj
,
pobj
.
actionBody
);
break
;
...
...
center-channel/app/base/api/impl/opreceive/pushAliInfo.js
0 → 100644
View file @
133705b4
var
APIBase
=
require
(
"../../api.base"
);
var
system
=
require
(
"../../../system"
);
var
settings
=
require
(
"../../../../config/settings"
);
class
PushAliInfo
extends
APIBase
{
constructor
()
{
super
();
this
.
utilsPushSve
=
system
.
getObject
(
"service.utilsSve.utilsPushSve"
);
}
/**
* 推送阿里商标跟进信息
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async
tmNote
(
pobj
,
qobj
,
req
)
{
var
reqPushParams
=
{
reqbody
:
{
BizId
:
pobj
.
intentionBizId
,
Note
:
pobj
.
note
.
replace
(
/<
[^
>
]
+>/g
,
""
)
},
appInfo
:
{
uapp_id
:
18
}
};
let
result
=
await
this
.
utilsPushSve
.
business2Channel
(
reqPushParams
,
"pushAliTmNote"
);
if
(
result
&&
result
.
data
)
{
return
result
.
data
;
}
return
result
;
}
/**
* 推送阿里工商跟进信息
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async
icNote
(
pobj
,
qobj
,
req
)
{
var
reqPushParams
=
{
reqbody
:
{
IntentionBizId
:
pobj
.
intentionBizId
,
Type
:
1
,
// 1需求,2订单
Note
:
pobj
.
note
.
replace
(
/<
[^
>
]
+>/g
,
""
)
},
appInfo
:
{
uapp_id
:
18
}
};
let
result
=
await
this
.
utilsPushSve
.
business2Channel
(
reqPushParams
,
"pushAliIcNote"
);
if
(
result
&&
result
.
data
)
{
return
result
.
data
;
}
return
result
;
}
}
module
.
exports
=
PushAliInfo
;
\ No newline at end of file
center-channel/app/base/service/app.base.js
View file @
133705b4
...
...
@@ -13,7 +13,7 @@ class AppServiceBase {
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
};
//1老的rpc调用,2新的rpc调用-需配置,3错误日志,4推送峰擎,5直接调用-无需配置
this
.
logCtl
=
system
.
getObject
(
"service.common.oplogSve"
);
}
...
...
center-channel/app/base/service/impl/common/ncSve.js
View file @
133705b4
...
...
@@ -237,6 +237,12 @@ class NcService extends AppServiceBase {
var
a
=
await
this
.
baiduclient
.
baiduReqbyget
({
path
:
"/api/bla/provider/requirement/update"
,
reqbody
:
pushObj
});
console
.
log
(
'nc closeNeed+++'
,
a
)
}
if
(
result
.
data
&&
result
.
data
.
uapp_id
==
44
){
pobj
.
appInfo
.
uapp_id
=
44
if
(
pobj
&&
pobj
.
actionBody
&&
pobj
.
actionBody
.
note
){
pobj
.
actionBody
[
'description'
]
=
pobj
.
actionBody
.
note
}
}
this
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushCloseICPNeed"
);
}
return
result
;
...
...
center-channel/app/base/service/impl/common/pushlogSve.js
View file @
133705b4
...
...
@@ -27,7 +27,7 @@ class PushlogService extends ServiceBase {
}
async
createFailLogDb
(
qobj
)
{
try
{
qobj
.
op
title
=
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
":"
+
qobj
.
opt
itle
;
qobj
.
op
Title
=
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
":"
+
qobj
.
opT
itle
;
this
.
pushfaillogDao
.
create
(
qobj
);
}
catch
(
e
)
{
//日志记录
...
...
center-channel/app/base/service/impl/common/regCenterOrderSve.js
View file @
133705b4
...
...
@@ -5,653 +5,707 @@ const AppServiceBase = require("../../app.base");
const
regCfg
=
require
(
"../../../api/impl/ic/regCfg"
);
class
RegCenterOrderService
extends
AppServiceBase
{
constructor
()
{
super
();
this
.
centerOrderUrl
=
settings
.
centerOrderUrl
();
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
this
.
utilsPushSve
=
system
.
getObject
(
"service.utilsSve.utilsPushSve"
);
this
.
opPushQueueUrl
=
settings
.
opPushQueueUrl
();
this
.
baiduclient
=
system
.
getObject
(
"util.baiduClient"
);
this
.
baiduRegClient
=
system
.
getObject
(
"util.baiduRegClient"
);
this
.
utilsOrderSve
=
system
.
getObject
(
"service.utilsSve.utilsOrderSve"
);
};
//调用center-order
async
reqCenterOrderApi
(
pobj
,
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
if
(
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
reqUrl
;
constructor
()
{
super
();
this
.
centerOrderUrl
=
settings
.
centerOrderUrl
();
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
this
.
utilsPushSve
=
system
.
getObject
(
"service.utilsSve.utilsPushSve"
);
this
.
opPushQueueUrl
=
settings
.
opPushQueueUrl
();
this
.
baiduclient
=
system
.
getObject
(
"util.baiduClient"
);
this
.
baiduRegClient
=
system
.
getObject
(
"util.baiduRegClient"
);
this
.
utilsOrderSve
=
system
.
getObject
(
"service.utilsSve.utilsOrderSve"
);
};
//调用center-order
async
reqCenterOrderApi
(
pobj
,
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
if
(
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
reqUrl
;
}
var
rtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
return
data
;
}
var
rtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
return
data
;
}
//-----------接入百度reg-----start--------laolan---2020.12.17----------------------
async
getSolutionByChannelOrderNo
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
orderNo
)
{
return
system
.
getResult
(
null
,
"actionBody.orderNo can not be empty,100390"
);
}
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
itemResult
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
return
itemResult
;
}
async
regPaySuccess
(
pobj
)
{
console
.
log
(
'regPaySuccess++++pobj----'
,
pobj
)
var
sobj
=
{
actionType
:
"getRegProducePrice"
,
actionBody
:
{
typeCode
:
pobj
.
actionBody
.
consultType
,
city
:
pobj
.
actionBody
.
area
,
taxpayerType
:
pobj
.
actionBody
.
taxpayerType
,
companyProperties
:
pobj
.
actionBody
.
companyProperties
},
appInfo
:
pobj
.
appInfo
,
actionProcess
:
pobj
.
actionProcess
}
console
.
log
(
'regPaySuccess++++sobj----'
,
sobj
)
var
url
=
settings
.
centerAppUrl
()
+
"action/opProduct/springBoard"
;
var
rtn
=
await
this
.
execClient
.
execPost
(
sobj
,
url
);
if
(
!
rtn
||
!
rtn
.
stdout
)
{
return
system
.
getResultFail
(
-
5010
,
"产品查询失败"
);
}
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
data
.
status
!=
0
)
{
return
system
.
getResultFail
(
-
5010
,
"产品查询失败"
);
}
console
.
log
(
'data----data----'
,
data
)
// pobj.actionBody = data.data;
// pobj.actionBody.orderNo = pobj.actionBody.bizId;
pobj
.
actionBody
.
totalSum
=
data
.
data
.
price
;
pobj
.
actionBody
.
orderPrice
=
data
.
data
.
price
;
pobj
.
actionBody
.
payTotalSum
=
data
.
data
.
price
;
pobj
.
actionBody
.
payCode
=
data
.
data
.
payCode
;
pobj
.
actionBody
.
channelItemCode
=
data
.
data
.
channelItemCode
;
pobj
.
actionBody
.
channelNeedNo
=
data
.
data
.
channelNeedNo
||
data
.
data
.
bizId
;
pobj
.
actionBody
.
needNo
=
data
.
data
.
needNo
;
pobj
.
actionBody
.
quantity
=
1
;
pobj
.
actionBody
.
channelOrder
=
{
channelServiceNo
:
pobj
.
actionBody
.
orderNo
,
channelOrderNo
:
pobj
.
actionBody
.
orderNo
,
orderStatus
:
2
//-----------接入百度reg-----start--------laolan---2020.12.17----------------------
async
getSolutionByChannelOrderNo
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
orderNo
)
{
return
system
.
getResult
(
null
,
"actionBody.orderNo can not be empty,100390"
);
}
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
itemResult
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
return
itemResult
;
}
console
.
log
(
'pobj.actionBody------'
,
pobj
.
actionBody
)
var
orderrtn
=
await
this
.
utilsOrderSve
.
addOrder
(
pobj
,
pobj
.
actionBody
);
console
.
log
(
'orderrtn----'
,
orderrtn
)
if
(
orderrtn
.
status
!=
0
&&
orderrtn
.
status
!=
-
1
)
{
return
system
.
getResultFail
(
-
5012
,
"订单创建失败"
);
}
if
(
orderrtn
.
data
)
{
pobj
.
actionBody
.
orderNo
=
orderrtn
.
data
.
orderNo
;
}
pobj
.
actionBody
.
channelSolutionNo
=
pobj
.
actionBody
.
bizId
;
async
regPaySuccess
(
pobj
)
{
console
.
log
(
'regPaySuccess++++pobj----'
,
pobj
)
var
sobj
=
{
actionType
:
"getRegProducePrice"
,
actionBody
:
{
typeCode
:
pobj
.
actionBody
.
consultType
,
city
:
pobj
.
actionBody
.
area
,
taxpayerType
:
pobj
.
actionBody
.
taxpayerType
,
companyProperties
:
pobj
.
actionBody
.
companyProperties
},
appInfo
:
pobj
.
appInfo
,
actionProcess
:
pobj
.
actionProcess
}
console
.
log
(
'regPaySuccess++++sobj----'
,
sobj
)
var
url
=
settings
.
centerAppUrl
()
+
"action/opProduct/springBoard"
;
var
rtn
=
await
this
.
execClient
.
execPost
(
sobj
,
url
);
if
(
!
rtn
||
!
rtn
.
stdout
)
{
return
system
.
getResultFail
(
-
5010
,
"产品查询失败"
);
}
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
data
.
status
!=
0
)
{
return
system
.
getResultFail
(
-
5010
,
"产品查询失败"
);
}
console
.
log
(
'data----data----'
,
data
)
// pobj.actionBody = data.data;
// pobj.actionBody.orderNo = pobj.actionBody.bizId;
pobj
.
actionBody
.
totalSum
=
data
.
data
.
price
;
pobj
.
actionBody
.
orderPrice
=
data
.
data
.
price
;
pobj
.
actionBody
.
payTotalSum
=
data
.
data
.
price
;
pobj
.
actionBody
.
payCode
=
data
.
data
.
payCode
;
pobj
.
actionBody
.
channelItemCode
=
data
.
data
.
channelItemCode
;
pobj
.
actionBody
.
channelNeedNo
=
data
.
data
.
channelNeedNo
||
data
.
data
.
bizId
;
pobj
.
actionBody
.
needNo
=
data
.
data
.
needNo
;
pobj
.
actionBody
.
quantity
=
1
;
pobj
.
actionBody
.
channelOrder
=
{
channelServiceNo
:
pobj
.
actionBody
.
orderNo
,
channelOrderNo
:
pobj
.
actionBody
.
orderNo
,
orderStatus
:
2
}
console
.
log
(
'pobj.actionBody------'
,
pobj
.
actionBody
)
pobj
.
actionType
=
"regReceiveSolutionPayInfo"
;
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
solutionrtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
if
(
!
solutionrtn
||
!
solutionrtn
.
stdout
)
{
return
system
.
getResultFail
(
-
5011
,
"方案查询失败"
);
}
var
solutiondata
=
JSON
.
parse
(
solutionrtn
.
stdout
);
console
.
log
(
'solutiondata----'
,
solutiondata
)
if
(
solutiondata
.
status
!=
0
)
{
return
system
.
getResultFail
(
-
5011
,
"方案查询失败"
);
}
if
(
!
solutiondata
.
data
)
{
return
system
.
getResultFail
(
-
5012
,
"方案查询数据为空"
);
}
if
(
solutiondata
.
data
&&
solutiondata
.
data
.
channelNeedNo
)
{
pobj
.
actionBody
.
needId
=
solutiondata
.
data
.
channelNeedNo
;
}
if
(
pobj
.
actionBody
.
channelItemCode
)
{
pobj
.
actionBody
.
channelItemCode
=
regCfg
.
channelTypeCode
[
pobj
.
actionBody
.
channelItemCode
];
}
var
fqobj
=
{
actionBody
:
{
area
:
pobj
.
actionBody
.
province
,
idempotentSource
:
data
.
data
.
serviceBusinessCode
,
orderNo
:
pobj
.
actionBody
.
channelOrder
.
channelOrderNo
,
orderPrice
:
Number
(
pobj
.
actionBody
.
orderPrice
/
100
),
phone
:
pobj
.
actionBody
.
publishMobile
,
needId
:
solutiondata
.
data
.
channelNeedNo
,
price_desc
:
pobj
.
actionBody
.
taxpayerType
,
additions_desc
:
pobj
.
actionBody
.
companyProperties
,
// companyName:solutiondata.data.solutionContent.CompanyName || ''
//2021-1-21 laolan add new
appName
:
pobj
.
appInfo
.
app_name
||
''
,
sku
:
data
.
data
.
service_code
||
''
},
appInfo
:
pobj
.
appInfo
}
console
.
log
(
'fqobj----'
,
fqobj
)
var
baiduPushRes
=
await
this
.
utilsPushSve
.
business2Channel
(
fqobj
,
"pushOrderICPBusinessNew"
);
var
deliveryObj
=
{
actionBody
:
{
orderNo
:
orderrtn
.
data
.
orderNo
,
//pobj.actionBody.channelOrder.channelOrderNo,
needsolution
:
solutiondata
.
data
.
solutionContent
,
channelNeedNo
:
solutiondata
.
data
.
channelNeedNo
,
channelSolutionNo
:
solutiondata
.
data
.
channelSolutionNo
,
skuCode
:
data
.
data
.
payCode
,
servicer
:
{
code
:
'gsb'
,
name
:
'公司宝'
}
},
appInfo
:
pobj
.
appInfo
};
if
(
pobj
.
actionBody
.
isDirectBuy
&&
pobj
.
actionBody
.
isDirectBuy
==
1
){
//直接下单需执行添加订单业务员操作
if
(
baiduPushRes
&&
baiduPushRes
.
status
==
0
){
if
(
baiduPushRes
.
data
&&
baiduPushRes
.
data
.
data
){
var
resData
=
baiduPushRes
.
data
.
data
;
var
salesmanInfo
=
{
salesmanName
:
resData
.
orderList
&&
resData
.
orderList
.
length
>
0
?
resData
.
orderList
[
0
].
operatorName
:
""
,
salesmanChannelId
:
resData
.
orderList
&&
resData
.
orderList
.
length
>
0
?
resData
.
orderList
[
0
].
operator
:
""
,
};
var
salesmanObj
=
{
appInfo
:
pobj
.
appInfo
,
actionType
:
"addRegSalesmanInfo"
,
//添加业务员信息
actionBody
:{
salesmanInfo
:
salesmanInfo
,
orderNo
:
orderrtn
.
data
.
orderNo
}
};
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
addRes
=
await
this
.
execClient
.
execPost
(
salesmanObj
,
url
);
if
(
addRes
&&
addRes
.
stdout
)
{
var
salesmanRes
=
JSON
.
parse
(
addRes
.
stdout
);
if
(
salesmanRes
.
status
==
0
)
{
deliveryObj
.
actionBody
.
needsolution
=
salesmanRes
.
data
;
await
this
.
utilsPushSve
.
business2Channel
(
deliveryObj
,
"pushDeliveryOrder"
);
var
orderrtn
=
await
this
.
utilsOrderSve
.
addOrder
(
pobj
,
pobj
.
actionBody
);
console
.
log
(
'orderrtn----'
,
orderrtn
)
if
(
orderrtn
.
status
!=
0
&&
orderrtn
.
status
!=
-
1
)
{
return
system
.
getResultFail
(
-
5012
,
"订单创建失败"
);
}
if
(
orderrtn
.
data
)
{
pobj
.
actionBody
.
orderNo
=
orderrtn
.
data
.
orderNo
;
}
pobj
.
actionBody
.
channelSolutionNo
=
pobj
.
actionBody
.
bizId
;
pobj
.
actionType
=
"regReceiveSolutionPayInfo"
;
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
solutionrtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
if
(
!
solutionrtn
||
!
solutionrtn
.
stdout
)
{
return
system
.
getResultFail
(
-
5011
,
"方案查询失败"
);
}
var
solutiondata
=
JSON
.
parse
(
solutionrtn
.
stdout
);
console
.
log
(
'solutiondata----'
,
solutiondata
)
if
(
solutiondata
.
status
!=
0
)
{
return
system
.
getResultFail
(
-
5011
,
"方案查询失败"
);
}
if
(
!
solutiondata
.
data
)
{
return
system
.
getResultFail
(
-
5012
,
"方案查询数据为空"
);
}
if
(
solutiondata
.
data
&&
solutiondata
.
data
.
channelNeedNo
)
{
pobj
.
actionBody
.
needId
=
solutiondata
.
data
.
channelNeedNo
;
}
if
(
pobj
.
actionBody
.
channelItemCode
)
{
pobj
.
actionBody
.
channelItemCode
=
regCfg
.
channelTypeCode
[
pobj
.
actionBody
.
channelItemCode
];
}
var
fqobj
=
{
actionBody
:
{
area
:
pobj
.
actionBody
.
province
,
idempotentSource
:
data
.
data
.
serviceBusinessCode
,
orderNo
:
pobj
.
actionBody
.
channelOrder
.
channelOrderNo
,
orderPrice
:
Number
(
pobj
.
actionBody
.
orderPrice
/
100
),
phone
:
pobj
.
actionBody
.
publishMobile
,
needId
:
solutiondata
.
data
.
channelNeedNo
,
price_desc
:
pobj
.
actionBody
.
taxpayerType
,
additions_desc
:
pobj
.
actionBody
.
companyProperties
,
// companyName:solutiondata.data.solutionContent.CompanyName || ''
//2021-1-21 laolan add new
appName
:
pobj
.
appInfo
.
app_name
||
''
,
sku
:
data
.
data
.
service_code
||
''
},
appInfo
:
pobj
.
appInfo
}
console
.
log
(
'fqobj----'
,
fqobj
)
var
baiduPushRes
=
await
this
.
utilsPushSve
.
business2Channel
(
fqobj
,
"pushOrderICPBusinessNew"
);
var
deliveryObj
=
{
actionBody
:
{
orderNo
:
orderrtn
.
data
.
orderNo
,
//pobj.actionBody.channelOrder.channelOrderNo,
needsolution
:
solutiondata
.
data
.
solutionContent
,
channelNeedNo
:
solutiondata
.
data
.
channelNeedNo
,
channelSolutionNo
:
solutiondata
.
data
.
channelSolutionNo
,
skuCode
:
data
.
data
.
payCode
,
servicer
:
{
code
:
'gsb'
,
name
:
'公司宝'
}
},
appInfo
:
pobj
.
appInfo
};
if
(
pobj
.
actionBody
.
isDirectBuy
&&
pobj
.
actionBody
.
isDirectBuy
==
1
)
{
//直接下单需执行添加订单业务员操作
if
(
baiduPushRes
&&
baiduPushRes
.
status
==
0
)
{
if
(
baiduPushRes
.
data
&&
baiduPushRes
.
data
.
data
)
{
var
resData
=
baiduPushRes
.
data
.
data
;
var
salesmanInfo
=
{
salesmanName
:
resData
.
orderList
&&
resData
.
orderList
.
length
>
0
?
resData
.
orderList
[
0
].
operatorName
:
""
,
salesmanChannelId
:
resData
.
orderList
&&
resData
.
orderList
.
length
>
0
?
resData
.
orderList
[
0
].
operator
:
""
,
};
var
salesmanObj
=
{
appInfo
:
pobj
.
appInfo
,
actionType
:
"addRegSalesmanInfo"
,
//添加业务员信息
actionBody
:
{
salesmanInfo
:
salesmanInfo
,
orderNo
:
orderrtn
.
data
.
orderNo
}
};
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
addRes
=
await
this
.
execClient
.
execPost
(
salesmanObj
,
url
);
if
(
addRes
&&
addRes
.
stdout
)
{
var
salesmanRes
=
JSON
.
parse
(
addRes
.
stdout
);
if
(
salesmanRes
.
status
==
0
)
{
deliveryObj
.
actionBody
.
needsolution
=
salesmanRes
.
data
;
await
this
.
utilsPushSve
.
business2Channel
(
deliveryObj
,
"pushDeliveryOrder"
);
}
}
}
}
}
}
else
{
this
.
utilsPushSve
.
business2Channel
(
deliveryObj
,
"pushDeliveryOrder"
);
}
}
}
else
{
this
.
utilsPushSve
.
business2Channel
(
deliveryObj
,
"pushDeliveryOrder"
);
}
return
system
.
getResultSuccess
();
}
// channelNeedNo获取需求详情
async
selectNeedInfo
(
pobj
){
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
itemResult
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
return
itemResult
;
}
/**
* 获取需求详情
* @param {*} pobj
* @param {*} actionBody bizId 渠道方案号
*/
async
getItemByChannelSolutionNo
(
pobj
)
{
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
itemResult
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
return
itemResult
;
}
/**
* 提交需求
* @param {*} pobj
* @param {*} actionBody
*/
async
submitRegNeed
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
intentionBizId
)
{
return
system
.
getResult
(
null
,
"actionBody.intentionBizId can not be empty,100380"
);
}
var
sobj
=
pobj
;
sobj
.
actionType
=
"getProductTypeInfo"
;
var
url
=
settings
.
centerAppUrl
()
+
"action/opProduct/springBoard"
;
var
rtn
=
await
this
.
execClient
.
execPost
(
sobj
,
url
);
if
(
!
rtn
||
!
rtn
.
stdout
)
{
return
system
.
getResultFail
(
-
5015
,
"需求类型查询失败"
);
}
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
data
.
status
!=
0
)
{
return
system
.
getResultFail
(
-
5016
,
"需求类型查询失败"
);
}
pobj
.
actionBody
.
service_product_id
=
data
.
data
.
service_product_id
;
pobj
.
actionBody
.
productId
=
data
.
data
.
service_product_id
;
pobj
.
actionBody
.
appName
=
pobj
.
appInfo
.
app_name
;
pobj
.
actionBody
.
type_code
=
data
.
data
.
type_code
;
pobj
.
actionBody
.
type_name
=
data
.
data
.
type_name
;
pobj
.
actionBody
.
channel_type_code
=
data
.
data
.
channel_type_code
;
pobj
.
actionBody
.
channel_type_name
=
data
.
data
.
channel_type_name
;
pobj
.
actionBody
.
idempotentId
=
pobj
.
actionBody
.
intentionBizId
;
pobj
.
actionBody
.
idempotentSourceName
=
pobj
.
appInfo
.
app_name
;
if
(
pobj
.
actionBody
.
channel_type_code
)
{
pobj
.
actionBody
.
type
=
regCfg
.
channelTypeCode
[
pobj
.
actionBody
.
channel_type_code
]
pobj
.
actionBody
.
idempotentSource
=
"baidu_gsreg"
;
}
if
(
pobj
.
actionBody
.
description
&&
pobj
.
actionBody
.
description
.
indexOf
(
"备#"
)
<
0
)
{
pobj
.
actionBody
.
level
=
"A"
;
}
else
{
// var levelurl = "http://106.13.228.212:8000/recProbability";
// var levelresult = await this.restPostUrl({ intentionBizId: pobj.actionBody.intentionBizId, type: pobj.actionBody.type, note: pobj.actionBody.description }, levelurl);
// if (levelresult.status == 0) {
// pobj.actionBody.level = levelresult.data.level;
// pobj.actionBody.probability = levelresult.data.per;
// } else {
// pobj.actionBody.level = "C"
// }
pobj
.
actionBody
.
level
=
"C"
}
if
(
pobj
.
actionBody
.
phone
==
"17319425791"
)
{
pobj
.
actionBody
.
level
=
"F"
;
}
pobj
.
actionType
=
"submitRegNeed"
;
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
if
(
result
.
status
==
0
)
{
pobj
.
actionBody
.
description
=
pobj
.
actionBody
.
description
+
" 成交概率:"
+
pobj
.
actionBody
.
level
if
(
pobj
.
actionBody
.
probability
)
{
pobj
.
actionBody
.
description
=
pobj
.
actionBody
.
description
+
"("
+
pobj
.
actionBody
.
probability
+
") "
}
pobj
.
actionBody
.
idempotentId
=
pobj
.
actionBody
.
intentionBizId
;
// pobj.actionBody.idempotentSource = pobj.actionBody.type;
pobj
.
actionBody
.
customerName
=
pobj
.
actionBody
.
userName
;
this
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushNeedICPBusinessNew"
);
}
return
result
;
}
//reg需求反馈 2.2
async
regFeedbackSubmit
(
pobj
,
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
if
(
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
reqUrl
;
}
var
self
=
this
;
pobj
.
actionType
=
"regFeedbackSubmit"
;
if
(
pobj
.
actionBody
&&
pobj
.
actionBody
.
intentionStatus
)
{
pobj
.
intentionStatus
=
pobj
.
actionBody
.
intentionStatus
;
return
system
.
getResultSuccess
();
}
var
rtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
if
(
pobj
.
intentionStatus
)
{
// 如果需求当前字段为5(已关闭)则通知fq
if
(
pobj
.
intentionStatus
==
5
)
{
self
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushCloseICPNeed"
);
}
}
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
return
data
;
}
//状态更新
async
regOrderStatus
(
pobj
)
{
var
actionBody
=
pobj
.
actionBody
;
var
self
=
this
;
if
(
actionBody
.
isDirectBuy
&&
actionBody
.
isDirectBuy
==
1
)
{
actionBody
.
bizId
=
actionBody
.
orderNo
}
if
(
!
actionBody
.
bizId
)
{
return
system
.
getResult
(
null
,
"actionBody.bizId can not be empty,100495"
);
// channelNeedNo获取需求详情
async
selectNeedInfo
(
pobj
)
{
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
itemResult
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
return
itemResult
;
}
actionBody
.
BizId
=
actionBody
.
bizId
;
if
(
!
actionBody
.
status
)
{
return
system
.
getResult
(
null
,
"actionBody.status can not be empty,100495"
);
/**
* 获取需求详情
* @param {*} pobj
* @param {*} actionBody bizId 渠道方案号
*/
async
getItemByChannelSolutionNo
(
pobj
)
{
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
itemResult
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
return
itemResult
;
}
pobj
.
actionType
=
"regOrderStatus"
;
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
rtn
=
await
this
.
restPostUrl
(
pobj
,
url
);
console
.
log
(
'公司宝--rtn---'
,
rtn
)
if
(
actionBody
.
status
==
2
)
{
var
deliveryObj
=
{
actionBody
:
{
orderNo
:
rtn
.
data
.
orderNo
,
//pobj.actionBody.channelOrder.channelOrderNo,
needsolution
:
rtn
.
data
.
solutionContent
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
channelSolutionNo
:
rtn
.
data
.
channelSolutionNo
,
servicer
:
{
code
:
'gsb'
,
name
:
'公司宝'
}
},
appInfo
:
pobj
.
appInfo
}
this
.
utilsPushSve
.
business2Channel
(
deliveryObj
,
"pushDeliveryOrder"
);
/**
* 提交需求
* @param {*} pobj
* @param {*} actionBody
*/
async
submitRegNeed
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
intentionBizId
)
{
return
system
.
getResult
(
null
,
"actionBody.intentionBizId can not be empty,100380"
);
}
var
sobj
=
pobj
;
sobj
.
actionType
=
"getProductTypeInfo"
;
var
url
=
settings
.
centerAppUrl
()
+
"action/opProduct/springBoard"
;
var
rtn
=
await
this
.
execClient
.
execPost
(
sobj
,
url
);
if
(
!
rtn
||
!
rtn
.
stdout
)
{
return
system
.
getResultFail
(
-
5015
,
"需求类型查询失败"
);
}
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
data
.
status
!=
0
)
{
return
system
.
getResultFail
(
-
5016
,
"需求类型查询失败"
);
}
pobj
.
actionBody
.
service_product_id
=
data
.
data
.
service_product_id
;
pobj
.
actionBody
.
productId
=
data
.
data
.
service_product_id
;
pobj
.
actionBody
.
appName
=
pobj
.
appInfo
.
app_name
;
pobj
.
actionBody
.
type_code
=
data
.
data
.
type_code
;
pobj
.
actionBody
.
type_name
=
data
.
data
.
type_name
;
pobj
.
actionBody
.
channel_type_code
=
data
.
data
.
channel_type_code
;
pobj
.
actionBody
.
channel_type_name
=
data
.
data
.
channel_type_name
;
pobj
.
actionBody
.
idempotentId
=
pobj
.
actionBody
.
intentionBizId
;
pobj
.
actionBody
.
idempotentSourceName
=
pobj
.
appInfo
.
app_name
;
if
(
pobj
.
actionBody
.
channel_type_code
)
{
pobj
.
actionBody
.
type
=
regCfg
.
channelTypeCode
[
pobj
.
actionBody
.
channel_type_code
]
pobj
.
actionBody
.
idempotentSource
=
"baidu_gsreg"
;
}
if
(
pobj
.
actionBody
.
description
&&
pobj
.
actionBody
.
description
.
indexOf
(
"备#"
)
<
0
)
{
pobj
.
actionBody
.
level
=
"A"
;
}
else
{
// var levelurl = "http://106.13.228.212:8000/recProbability";
// var levelresult = await this.restPostUrl({ intentionBizId: pobj.actionBody.intentionBizId, type: pobj.actionBody.type, note: pobj.actionBody.description }, levelurl);
// if (levelresult.status == 0) {
// pobj.actionBody.level = levelresult.data.level;
// pobj.actionBody.probability = levelresult.data.per;
// } else {
// pobj.actionBody.level = "C"
// }
pobj
.
actionBody
.
level
=
"C"
}
if
(
pobj
.
actionBody
.
phone
==
"17319425791"
)
{
pobj
.
actionBody
.
level
=
"F"
;
}
pobj
.
actionType
=
"submitRegNeed"
;
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
if
(
result
.
status
==
0
)
{
pobj
.
actionBody
.
description
=
pobj
.
actionBody
.
description
+
" 成交概率:"
+
pobj
.
actionBody
.
level
if
(
pobj
.
actionBody
.
probability
)
{
pobj
.
actionBody
.
description
=
pobj
.
actionBody
.
description
+
"("
+
pobj
.
actionBody
.
probability
+
") "
}
pobj
.
actionBody
.
idempotentId
=
pobj
.
actionBody
.
intentionBizId
;
// pobj.actionBody.idempotentSource = pobj.actionBody.type;
pobj
.
actionBody
.
customerName
=
pobj
.
actionBody
.
userName
;
this
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushNeedICPBusinessNew"
);
}
return
result
;
}
if
(
rtn
.
status
==
0
&&
actionBody
.
status
!=
1
&&
actionBody
.
status
!=
2
&&
rtn
.
data
)
{
var
tmpObj
=
{
actionBody
:
{
orderNo
:
rtn
.
data
.
orderNo
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
needsolution
:
rtn
.
data
.
solutionContent
},
appInfo
:
pobj
.
appInfo
}
this
.
utilsPushSve
.
business2Channel
(
tmpObj
,
"pushDeliveryStatusNotify"
);
pobj
.
actionBody
.
orderNo
=
rtn
.
data
.
orderNo
;
if
(
actionBody
.
status
==
11
)
{
var
orderrtn
=
await
self
.
utilsOrderSve
.
delOrder
(
pobj
,
pobj
.
actionBody
);
if
(
orderrtn
.
status
<
0
)
{
return
system
.
getResultFail
(
-
5022
,
"订单关闭失败"
);
}
tmpObj
.
actionBody
.
orderNo
=
rtn
.
data
.
channelSolutionNo
;
self
.
utilsPushSve
.
business2Channel
(
tmpObj
,
"pushOrderICPClose"
);
}
}
//通知更新状态
return
rtn
;
}
//关闭reg订单
async
regOrderClose
(
pobj
)
{
// var actionBody = pobj.actionBody;
var
self
=
this
;
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
rtn
=
await
this
.
restPostUrl
(
pobj
,
url
);
if
(
rtn
.
status
==
0
&&
rtn
.
data
)
{
var
channelOrderNo
=
pobj
.
actionBody
.
orderNo
;
// pobj.actionBody.orderNo = rtn.data.orderNo;
// pobj.actionType="delOrder";
// var orderrtn = await self.utilsOrderSve.delOrder(pobj, actionBody);
// if (orderrtn.status < 0) {
// return system.getResultFail(-5022, "订单关闭失败");
// }
var
tmpObj
=
{
actionBody
:
{
orderNo
:
rtn
.
data
.
orderNo
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
needsolution
:
rtn
.
data
.
solutionContent
},
appInfo
:
pobj
.
appInfo
}
this
.
utilsPushSve
.
business2Channel
(
tmpObj
,
"pushDeliveryStatusNotify"
);
// tmpObj.actionBody.orderNo = channelOrderNo;
var
tmpObj2
=
{
actionBody
:
{
orderNo
:
channelOrderNo
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
needsolution
:
rtn
.
data
.
solutionContent
},
appInfo
:
pobj
.
appInfo
};
self
.
utilsPushSve
.
business2Channel
(
tmpObj2
,
"pushOrderICPClose"
);
}
//通知更新状态
return
rtn
;
}
//--------------3.
//提交reg注册方案
async
regSubmitSolution
(
pobj
)
{
console
.
log
(
'reg --- pobj -----'
,
pobj
)
var
s
var
subSnLength
if
(
pobj
.
actionBody
.
solutionList
){
subSnLength
=
pobj
.
actionBody
.
solutionList
.
length
for
(
s
=
0
;
s
<
subSnLength
;
s
++
){
if
(
!
pobj
.
actionBody
.
solutionList
[
s
].
solutionContent
.
solution
.
channelSolutionNo
){
var
res
=
await
this
.
reqCenterOrderApi
(
pobj
,
"action/regapi/springBoard"
);
}
else
{
pobj
.
actionType
=
"updateSolution"
var
res
=
await
this
.
reqCenterOrderApi
(
pobj
,
"action/regapi/springBoard"
);
}
}
//reg需求反馈 2.2
async
regFeedbackSubmit
(
pobj
,
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
if
(
reqUrl
)
{
var
url
=
this
.
centerOrderUrl
+
reqUrl
;
}
var
self
=
this
;
pobj
.
actionType
=
"regFeedbackSubmit"
;
if
(
pobj
.
actionBody
&&
pobj
.
actionBody
.
intentionStatus
)
{
pobj
.
intentionStatus
=
pobj
.
actionBody
.
intentionStatus
;
}
var
rtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
if
(
pobj
.
intentionStatus
)
{
// 如果需求当前字段为5(已关闭)则通知fq
if
(
pobj
.
intentionStatus
==
5
)
{
self
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushCloseICPNeed"
);
}
}
var
data
=
JSON
.
parse
(
rtn
.
stdout
);
return
data
;
}
if
(
res
&&
res
.
status
==
0
&&
res
.
data
&&
res
.
data
.
needinfo
&&
res
.
data
.
needsolutions
)
{
console
.
log
(
'reg --- res -----'
,
res
)
var
needinfo
=
res
.
data
.
needinfo
;
//需求信息
var
needsolutions
=
res
.
data
.
needsolutions
;
//方案信息
//状态更新
async
regOrderStatus
(
pobj
)
{
var
actionBody
=
pobj
.
actionBody
;
var
self
=
this
;
var
bizTypes
;
var
solutionList
=
[];
if
(
needinfo
.
uapp_id
==
regCfg
.
uappId
.
baidu
){
//推送数据至baidu
var
i
=
0
;
var
needsolutionsLength
=
needsolutions
.
length
;
var
channelSolutionNo
;
for
(
i
=
0
;
i
<
needsolutionsLength
;
i
++
){
bizTypes
=
needsolutions
[
i
].
solutionContent
;
console
.
log
(
'bizTypes-----'
,
bizTypes
)
console
.
log
(
'bizTypes type-----'
,
typeof
(
bizTypes
))
if
(
typeof
(
bizTypes
)
==
'string'
){
bizTypes
=
JSON
.
parse
(
bizTypes
)
if
(
actionBody
.
isDirectBuy
&&
actionBody
.
isDirectBuy
==
1
)
{
actionBody
.
bizId
=
actionBody
.
orderNo
}
if
(
!
actionBody
.
bizId
)
{
return
system
.
getResult
(
null
,
"actionBody.bizId can not be empty,100495"
);
}
actionBody
.
BizId
=
actionBody
.
bizId
;
if
(
!
actionBody
.
status
)
{
return
system
.
getResult
(
null
,
"actionBody.status can not be empty,100495"
);
}
pobj
.
actionType
=
"regOrderStatus"
;
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
rtn
=
await
this
.
restPostUrl
(
pobj
,
url
);
console
.
log
(
'公司宝--rtn---'
,
rtn
)
if
(
actionBody
.
status
==
2
)
{
var
deliveryObj
=
{
actionBody
:
{
orderNo
:
rtn
.
data
.
orderNo
,
//pobj.actionBody.channelOrder.channelOrderNo,
needsolution
:
rtn
.
data
.
solutionContent
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
channelSolutionNo
:
rtn
.
data
.
channelSolutionNo
,
servicer
:
{
code
:
'gsb'
,
name
:
'公司宝'
}
},
appInfo
:
pobj
.
appInfo
}
bizTypes
.
solution
.
area
=
regCfg
.
baiduAreaCode
[
bizTypes
.
solution
.
area
]
bizTypes
.
solution
.
serviceArea
=
bizTypes
.
solution
.
area
bizTypes
.
solution
.
isWhether
=
true
//是否刻章,必带刻章true
//根据前端传参channelSolutionNo判断是新建方案还是修改方案
if
(
pobj
.
actionBody
.
solutionList
[
i
].
solutionContent
.
solution
.
channelSolutionNo
){
channelSolutionNo
=
pobj
.
actionBody
.
solutionList
[
i
].
solutionContent
.
solution
.
channelSolutionNo
var
list
=
{
bizId
:
channelSolutionNo
,
gsbBizId
:
needsolutions
[
i
].
solutionNo
,
bizType
:
bizTypes
.
bizType
,
solutionContent
:
bizTypes
.
solution
}
}
else
{
var
list
=
{
gsbBizId
:
needsolutions
[
i
].
solutionNo
,
bizType
:
bizTypes
.
bizType
,
solutionContent
:
bizTypes
.
solution
}
this
.
utilsPushSve
.
business2Channel
(
deliveryObj
,
"pushDeliveryOrder"
);
}
if
(
rtn
.
status
==
0
&&
actionBody
.
status
!=
1
&&
actionBody
.
status
!=
2
&&
rtn
.
data
)
{
var
tmpObj
=
{
actionBody
:
{
orderNo
:
rtn
.
data
.
orderNo
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
needsolution
:
rtn
.
data
.
solutionContent
},
appInfo
:
pobj
.
appInfo
}
solutionList
.
push
(
list
)
}
var
pushObj
=
{
intentionBizId
:
needinfo
.
channelNeedNo
,
solutionList
:
solutionList
};
console
.
log
(
'pushObj---pushObj---'
,
pushObj
)
var
pushBaiduRegSolution
=
await
this
.
pushBaiduRegSolution
(
pushObj
,
pobj
.
appInfo
,
self
);
console
.
log
(
'pushBaiduRegSolution+++'
,
pushBaiduRegSolution
)
if
(
pushBaiduRegSolution
.
status
!=
0
){
return
system
.
getResultFail
(
-
101
,
pushBaiduRegSolution
.
msg
)
}
}
this
.
logCtl
.
info
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
op
:
"service/impl/common/regCenterOrderSve.js/submitSolution"
,
content
:
JSON
.
stringify
(
pobj
),
resultInfo
:
JSON
.
stringify
(
needinfo
),
optitle
:
"createSolution推送蜂擎获取的接口信息->aliBusiness2Delivery"
,
});
var
reqParams
=
{
actionBody
:
{
intentionBizId
:
needinfo
.
channelNeedNo
,
status
:
"createSolution"
},
appInfo
:
pobj
.
appInfo
}
await
this
.
utilsPushSve
.
business2Channel
(
reqParams
,
"updateChanceStatus"
);
}
return
res
;
}
//推送reg方案
async
pushBaiduRegSolution
(
pushObj
,
appInfo
,
self
)
{
console
.
log
(
'pushObj++baidu+++'
,
pushObj
)
//推送方案信息
var
pushRes
=
await
self
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?submitSolutions="
,
reqbody
:
pushObj
});
console
.
log
(
"pushRes----"
,
pushRes
)
if
(
pushRes
&&
pushRes
.
status
==
0
&&
pushRes
.
data
&&
pushRes
.
data
.
data
&&
pushRes
.
data
.
data
.
infos
)
{
var
reqObj2
=
{
actionType
:
"saveReginfo"
,
appInfo
:
appInfo
,
actionBody
:
{
infos
:
pushRes
.
data
.
data
.
infos
}
};
var
a
=
await
self
.
reqCenterOrderApi
(
reqObj2
);
//保存渠道方案id,用户确认方案url
console
.
log
(
"保存渠道方案id,用户确认方案url aaaa++ "
,
a
)
this
.
utilsPushSve
.
business2Channel
(
tmpObj
,
"pushDeliveryStatusNotify"
);
pobj
.
actionBody
.
orderNo
=
rtn
.
data
.
orderNo
;
if
(
actionBody
.
status
==
11
)
{
var
orderrtn
=
await
self
.
utilsOrderSve
.
delOrder
(
pobj
,
pobj
.
actionBody
);
if
(
orderrtn
.
status
<
0
)
{
return
system
.
getResultFail
(
-
5022
,
"订单关闭失败"
);
}
tmpObj
.
actionBody
.
orderNo
=
rtn
.
data
.
channelSolutionNo
;
self
.
utilsPushSve
.
business2Channel
(
tmpObj
,
"pushOrderICPClose"
);
}
}
//通知更新状态
return
rtn
;
}
return
pushRes
.
data
;
}
//reg关闭需求
async
regNeedClose
(
pobj
)
{
pobj
.
actionBody
.
intentionBizId
=
pobj
.
actionBody
.
channelNeedNo
;
pobj
.
actionType
=
"regNeedClose"
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
console
.
log
(
'regNeedClose+++result'
,
result
)
if
(
result
&&
result
.
status
==
0
)
{
//推送交付系统
var
reqParams
=
{
actionBody
:
{
intentionBizId
:
pobj
.
actionBody
.
channelNeedNo
,
status
:
"closeNeed"
},
opType
:
"updateChanceStatus"
,
appInfo
:
pobj
.
appInfo
}
this
.
utilsPushSve
.
business2Channel
(
reqParams
,
"updateChanceStatus"
);
//日志记录
this
.
logCtl
.
info
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
op
:
"service/impl/common/regCenterOrderSve.js/regNeedClose"
,
content
:
JSON
.
stringify
(
reqParams
),
resultInfo
:
""
,
optitle
:
"updateChanceStatus推送蜂擎获取的接口信息->aliBusiness2Delivery"
,
});
var
pushObj
=
{
intentionBizId
:
pobj
.
actionBody
.
channelNeedNo
,
note
:
pobj
.
actionBody
.
note
}
console
.
log
(
'pushObj----/////'
,
pushObj
)
// 推送baidu
var
a
=
await
this
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?close="
,
reqbody
:
pushObj
});
console
.
log
(
'regNeedClose+++a----'
,
a
)
//查看日志
this
.
logCtl
.
info
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
op
:
"service/impl/common/regCenterOrderSve.js/regNeedClose"
,
content
:
JSON
.
stringify
(
a
),
resultInfo
:
""
,
optitle
:
"推送baidu-reg关闭需求->closeNeed"
,
});
this
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushCloseICPNeed"
);
}
return
result
;
}
//提交交付信息/修改订单状态
async
regUpdateOrderStatus
(
pobj
)
{
var
res
=
await
this
.
reqCenterOrderApi
(
pobj
,
"action/regapi/springBoard"
);
console
.
log
(
'推送交付信息/修改订单状态res+++++'
,
res
)
console
.
log
(
'推送交付信息/修改订单状态++pobj+++'
,
pobj
)
if
(
res
&&
res
.
status
==
0
&&
res
.
data
)
{
var
deliverContent
if
(
pobj
.
actionBody
.
deliverContent
){
if
(
pobj
.
actionBody
.
deliverContent
.
companyInfo
&&
pobj
.
actionBody
.
deliverContent
.
companyInfo
.
serviceArea
){
pobj
.
actionBody
.
deliverContent
.
companyInfo
.
serviceArea
=
regCfg
.
baiduAreaCode
[
pobj
.
actionBody
.
deliverContent
.
companyInfo
.
serviceArea
]
}
deliverContent
=
{
applicationFormUrl
:
pobj
.
actionBody
.
deliverContent
.
applicationFormUrl
||
""
,
//公司注册申请登记表文件
registDocumentsUrl
:
pobj
.
actionBody
.
deliverContent
.
registDocumentsUrl
||
""
,
//注册文件
baseInfo
:
pobj
.
actionBody
.
deliverContent
.
baseInfo
||
{},
//基本信息
companyInfo
:
pobj
.
actionBody
.
deliverContent
.
companyInfo
||
{}
//公司信息
}
}
if
(
res
.
data
.
uapp_id
==
regCfg
.
uappId
.
baidu
){
//推送数据至百度
var
pushObj
=
{
orderNo
:
res
.
data
.
bizId
,
status
:
res
.
data
.
deliveryContent
.
status
,
deliverContent
:
deliverContent
};
//关闭reg订单
async
regOrderClose
(
pobj
)
{
// var actionBody = pobj.actionBody;
var
self
=
this
;
//推送交付信息/修改订单状态
var
baidu
=
await
self
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/comreg"
,
reqbody
:
pushObj
});
console
.
log
(
'推送交付信息/修改订单状态baidu+++'
,
baidu
)
console
.
log
(
'推送交付信息/修改订单状态pushObj+++'
,
pushObj
)
return
baidu
.
data
}
console
.
log
(
'rsrsr++++------------++++'
,
res
)
var
url
=
settings
.
centerOrderUrl
()
+
"action/regapi/springBoard"
;
var
rtn
=
await
this
.
restPostUrl
(
pobj
,
url
);
if
(
rtn
.
status
==
0
&&
rtn
.
data
)
{
var
channelOrderNo
=
pobj
.
actionBody
.
orderNo
;
// pobj.actionBody.orderNo = rtn.data.orderNo;
// pobj.actionType="delOrder";
// var orderrtn = await self.utilsOrderSve.delOrder(pobj, actionBody);
// if (orderrtn.status < 0) {
// return system.getResultFail(-5022, "订单关闭失败");
// }
var
tmpObj
=
{
actionBody
:
{
orderNo
:
rtn
.
data
.
orderNo
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
needsolution
:
rtn
.
data
.
solutionContent
},
appInfo
:
pobj
.
appInfo
}
this
.
utilsPushSve
.
business2Channel
(
tmpObj
,
"pushDeliveryStatusNotify"
);
// tmpObj.actionBody.orderNo = channelOrderNo;
var
tmpObj2
=
{
actionBody
:
{
orderNo
:
channelOrderNo
,
channelNeedNo
:
rtn
.
data
.
channelNeedNo
,
needsolution
:
rtn
.
data
.
solutionContent
},
appInfo
:
pobj
.
appInfo
};
self
.
utilsPushSve
.
business2Channel
(
tmpObj2
,
"pushOrderICPClose"
);
}
//通知更新状态
return
rtn
;
}
return
res
}
//reg回写沟通记录
async
regWriteCommunicationLog
(
pobj
)
{
console
.
log
(
'reg回写沟通记录---'
,
pobj
)
var
self
=
this
;
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
console
.
log
(
'reg回写沟通记录--result---'
,
result
)
var
pushObj
=
{}
if
(
result
&&
result
.
status
==
0
&&
result
.
data
)
{
pushObj
=
{
intentionBizId
:
pobj
.
actionBody
.
intentionBizId
,
note
:
pobj
.
actionBody
.
note
}
if
(
result
.
data
==
regCfg
.
uappId
.
baidu
)
{
var
ress
=
await
self
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?addCommRecord="
,
reqbody
:
pushObj
});
if
(
ress
.
data
.
status
!=
0
){
return
system
.
getResultFail
(
ress
.
data
.
msg
)
}
console
.
log
(
"regWriteCommunicationLog---------"
,
ress
)
}
//--------------3.
//提交reg注册方案
async
regSubmitSolution
(
pobj
)
{
console
.
log
(
'reg --- pobj -----'
,
pobj
)
var
s
var
subSnLength
var
res
if
(
pobj
.
actionBody
.
solutionList
)
{
subSnLength
=
pobj
.
actionBody
.
solutionList
.
length
for
(
s
=
0
;
s
<
subSnLength
;
s
++
)
{
if
(
!
pobj
.
actionBody
.
solutionList
[
s
].
solutionContent
.
solution
.
channelSolutionNo
)
{
res
=
await
this
.
reqCenterOrderApi
(
pobj
,
"action/regapi/springBoard"
);
}
else
{
pobj
.
actionType
=
"updateSolution"
res
=
await
this
.
reqCenterOrderApi
(
pobj
,
"action/regapi/springBoard"
);
}
}
}
console
.
log
(
'reg -----res -----'
,
res
)
if
(
res
&&
res
.
status
==
0
&&
res
.
data
&&
res
.
data
.
needinfo
&&
res
.
data
.
needsolutions
)
{
console
.
log
(
'reg --- res -----'
,
res
)
var
needinfo
=
res
.
data
.
needinfo
;
//需求信息
var
needsolutions
=
res
.
data
.
needsolutions
;
//方案信息
var
self
=
this
;
var
bizTypes
;
var
solutionList
=
[];
if
(
needinfo
.
uapp_id
==
regCfg
.
uappId
.
baidu
)
{
//推送数据至baidu
var
i
=
0
;
var
needsolutionsLength
=
needsolutions
.
length
;
var
channelSolutionNo
;
for
(
i
=
0
;
i
<
needsolutionsLength
;
i
++
)
{
bizTypes
=
needsolutions
[
i
].
solutionContent
;
console
.
log
(
'bizTypes-----'
,
bizTypes
)
console
.
log
(
'bizTypes type-----'
,
typeof
(
bizTypes
))
if
(
typeof
(
bizTypes
)
==
'string'
)
{
bizTypes
=
JSON
.
parse
(
bizTypes
)
}
bizTypes
.
solution
.
area
=
regCfg
.
baiduAreaCode
[
bizTypes
.
solution
.
area
]
bizTypes
.
solution
.
serviceArea
=
bizTypes
.
solution
.
area
bizTypes
.
solution
.
isWhether
=
true
//是否刻章,必带刻章true
//根据前端传参channelSolutionNo判断是新建方案还是修改方案
if
(
pobj
.
actionBody
.
solutionList
[
i
].
solutionContent
.
solution
.
channelSolutionNo
)
{
channelSolutionNo
=
pobj
.
actionBody
.
solutionList
[
i
].
solutionContent
.
solution
.
channelSolutionNo
var
list
=
{
bizId
:
channelSolutionNo
,
gsbBizId
:
needsolutions
[
i
].
solutionNo
,
bizType
:
bizTypes
.
bizType
,
solutionContent
:
bizTypes
.
solution
}
}
else
{
var
list
=
{
gsbBizId
:
needsolutions
[
i
].
solutionNo
,
bizType
:
bizTypes
.
bizType
,
solutionContent
:
bizTypes
.
solution
}
}
solutionList
.
push
(
list
)
}
var
pushObj
=
{
intentionBizId
:
needinfo
.
channelNeedNo
,
solutionList
:
solutionList
};
console
.
log
(
'pushObj---pushObj---'
,
pushObj
)
var
pushBaiduRegSolution
=
await
this
.
pushBaiduRegSolution
(
pushObj
,
pobj
.
appInfo
,
self
);
console
.
log
(
'pushBaiduRegSolution+++'
,
pushBaiduRegSolution
)
if
(
pushBaiduRegSolution
.
status
!=
0
)
{
return
system
.
getResultFail
(
-
101
,
pushBaiduRegSolution
.
msg
)
}
}
this
.
logCtl
.
info
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
op
:
"service/impl/common/regCenterOrderSve.js/submitSolution"
,
content
:
JSON
.
stringify
(
pobj
),
resultInfo
:
JSON
.
stringify
(
needinfo
),
optitle
:
"createSolution推送蜂擎获取的接口信息->aliBusiness2Delivery"
,
});
var
reqParams
=
{
actionBody
:
{
intentionBizId
:
needinfo
.
channelNeedNo
,
status
:
"createSolution"
},
appInfo
:
pobj
.
appInfo
}
await
this
.
utilsPushSve
.
business2Channel
(
reqParams
,
"updateChanceStatus"
);
}
return
res
;
}
//推送交付系统
var
reqParams
=
{
actionBody
:
{
intentionBizId
:
pobj
.
actionBody
.
intentionBizId
,
status
:
"followingUp"
},
opType
:
"updateChanceStatus"
,
appInfo
:
pobj
.
appInfo
//推送reg方案
async
pushBaiduRegSolution
(
pushObj
,
appInfo
,
self
)
{
console
.
log
(
'pushObj++baidu+++'
,
pushObj
)
//推送方案信息
var
pushRes
=
await
self
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?submitSolutions="
,
reqbody
:
pushObj
});
console
.
log
(
"pushRes----"
,
pushRes
)
if
(
pushRes
&&
pushRes
.
status
==
0
&&
pushRes
.
data
&&
pushRes
.
data
.
data
&&
pushRes
.
data
.
data
.
infos
)
{
var
reqObj2
=
{
actionType
:
"saveReginfo"
,
appInfo
:
appInfo
,
actionBody
:
{
infos
:
pushRes
.
data
.
data
.
infos
}
};
var
a
=
await
self
.
reqCenterOrderApi
(
reqObj2
);
//保存渠道方案id,用户确认方案url
console
.
log
(
"保存渠道方案id,用户确认方案url aaaa++ "
,
a
)
}
return
pushRes
.
data
;
}
self
.
utilsPushSve
.
business2Channel
(
reqParams
,
"updateChanceStatus"
);
var
fqobj
=
{
actionBody
:
{
"bizId"
:
pobj
.
actionBody
.
intentionBizId
,
"follow_date"
:
(
new
Date
()).
toISOString
(),
"follow_content"
:
pobj
.
actionBody
.
note
},
opType
:
"aliFollowup"
,
appInfo
:
pobj
.
appInfo
//reg关闭需求
async
regNeedClose
(
pobj
)
{
pobj
.
actionBody
.
intentionBizId
=
pobj
.
actionBody
.
channelNeedNo
;
pobj
.
actionType
=
"regNeedClose"
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
console
.
log
(
'regNeedClose+++result'
,
result
)
if
(
result
&&
result
.
status
==
0
)
{
//推送交付系统
var
reqParams
=
{
actionBody
:
{
intentionBizId
:
pobj
.
actionBody
.
channelNeedNo
,
status
:
"closeNeed"
},
opType
:
"updateChanceStatus"
,
appInfo
:
pobj
.
appInfo
}
this
.
utilsPushSve
.
business2Channel
(
reqParams
,
"updateChanceStatus"
);
//日志记录
this
.
logCtl
.
info
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
op
:
"service/impl/common/regCenterOrderSve.js/regNeedClose"
,
content
:
JSON
.
stringify
(
reqParams
),
resultInfo
:
""
,
optitle
:
"updateChanceStatus推送蜂擎获取的接口信息->aliBusiness2Delivery"
,
});
var
pushObj
=
{
intentionBizId
:
pobj
.
actionBody
.
channelNeedNo
,
note
:
pobj
.
actionBody
.
note
}
// 推送baidu
var
tmpResult
=
await
this
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?close="
,
reqbody
:
pushObj
});
//查看日志
this
.
logCtl
.
info
({
appid
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_id
||
""
:
""
,
appkey
:
pobj
.
appInfo
?
pobj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
pobj
.
requestId
||
""
,
op
:
"service/impl/common/regCenterOrderSve.js/regNeedClose"
,
content
:
JSON
.
stringify
(
pushObj
),
resultInfo
:
JSON
.
stringify
(
tmpResult
),
optitle
:
"推送baidu-reg关闭需求返回结果->closeNeed"
,
});
if
(
result
.
data
&&
result
.
data
.
uapp_id
==
44
){
pobj
.
appInfo
.
uapp_id
=
44
if
(
pobj
&&
pobj
.
actionBody
&&
pobj
.
actionBody
.
note
){
pobj
.
actionBody
[
'description'
]
=
pobj
.
actionBody
.
note
}
}
this
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushCloseICPNeed"
);
}
return
result
;
}
self
.
utilsPushSve
.
business2Channel
(
fqobj
,
"aliFollowup"
);
return
result
}
//reg查询沟通记录
async
regQueryExpertCommunicationLogs
(
pobj
)
{
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
console
.
log
(
'jilu+++result++++'
,
result
)
if
(
result
&&
result
.
status
==
0
&&
result
.
data
&&
result
.
data
.
uapp_id
)
{
var
pushObj
=
{};
if
(
result
.
data
.
uapp_id
==
regCfg
.
uappId
.
baidu
)
{
console
.
log
(
"bbbbb++"
,
pobj
)
pushObj
=
{
beginTime
:
pobj
.
actionBody
.
BeginTime
?
pobj
.
actionBody
.
BeginTime
:
""
,
endTime
:
pobj
.
actionBody
.
EndTime
?
pobj
.
actionBody
.
EndTime
:
""
,
intentionBizId
:
pobj
.
actionBody
.
intentionBizId
}
var
res
=
await
this
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?listCommRecords="
,
reqbody
:
pushObj
});
console
.
log
(
'xxcc+++'
,
res
)
}
//提交交付信息/修改订单状态
async
regUpdateOrderStatus
(
pobj
)
{
var
res
=
await
this
.
reqCenterOrderApi
(
pobj
,
"action/regapi/springBoard"
);
console
.
log
(
'推送交付信息/修改订单状态res+++++'
,
res
)
console
.
log
(
'推送交付信息/修改订单状态++pobj+++'
,
pobj
)
var
deliverContent
=
{}
var
pushObj
=
{}
if
(
res
&&
res
.
status
==
0
&&
res
.
data
)
{
if
(
pobj
.
actionBody
.
deliverContent
)
{
if
(
pobj
.
actionBody
.
deliverContent
.
companyInfo
&&
pobj
.
actionBody
.
deliverContent
.
companyInfo
.
serviceArea
)
{
pobj
.
actionBody
.
deliverContent
.
companyInfo
.
serviceArea
=
regCfg
.
baiduAreaCode
[
pobj
.
actionBody
.
deliverContent
.
companyInfo
.
serviceArea
]
}
deliverContent
=
{
applicationFormUrl
:
pobj
.
actionBody
.
deliverContent
.
applicationFormUrl
||
""
,
//公司注册申请登记表文件
registDocumentsUrl
:
pobj
.
actionBody
.
deliverContent
.
registDocumentsUrl
||
""
,
//注册文件
baseInfo
:
pobj
.
actionBody
.
deliverContent
.
baseInfo
||
{},
//基本信息
companyInfo
:
pobj
.
actionBody
.
deliverContent
.
companyInfo
||
{}
//公司信息
}
}
if
(
res
.
data
.
uapp_id
==
regCfg
.
uappId
.
baidu
)
{
//2021-5-18新增套餐公司注册与正常公司注册区分
if
(
pobj
.
actionBody
.
consultType
&&
pobj
.
actionBody
.
consultType
==
"GSREG"
){
//推送正常公司注册数据至百度
pushObj
=
{
orderNo
:
res
.
data
.
bizId
,
status
:
res
.
data
.
deliveryContent
.
status
,
deliverContent
:
deliverContent
};
}
if
(
pobj
.
actionBody
.
consultType
&&
pobj
.
actionBody
.
consultType
==
"QYJYTC1"
){
//推送套餐1公司注册数据至百度
pushObj
=
{
orderNo
:
res
.
data
.
bizId
,
status
:
res
.
data
.
deliveryContent
.
status
,
deliverContent
:
deliverContent
,
consultType
:
pobj
.
actionBody
.
consultType
,
//需求类型: GSREG:正常原始公司注册; QYJYTC1:企业经营套餐1; QYJYTC2:企业经营套餐2;
productType
:
pobj
.
actionBody
.
productType
//套餐包含业的务类型: 不传为原始公司注册
};
}
if
(
pobj
.
actionBody
.
consultType
&&
pobj
.
actionBody
.
consultType
==
"QYJYTC2"
){
//推送套餐2公司注册数据至百度
//代理记账和地址服务需要单独的开始和结束时间
//地址服务:时间截止到天, 代理记账:时间截止到月, 时间字段都是秒
if
(
pobj
.
actionBody
.
productType
==
"DLJZ"
||
pobj
.
actionBody
.
productType
==
"DZFW"
){
pushObj
=
{
orderNo
:
res
.
data
.
bizId
,
status
:
res
.
data
.
deliveryContent
.
status
,
deliverContent
:
deliverContent
,
consultType
:
pobj
.
actionBody
.
consultType
,
//需求类型: GSREG:正常原始公司注册; QYJYTC1:企业经营套餐1; QYJYTC2:企业经营套餐2;
productType
:
pobj
.
actionBody
.
productType
,
//套餐包含业的务类型: 不传为原始公司注册
startTime
:
pobj
.
actionBody
.
startTime
,
//开始时间
endTime
:
pobj
.
actionBody
.
endTime
//结束时间
};
}
else
{
pushObj
=
{
orderNo
:
res
.
data
.
bizId
,
status
:
res
.
data
.
deliveryContent
.
status
,
deliverContent
:
deliverContent
,
consultType
:
pobj
.
actionBody
.
consultType
,
//需求类型: GSREG:正常原始公司注册; QYJYTC1:企业经营套餐1; QYJYTC2:企业经营套餐2;
productType
:
pobj
.
actionBody
.
productType
//套餐包含业的务类型: 不传为原始公司注册
};
}
}
var
self
=
this
;
//推送交付信息/修改订单状态
var
baidu
=
await
self
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/comreg"
,
reqbody
:
pushObj
});
console
.
log
(
'推送交付信息/修改订单状态baidu+++'
,
baidu
)
console
.
log
(
'推送交付信息/修改订单状态pushObj+++'
,
pushObj
)
return
baidu
.
data
}
console
.
log
(
'rsrsr++++------------++++'
,
res
)
}
return
res
}
//reg回写沟通记录
async
regWriteCommunicationLog
(
pobj
)
{
console
.
log
(
'reg回写沟通记录---'
,
pobj
)
var
self
=
this
;
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
console
.
log
(
'reg回写沟通记录--result---'
,
result
)
var
pushObj
=
{}
if
(
result
&&
result
.
status
==
0
&&
result
.
data
)
{
pushObj
=
{
intentionBizId
:
pobj
.
actionBody
.
intentionBizId
,
note
:
pobj
.
actionBody
.
note
}
if
(
result
.
data
==
regCfg
.
uappId
.
baidu
)
{
var
ress
=
await
self
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?addCommRecord="
,
reqbody
:
pushObj
});
if
(
ress
.
data
.
status
!=
0
)
{
return
system
.
getResultFail
(
ress
.
data
.
msg
)
}
console
.
log
(
"regWriteCommunicationLog---------"
,
ress
)
}
}
//推送交付系统
var
reqParams
=
{
actionBody
:
{
intentionBizId
:
pobj
.
actionBody
.
intentionBizId
,
status
:
"followingUp"
},
opType
:
"updateChanceStatus"
,
appInfo
:
pobj
.
appInfo
}
self
.
utilsPushSve
.
business2Channel
(
reqParams
,
"updateChanceStatus"
);
var
fqobj
=
{
actionBody
:
{
"bizId"
:
pobj
.
actionBody
.
intentionBizId
,
"follow_date"
:
(
new
Date
()).
toISOString
(),
"follow_content"
:
pobj
.
actionBody
.
note
},
opType
:
"aliFollowup"
,
appInfo
:
pobj
.
appInfo
}
self
.
utilsPushSve
.
business2Channel
(
fqobj
,
"aliFollowup"
);
return
result
}
if
(
res
&&
res
.
data
&&
res
.
data
.
infos
){
res
.
data
[
'Data'
]
=
res
.
data
.
infos
//reg查询沟通记录
async
regQueryExpertCommunicationLogs
(
pobj
)
{
var
reqUrl
=
this
.
centerOrderUrl
+
"action/regapi/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
console
.
log
(
'jilu+++result++++'
,
result
)
if
(
result
&&
result
.
status
==
0
&&
result
.
data
&&
result
.
data
.
uapp_id
)
{
var
pushObj
=
{};
if
(
result
.
data
.
uapp_id
==
regCfg
.
uappId
.
baidu
)
{
console
.
log
(
"bbbbb++"
,
pobj
)
pushObj
=
{
beginTime
:
pobj
.
actionBody
.
BeginTime
?
pobj
.
actionBody
.
BeginTime
:
""
,
endTime
:
pobj
.
actionBody
.
EndTime
?
pobj
.
actionBody
.
EndTime
:
""
,
intentionBizId
:
pobj
.
actionBody
.
intentionBizId
}
var
res
=
await
this
.
baiduRegClient
.
baiduReqbyget
({
path
:
"/v1/provider/demand?listCommRecords="
,
reqbody
:
pushObj
});
console
.
log
(
'xxcc+++'
,
res
)
}
}
if
(
res
&&
res
.
data
&&
res
.
data
.
infos
)
{
res
.
data
[
'Data'
]
=
res
.
data
.
infos
}
return
system
.
getResultSuccess
(
res
);
}
return
system
.
getResultSuccess
(
res
);
}
//-----------接入百度reg------end----------------------------------
}
module
.
exports
=
RegCenterOrderService
;
\ No newline at end of file
center-channel/app/base/service/impl/common/rtSve.js
View file @
133705b4
...
...
@@ -240,6 +240,12 @@ class RtService extends AppServiceBase {
var
a
=
await
this
.
baiduclient
.
baiduReqbyget
({
path
:
"/api/bla/provider/requirement/update"
,
reqbody
:
pushObj
});
console
.
log
(
'rt closeNeed+++'
,
a
)
}
if
(
result
.
data
&&
result
.
data
.
uapp_id
==
44
){
pobj
.
appInfo
.
uapp_id
=
44
if
(
pobj
&&
pobj
.
actionBody
&&
pobj
.
actionBody
.
note
){
pobj
.
actionBody
[
'description'
]
=
pobj
.
actionBody
.
note
}
}
this
.
utilsPushSve
.
business2Channel
(
pobj
,
"pushCloseICPNeed"
);
}
return
result
;
...
...
center-channel/app/base/service/impl/utilsSve/utilsAliyunNoteSve.js
0 → 100644
View file @
133705b4
const
AppServiceBase
=
require
(
"../../app.base"
);
var
settings
=
require
(
"../../../../config/settings"
);
const
system
=
require
(
"../../../system"
);
class
UtilsAliyunInfoService
extends
AppServiceBase
{
constructor
()
{
super
();
}
async
sendAliyunInfoByNeedId
(
pobj
)
{
let
verifyResult
=
await
this
.
opAliyunRpcVerifyParam
(
pobj
);
if
(
verifyResult
.
status
!=
0
)
{
return
verifyResult
;
}
let
interface_params
=
verifyResult
.
data
;
let
params
=
{
action
:
interface_params
.
action
,
reqbody
:
pobj
.
reqbody
,
rpcParam
:
{}
}
if
(
interface_params
.
accessKeyId
)
{
params
.
rpcParam
.
accessKeyId
=
interface_params
.
accessKeyId
;
}
if
(
interface_params
.
accessKeySecret
)
{
params
.
rpcParam
.
accessKeySecret
=
interface_params
.
accessKeySecret
;
}
if
(
interface_params
.
endpoint
)
{
params
.
rpcParam
.
endpoint
=
interface_params
.
endpoint
;
}
if
(
interface_params
.
apiVersion
)
{
params
.
rpcParam
.
apiVersion
=
interface_params
.
apiVersion
;
}
let
aliResult
=
await
this
.
opAliyunRpcReq
(
pobj
,
params
);
return
await
this
.
disposePushResult
(
pobj
,
aliResult
,
"ali->sendAliyunInfoByNeedId->aliResult"
,
this
.
pushlogFailType
.
FQ
);
}
}
module
.
exports
=
UtilsAliyunInfoService
;
center-channel/app/base/service/impl/utilsSve/utilsNeedSve2.js
View file @
133705b4
...
...
@@ -25,10 +25,10 @@ class UtilsNeedService2 extends AppServiceBase {
//this.baseCenterOrderSve = system.getObject("service.common.baseCenterOrderSve");
}
/**
* icp关闭需求
* @param {*} pobj
* @param {*} actionBody
*/
* icp关闭需求
* @param {*} pobj
* @param {*} actionBody
*/
async
needCloseIcp
(
pobj
,
actionBody
)
{
console
.
log
(
'guanbi icp xuqiu pobj+++'
,
pobj
)
if
(
actionBody
.
uapp_id
==
uappId
.
ali
)
{
...
...
@@ -185,7 +185,7 @@ class UtilsNeedService2 extends AppServiceBase {
if
(
result
.
data
.
uapp_id
==
uappId
.
ename
)
{
// yiming / ename
console
.
log
(
"queryExpertApplyCommunicationLogs---ename---pobj--"
,
pobj
)
console
.
log
(
'settings.enameClientUrl()+"queryExpertApplyCommunicationLogs"----'
,
settings
.
enameClientUrl
()
+
"queryExpertApplyCommunicationLogs"
)
var
res
=
await
self
.
execClient
.
execEnamePost
({
var
res
=
await
self
.
execClient
.
execEnamePost
({
BeginTime
:
pobj
.
actionBody
.
BeginTime
?
pobj
.
actionBody
.
BeginTime
:
""
,
EndTime
:
pobj
.
actionBody
.
EndTime
?
pobj
.
actionBody
.
EndTime
:
""
,
BizId
:
pobj
.
actionBody
.
intentionBizId
,
...
...
center-channel/app/base/service/impl/utilsSve/utilsOrderSve.js
View file @
133705b4
...
...
@@ -1729,6 +1729,16 @@ class UtilsOrderService extends AppServiceBase {
* @param {*} actionBody
*/
async
receiveAliTmOrder
(
pobj
,
actionBody
)
{
var
res
=
await
this
.
receiveFqbossTmOrder
(
pobj
,
actionBody
);
return
res
;
}
/**
* 接收蜂擎boss商标订单
* @param {*} pobj
* @param {*} actionBody
*/
async
receiveFqbossTmOrder
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
channelItemCode
)
{
return
system
.
getResult
(
null
,
"产品编码有误,100010"
);
}
...
...
@@ -1743,12 +1753,58 @@ class UtilsOrderService extends AppServiceBase {
}
pobj
.
productInfo
=
productItemResult
.
data
.
data
;
pobj
.
productInfo
.
price_item
=
pobj
.
productInfo
.
price_list
[
0
];
pobj
.
actionType
=
"receive
Ali
TmOrder"
;
pobj
.
actionType
=
"receive
Fqboss
TmOrder"
;
var
reqUrl
=
this
.
centerOrderUrl
+
"action/order/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
if
(
result
&&
result
.
status
==
0
){
if
(
pobj
.
appInfo
&&
pobj
.
appInfo
.
uapp_id
!=
18
&&
!
pobj
.
actionBody
.
serviceOrderNo
){
//京东云自助商标注册
await
this
.
pushChannelOrder2fq
(
pobj
);
}
}
return
result
;
}
async
pushChannelOrder2fq
(
pobj
)
{
try
{
var
yfobj
=
{
actionBody
:
{
idempotentSource
:
pobj
.
productInfo
.
service_business_code
||
''
,
//渠道来源 N
quantity
:
1
,
//数量 N
needId
:
pobj
.
actionBody
.
needNo
||
''
,
//需求id N
contactsName
:
pobj
.
actionBody
.
contactsName
||
''
,
//联系人名称 N
companyName
:
pobj
.
actionBody
.
applyName
||
''
,
//公司名称 N
scope
:
"商标自助订单进行备案,不用做任何处理"
,
// N
orderNo
:
pobj
.
actionBody
.
channelOrderNo
,
orderPrice
:
300
,
//写死 自助300
phone
:
pobj
.
actionBody
.
contactsMobile
,
appName
:
pobj
.
appInfo
.
app_name
||
''
,
sku
:
'125855508212158464'
//写死 自助一个
},
appInfo
:
pobj
.
appInfo
};
//yfPushRes.data.data
// {"contractNo":null,"orderNos":["20010618850"],"orderList":[{"operator_name":"系统用户","operatorName":"系统用户","operator":"124496450905186304","order_id":"20010618850","order_no":"20010618850","orderNo":"20010618850","message":"success","contractNo":null}]}
var
yfPushRes
=
await
this
.
utilsPushSve
.
business2Channel
(
yfobj
,
"pushOrderICPBusinessNew"
);
//日志记录
this
.
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"企服通渠道订单推送至蜂擎:,method=pushChannelOrder2fq"
,
op
:
"service/impl/utilsSve/utilsOrderSve.js/pushChannelOrder2fq"
,
content
:
"参数:"
+
JSON
.
stringify
(
pobj
)
+
";返回结果:"
+
JSON
.
stringify
(
yfPushRes
),
clientIp
:
""
});
}
catch
(
e
)
{
//日志记录
this
.
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"企服通渠道订单推送至蜂擎异常:,method=pushChannelOrder2fq"
,
op
:
"service/impl/utilsSve/utilsOrderSve.js/pushChannelOrder2fq---error"
,
content
:
"参数:"
+
JSON
.
stringify
(
pobj
)
+
";异常信息:"
+
JSON
.
stringify
(
e
.
stack
),
clientIp
:
""
});
console
.
log
(
"service/impl/utilsSve/utilsOrderSve.js/pushChannelOrder2fq推送异常"
,
e
.
stack
);
}
}
/**
* 接收阿里订单退款信息git
* @param {*} pobj
...
...
center-channel/app/base/service/impl/utilsSve/utilsPushSve.js
View file @
133705b4
...
...
@@ -14,7 +14,7 @@ class UtilsPushService extends AppServiceBase {
let
productItemInterfaceResult
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
pobj
.
interface_info
=
productItemInterfaceResult
.
data
;
//日志记录
this
.
execClientNew
.
execLogs
(
`
${
pobj
.
opType
}
推送蜂擎获取的接口信息->business2Channel->app(getAppInterface)`
,
pobj
,
"center-channel-utilsPushSve-business2Channel"
,
productItemInterfaceResult
.
data
,
null
);
this
.
execClientNew
.
execLogs
(
`
${
opType
}
推送蜂擎获取的接口信息->business2Channel->app(getAppInterface)`
,
pobj
,
"center-channel-utilsPushSve-business2Channel"
,
productItemInterfaceResult
.
data
,
null
);
if
(
pobj
.
interface_info
&&
pobj
.
interface_info
.
length
>
0
)
{
let
tmpResult
=
await
this
.
pushBusInfo
(
pobj
,
opType
,
1
);
return
system
.
getResultSuccess
(
tmpResult
);
...
...
@@ -73,11 +73,11 @@ class UtilsPushService extends AppServiceBase {
try
{
if
(
interface_info
.
interface_type
==
"bd"
)
{
if
(
!
interface_info
.
method_name
)
{
return
system
.
getResult
(
null
,
"
产品接口参数信息有误
,100350"
);
return
system
.
getResult
(
null
,
"
接口对应的method_name参数信息为空
,100350"
);
}
//操作的方法名称
var
invokeObj
=
system
.
getObject
(
interface_info
.
interface_url
);
if
(
!
invokeObj
[
interface_info
.
method_name
])
{
return
system
.
getResult
(
null
,
"
产品接口
参数方法信息有误,100360"
);
return
system
.
getResult
(
null
,
"
接口对应的method_name
参数方法信息有误,100360"
);
}
pobj
.
interface_params
=
interface_info
.
params
;
var
params
=
[
pobj
];
...
...
center-channel/app/config/businessConfig.js
View file @
133705b4
...
...
@@ -18,7 +18,7 @@ module.exports = {
"rtSubmitMaterial"
,
"rtNotification"
,
"rtSubmitSolution"
,
"rtCloseNeed"
,
"rtClosePlan"
,
"getParamsFor360"
,
"addOrderWeb"
,
"getPayRecords"
,
"getLoginInfo"
,
"putUserMobileByVcode"
,
"putUserPwdByMobile"
,
"icpNotifyNew"
,
"getOrderStatisticsByUappId"
,
"getOrderStatisticsByProduct"
,
"getOrdersComparison"
,
"getOrdersComparisonList"
,
"importOrders"
,
"importNeeds"
,
"receiveAliTmOrder"
,
"receiveAliTmOrderRefund"
,
"receiveAliTmStatus"
,
"importOrders"
,
"importNeeds"
,
"receiveAliTmOrder"
,
"receiveFqbossTmOrder"
,
"receiveAliTmOrderRefund"
,
"receiveAliTmStatus"
,
//百度工商注册
"regGetInfoByChannelNeedNo"
,
"submitRegNeed"
,
"regFeedbackSubmit"
,
"regOrderStatus"
,
"regOrderClose"
,
"getSolutionByChannelOrderNo"
,
"regSubmitSolution"
,
"regNeedClose"
,
...
...
@@ -58,6 +58,10 @@ module.exports = {
"/api/tm/status/notify"
,
"/api/tm/tmcase/nbtzreceiveAssistTmData"
,
"/api/tm/tmcase/nbtzreceiveEditAssistTmData"
],
apiAliSendKeyPathList
:
[
"/api/opreceive/pushAliInfo/tmNote"
,
"/api/opreceive/pushAliInfo/icNote"
,
]
},
AREACOMM
:
{
...
...
center-channel/app/config/routes/api.js
View file @
133705b4
...
...
@@ -6,700 +6,725 @@ const utilsFeishuSve = system.getObject("service.utilsSve.utilsFeishuSve");
const
signSve
=
system
.
getObject
(
"service.common.signSve"
);
const
xml2js
=
require
(
'xml2js'
);
const
jwt
=
require
(
'jsonwebtoken'
);
const
{
PDICT
}
=
require
(
"../../config/businessConfig"
);
const
{
PDICT
}
=
require
(
"../../config/businessConfig"
);
const
settings
=
require
(
"../../config/settings"
);
module
.
exports
=
function
(
app
)
{
//-----------------------新的模式---------web---------开始
//-----------------------新的模式---------web---------开始
app
.
use
(
'/tlpay/aliPayNotify'
,
async
function
(
req
,
res
)
{
//钉钉接入的搁浅
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
opH5AliDingPayBackNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录阿里钉钉支付回调处理结果"
,
op
:
"center-channel/tlpay/aliPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"阿里钉钉支付回调处理异常"
,
op
:
"center-channel/tlpay/aliPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/tlpay/notify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
receiveCallBackNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录回调处理结果:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"回调结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录回调处理结果异常:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/tlpay/opBackNotify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
opBackNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"回调处理订单结果:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/opBackNotify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"回调处理订单结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
res
.
end
(
JSON
.
stringify
(
result
));
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录回调处理结果异常:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/opBackNotify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
//----------------------飞书小程序---------------------------------------------开始
app
.
use
(
'/tlpay/aliPayNotify'
,
async
function
(
req
,
res
)
{
//钉钉接入的搁浅
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
opH5AliDingPayBackNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录阿里钉钉支付回调处理结果"
,
op
:
"center-channel/tlpay/aliPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"阿里钉钉支付回调处理异常"
,
op
:
"center-channel/tlpay/aliPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/tlpay/notify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
receiveCallBackNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录回调处理结果:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"回调结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录回调处理结果异常:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/tlpay/opBackNotify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
opBackNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"回调处理订单结果:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/opBackNotify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"回调处理订单结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
res
.
end
(
JSON
.
stringify
(
result
));
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录回调处理结果异常:,method="
+
req
.
body
.
trxcode
,
op
:
"center-channel/tlpay/opBackNotify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
//----------------------飞书小程序---------------------------------------------开始
//飞书通知
app
.
use
(
'/feishu/notify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsFeishuSve
.
notify
(
req
.
body
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果,method=notify"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"回调结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
var
returnObj
=
JSON
.
stringify
(
result
);
return
res
.
end
(
returnObj
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果异常:,method=notify"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/feishu/login'
,
async
function
(
req
,
res
)
{
try
{
var
result
=
system
.
getResult
(
null
,
"login fail"
);
// console.log(req,"/feishu/login++++++++++++++++++++++++++++++++++++++");
var
client_ip
=
system
.
get_client_ip
(
req
);
var
pobj
=
req
.
query
;
var
token
=
pobj
.
state
||
""
;
if
(
!
token
)
{
result
.
msg
=
"req headers token can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
var
result
=
await
cacheManager
[
"AppTokenByHostsCache"
].
getCache
(
token
,
system
.
exTime
);
if
(
result
.
status
!=
0
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
pobj
.
appInfo
=
result
.
data
;
result
=
await
utilsFeishuSve
.
checkAndLogin
(
req
,
pobj
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果,method=login"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
pobj
)
+
"回调结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
var
returnObj
=
JSON
.
stringify
(
result
);
return
res
.
end
(
returnObj
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果异常:,method=login"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
query
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
//----------------------飞书小程序---------------------------------------------结束
//飞书通知
app
.
use
(
'/feishu/notify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsFeishuSve
.
notify
(
req
.
body
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果,method=notify"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"回调结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
var
returnObj
=
JSON
.
stringify
(
result
);
return
res
.
end
(
returnObj
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果异常:,method=notify"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
body
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/feishu/login'
,
async
function
(
req
,
res
)
{
try
{
var
result
=
system
.
getResult
(
null
,
"login fail"
);
// console.log(req,"/feishu/login++++++++++++++++++++++++++++++++++++++");
var
client_ip
=
system
.
get_client_ip
(
req
);
var
pobj
=
req
.
query
;
var
token
=
pobj
.
state
||
""
;
if
(
!
token
)
{
result
.
msg
=
"req headers token can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
var
result
=
await
cacheManager
[
"AppTokenByHostsCache"
].
getCache
(
token
,
system
.
exTime
);
if
(
result
.
status
!=
0
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
pobj
.
appInfo
=
result
.
data
;
result
=
await
utilsFeishuSve
.
checkAndLogin
(
req
,
pobj
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果,method=login"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
pobj
)
+
"回调结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
var
returnObj
=
JSON
.
stringify
(
result
);
return
res
.
end
(
returnObj
);
}
catch
(
error
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果异常:,method=login"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
content
:
"回调参数:"
+
JSON
.
stringify
(
req
.
query
)
+
"error:"
+
error
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
//----------------------飞书小程序---------------------------------------------结束
// app-ali支付回调通知
app
.
use
(
'/orderNotify/aliPayNotify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
aliPayNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录支付宝回调处理结果 api层"
,
op
:
"center-channel/orderNotify/aliPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
}
catch
(
e
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"支付宝回调处理异常 api层"
,
op
:
"center-channel/orderNotify/aliPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
// app-wx支付回调
app
.
use
(
'/orderNotify/wxPayNotify'
,
async
function
(
req
,
res
)
{
try
{
var
body
=
""
;
// app-ali支付回调通知
app
.
use
(
'/orderNotify/aliPayNotify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
aliPayNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录支付宝回调处理结果 api层"
,
op
:
"center-channel/orderNotify/aliPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
}
catch
(
e
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"支付宝回调处理异常 api层"
,
op
:
"center-channel/orderNotify/aliPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
// app-wx支付回调
app
.
use
(
'/orderNotify/wxPayNotify'
,
async
function
(
req
,
res
)
{
try
{
var
body
=
""
;
req
.
on
(
'data'
,
function
(
data
)
{
body
+=
data
;
});
req
.
on
(
'end'
,
async
function
()
{
xml2js
.
parseString
(
body
,
{
trim
:
true
,
explicitArray
:
false
,
explicitRoot
:
false
},
async
function
(
err
,
json
)
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
wxPayNotify
(
json
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录微信支付回调处理结果"
,
op
:
"center-channel/orderNotify/wxPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
})
req
.
on
(
'data'
,
function
(
data
)
{
body
+=
data
;
});
req
.
on
(
'end'
,
async
function
()
{
xml2js
.
parseString
(
body
,
{
trim
:
true
,
explicitArray
:
false
,
explicitRoot
:
false
},
async
function
(
err
,
json
)
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
wxPayNotify
(
json
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"记录微信支付回调处理结果"
,
op
:
"center-channel/orderNotify/wxPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
})
})
}
catch
(
e
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"微信回调处理异常"
,
op
:
"center-channel/orderNotify/wxPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
})
}
catch
(
e
)
{
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"微信回调处理异常"
,
op
:
"center-channel/orderNotify/wxPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/orderNotify/channelPayNotify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
let
result
=
{};
result
=
await
utilsOrderSve
.
channelPayNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"渠道支付订单通知 api层"
,
op
:
"center-channel/orderNotify/channelPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
var
returnObj
=
JSON
.
stringify
(
result
);
return
res
.
end
(
returnObj
);
}
catch
(
e
)
{
var
client_ip
=
system
.
get_client_ip
(
req
);
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"渠道订单支付通知处理异常"
,
op
:
"center-channel/orderNotify/channelPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
use
(
'/orderNotify/channelPayNotify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
let
result
=
{};
result
=
await
utilsOrderSve
.
channelPayNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"渠道支付订单通知 api层"
,
op
:
"center-channel/orderNotify/channelPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
var
returnObj
=
JSON
.
stringify
(
result
);
return
res
.
end
(
returnObj
);
}
catch
(
e
)
{
var
client_ip
=
system
.
get_client_ip
(
req
);
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"渠道订单支付通知处理异常"
,
op
:
"center-channel/orderNotify/channelPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
all
(
"/web/*"
,
async
function
(
req
,
res
,
next
)
{
const
self
=
this
;
var
result
=
system
.
getResult
(
null
,
"req method must is post"
);
if
(
req
.
method
!=
"POST"
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
if
(
!
req
.
body
.
actionType
)
{
result
.
msg
=
"actionType can not be empty"
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// 2020 0812 lin 只去掉了check,因为要记录智能诊断的返回值,其他接口暂时未去掉
if
([
"getAppTokenByHosts"
,
"getAppTokenByAppKey"
,
"test"
,
"getIndustries"
,
"getSecondIndustries"
,
"getQualificationByIndustry"
,
"counselling"
,
"queryTradeProduceList"
].
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
req
.
body
.
actionBody
.
appHosts
=
req
.
host
;
next
();
return
;
}
if
(
req
.
body
.
actionType
==
"receiveCallBackNotify"
)
{
req
.
body
.
actionBody
.
app_hosts
=
req
.
host
;
next
();
return
;
}
var
token
=
req
.
headers
[
"token"
]
||
""
;
if
(
!
token
)
{
result
.
msg
=
"req headers token can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
//校验jwt产生的token
const
tokenSecret
=
settings
.
env
==
"localhost"
||
settings
.
env
==
"dev"
?
PDICT
.
token_secret_dev
:
PDICT
.
token_secret_prod
;
let
token_secret_str
=
null
;
jwt
.
verify
(
token
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,error:"
+
err
));
}
else
{
token_secret_str
=
decoded
.
token_secret
;
}
});
let
decryptResult
=
await
utilsAuthSve
.
decryptInfo
(
token_secret_str
);
if
(
decryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,fail:"
+
decryptResult
.
msg
));
}
let
tmpAppInfo
=
JSON
.
parse
(
decryptResult
.
data
);
req
.
body
.
appInfo
=
tmpAppInfo
;
req
.
body
.
actionProcess
=
tmpAppInfo
.
app_code
;
app
.
all
(
"/web/*"
,
async
function
(
req
,
res
,
next
)
{
const
self
=
this
;
var
result
=
system
.
getResult
(
null
,
"req method must is post"
);
if
(
req
.
method
!=
"POST"
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
if
(
!
req
.
body
.
actionType
)
{
result
.
msg
=
"actionType can not be empty"
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// 2020 0812 lin 只去掉了check,因为要记录智能诊断的返回值,其他接口暂时未去掉
if
([
"getAppTokenByHosts"
,
"getAppTokenByAppKey"
,
"test"
,
"getIndustries"
,
"getSecondIndustries"
,
"getQualificationByIndustry"
,
"counselling"
,
"queryTradeProduceList"
].
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
req
.
body
.
actionBody
.
appHosts
=
req
.
host
;
next
();
return
;
}
if
(
req
.
body
.
actionType
==
"receiveCallBackNotify"
)
{
req
.
body
.
actionBody
.
app_hosts
=
req
.
host
;
next
();
return
;
}
var
token
=
req
.
headers
[
"token"
]
||
""
;
if
(
!
token
)
{
result
.
msg
=
"req headers token can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
//校验jwt产生的token
const
tokenSecret
=
settings
.
env
==
"localhost"
||
settings
.
env
==
"dev"
?
PDICT
.
token_secret_dev
:
PDICT
.
token_secret_prod
;
let
token_secret_str
=
null
;
jwt
.
verify
(
token
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,error:"
+
err
));
}
else
{
token_secret_str
=
decoded
.
token_secret
;
}
});
let
decryptResult
=
await
utilsAuthSve
.
decryptInfo
(
token_secret_str
);
if
(
decryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,fail:"
+
decryptResult
.
msg
));
}
let
tmpAppInfo
=
JSON
.
parse
(
decryptResult
.
data
);
req
.
body
.
appInfo
=
tmpAppInfo
;
req
.
body
.
actionProcess
=
tmpAppInfo
.
app_code
;
//去除缓存,改用jwt模式
// var cacheManager = system.getObject("db.common.cacheManager");
// var result = await cacheManager["AppTokenByHostsCache"].getCache(token, system.exTime);
// if (result.status != 0) {
// res.end(JSON.stringify(result));
// return;
// }
// req.body.appInfo = result.data;
// req.body.actionProcess = result.data.app_code;
if
(
PDICT
.
webMustUserpinList
.
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
var
userpin
=
req
.
headers
[
"userpin"
]
||
""
;
if
(
!
userpin
)
{
result
.
status
=
system
.
noLogin
;
result
.
msg
=
"req headers userpin can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
let
userpin_secret_str
=
null
;
jwt
.
verify
(
userpin
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,error:"
+
err
));
}
else
{
userpin_secret_str
=
decoded
.
userpin_secret
;
}
});
let
userDecryptResult
=
await
utilsAuthSve
.
decryptInfo
(
userpin_secret_str
);
if
(
userDecryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,fail:"
+
userDecryptResult
.
msg
));
}
let
tmpUserInfo
=
JSON
.
parse
(
userDecryptResult
.
data
);
req
.
body
.
userInfo
=
tmpUserInfo
;
if
(
req
.
body
.
actionType
===
"getLoginInfo"
)
{
result
=
system
.
getResultSuccess
(
tmpUserInfo
);
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// var params = {
// "appInfo": req.body.appInfo,
// "actionType": "getLoginInfo",
// "actionBody": {
// "userpin": userpin
// }
// }
// result = await utilsAuthSve.getLoginInfo(params, params.actionBody);
// if (result.status != 0) {
// result.status = system.noLogin;
// result.msg = "user login is invalidation";
// res.end(JSON.stringify(result));
// return;
// }
// req.body.userInfo = result.data;
//去除缓存,改用jwt模式
// var cacheManager = system.getObject("db.common.cacheManager");
// var result = await cacheManager["AppTokenByHostsCache"].getCache(token, system.exTime);
// if (result.status != 0) {
// res.end(JSON.stringify(result));
// return;
// }
// req.body.appInfo = result.data;
// req.body.actionProcess = result.data.app_code;
if
(
PDICT
.
webMustUserpinList
.
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
var
userpin
=
req
.
headers
[
"userpin"
]
||
""
;
if
(
!
userpin
)
{
result
.
status
=
system
.
noLogin
;
result
.
msg
=
"req headers userpin can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
let
userpin_secret_str
=
null
;
jwt
.
verify
(
userpin
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,error:"
+
err
));
}
else
{
userpin_secret_str
=
decoded
.
userpin_secret
;
}
});
let
userDecryptResult
=
await
utilsAuthSve
.
decryptInfo
(
userpin_secret_str
);
if
(
userDecryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,fail:"
+
userDecryptResult
.
msg
));
}
let
tmpUserInfo
=
JSON
.
parse
(
userDecryptResult
.
data
);
req
.
body
.
userInfo
=
tmpUserInfo
;
if
(
req
.
body
.
actionType
===
"getLoginInfo"
)
{
result
=
system
.
getResultSuccess
(
tmpUserInfo
);
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// var params = {
// "appInfo": req.body.appInfo,
// "actionType": "getLoginInfo",
// "actionBody": {
// "userpin": userpin
// }
// }
// result = await utilsAuthSve.getLoginInfo(params, params.actionBody);
// if (result.status != 0) {
// result.status = system.noLogin;
// result.msg = "user login is invalidation";
// res.end(JSON.stringify(result));
// return;
// }
// req.body.userInfo = result.data;
}
//需要用户登录
next
();
});
}
//需要用户登录
next
();
});
app
.
get
(
'/web/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
app
.
get
(
'/web/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
var
params
=
[];
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
app
.
post
(
'/web/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
var
params
=
[];
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
app
.
post
(
'/web/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
req
.
clientIp
=
tClientIp
;
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//-----------------------新的模式---------web---------结束
//-----------------------新的模式---------web---------结束
//-----------------------新的模式---------api---------开始
//-----------------------新的模式---------api---------开始
//百度手动获取签名sign方法
// app.post("/baidu/creatSign", async function (req, res, next) {
// if (!req.body.key) {
// res.end({ code: -200, message: "缺少加签秘钥key参数" });
// return;
// }
// if (!req.body.obj) {
// res.end({ code: -200, message: "缺少obj参数" });
// return;
// }
// let obj = req.body.obj;
// let key = req.body.key;
// let result = await signSve.createSign(obj, key);
// res.end(JSON.stringify(result));
// return;
// });
//百度手动获取签名sign方法
// app.post("/baidu/creatSign", async function (req, res, next) {
// if (!req.body.key) {
// res.end({ code: -200, message: "缺少加签秘钥key参数" });
// return;
// }
// if (!req.body.obj) {
// res.end({ code: -200, message: "缺少obj参数" });
// return;
// }
// let obj = req.body.obj;
// let key = req.body.key;
// let result = await signSve.createSign(obj, key);
// res.end(JSON.stringify(result));
// return;
// });
app
.
all
(
"/api/*"
,
async
function
(
req
,
res
,
next
)
{
var
result
=
system
.
getResult
(
null
,
"req method must is post"
);
if
(
req
.
method
!=
"POST"
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
if
(
PDICT
.
apiSecretPathList
.
indexOf
(
req
.
originalUrl
)
>=
0
)
{
//TODO:验证数据签名
var
appkey
=
req
.
headers
[
"appkey"
]
||
""
;
if
(
!
appkey
)
{
result
.
msg
=
"req headers appkey can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
sign
=
req
.
headers
[
"sign"
]
||
""
;
if
(
!
sign
)
{
result
.
msg
=
"req headers sign can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
//1.通过appkey 获取appInfo
var
appRes
=
await
signSve
.
getAppInfoByAppKey
(
appkey
);
if
(
!
appRes
||
appRes
.
status
!=
0
)
{
result
.
msg
=
"获取应用信息失败"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
appInfo
=
appRes
.
data
;
//2.通过appsecret 验签
req
.
body
.
sign
=
sign
;
var
signParams
=
req
.
body
;
var
verifyRes
=
await
signSve
.
verifySign
(
req
.
body
,
appInfo
.
uapp_secret
);
if
(
verifyRes
&&
verifyRes
.
status
==
0
)
{
req
.
body
.
appInfo
=
appInfo
;
req
.
appInfo
=
appInfo
;
req
.
actionProcess
=
appInfo
.
app_code
;
next
();
return
;
}
else
{
res
.
end
(
JSON
.
stringify
(
verifyRes
));
return
;
}
app
.
all
(
"/api/*"
,
async
function
(
req
,
res
,
next
)
{
var
result
=
system
.
getResult
(
null
,
"req method must is post"
);
if
(
req
.
method
!=
"POST"
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
console
.
log
(
req
.
originalUrl
,
"sy-------------------------------00001"
);
if
(
PDICT
.
apiAliSendKeyPathList
.
indexOf
(
req
.
originalUrl
)
>=
0
)
{
//验证数据key
var
appkey
=
req
.
headers
[
"appkey"
]
||
""
;
if
(
!
appkey
)
{
result
.
msg
=
"req headers appkey can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
if
(
appkey
!=
"201912031344"
)
{
result
.
msg
=
"req appkey verify error"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
next
();
return
;
}
if
(
PDICT
.
apiSecretPathList
.
indexOf
(
req
.
originalUrl
)
>=
0
)
{
//验证数据签名
var
appkey
=
req
.
headers
[
"appkey"
]
||
""
;
if
(
!
appkey
)
{
result
.
msg
=
"req headers appkey can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
sign
=
req
.
headers
[
"sign"
]
||
""
;
if
(
!
sign
)
{
result
.
msg
=
"req headers sign can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
//1.通过appkey 获取appInfo
var
appRes
=
await
signSve
.
getAppInfoByAppKey
(
appkey
);
if
(
!
appRes
||
appRes
.
status
!=
0
)
{
result
.
msg
=
"获取应用信息失败"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
appInfo
=
appRes
.
data
;
//2.通过appsecret 验签
req
.
body
.
sign
=
sign
;
var
signParams
=
req
.
body
;
var
verifyRes
=
await
signSve
.
verifySign
(
req
.
body
,
appInfo
.
uapp_secret
);
if
(
verifyRes
&&
verifyRes
.
status
==
0
)
{
req
.
body
.
appInfo
=
appInfo
;
req
.
appInfo
=
appInfo
;
req
.
actionProcess
=
appInfo
.
app_code
;
next
();
return
;
}
else
{
res
.
end
(
JSON
.
stringify
(
verifyRes
));
return
;
}
}
if
([
"getAppTokenByHosts"
,
"getAppTokenByAppKey"
,
"getTmNclFilterSearch"
,
"feedback"
,
"accountingInfo"
,
"booksInfo"
].
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
req
.
body
.
actionBody
.
appHosts
=
req
.
host
;
next
();
return
;
}
if
(
req
.
path
.
indexOf
(
"/taskapi/"
)
>=
0
)
{
next
();
return
;
}
if
(
!
req
.
body
.
actionType
)
{
result
.
msg
=
"actionType can not be empty"
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
token
=
req
.
headers
[
"token"
]
||
""
;
if
(
!
token
)
{
result
.
msg
=
"req headers token can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
//校验jwt产生的token
const
tokenSecret
=
settings
.
env
==
"localhost"
||
settings
.
env
==
"dev"
?
PDICT
.
token_secret_dev
:
PDICT
.
token_secret_prod
;
let
token_secret_str
=
null
;
jwt
.
verify
(
token
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,error:"
+
err
));
}
else
{
token_secret_str
=
decoded
.
token_secret
;
}
});
let
decryptResult
=
await
utilsAuthSve
.
decryptInfo
(
token_secret_str
);
if
(
decryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,fail:"
+
decryptResult
.
msg
));
}
let
tmpAppInfo
=
JSON
.
parse
(
decryptResult
.
data
);
req
.
body
.
appInfo
=
tmpAppInfo
;
req
.
body
.
actionProcess
=
tmpAppInfo
.
app_code
;
// var cacheManager = system.getObject("db.common.cacheManager");
// var result = await cacheManager["AppTokenByHostsCache"].getCache(token, system.exTime);
// if (result.status != 0) {
// res.end(JSON.stringify(result));
// return;
// }
// req.body.appInfo = result.data;
// req.body.actionProcess = result.data.app_code;
if
(
PDICT
.
apiMustUserpinList
.
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
var
userpin
=
req
.
headers
[
"userpin"
]
||
""
;
if
(
!
userpin
)
{
result
.
status
=
system
.
noLogin
;
result
.
msg
=
"req headers userpin can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// var params = {
// "appInfo": req.body.appInfo,
// "actionType": "getLoginInfo",
// "actionBody": {
// "userpin": userpin
// }
// }
// result = await utilsAuthSve.getLoginInfo(params, params.actionBody);
// if (result.status != 0) {
// result.status = system.noLogin;
// result.msg = "user login is invalidation";
// res.end(JSON.stringify(result));
// return;
// }
let
userpin_secret_str
=
null
;
jwt
.
verify
(
userpin
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,error:"
+
err
));
}
else
{
userpin_secret_str
=
decoded
.
userpin_secret
;
}
});
let
userDecryptResult
=
await
utilsAuthSve
.
decryptInfo
(
userpin_secret_str
);
if
(
userDecryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,fail:"
+
userDecryptResult
.
msg
));
}
let
tmpUserInfo
=
JSON
.
parse
(
userDecryptResult
.
data
);
req
.
body
.
userInfo
=
tmpUserInfo
;
if
(
req
.
body
.
actionType
===
"getLoginInfo"
)
{
result
=
system
.
getResultSuccess
(
tmpUserInfo
);
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
}
//需要用户登录
next
();
});
}
if
([
"getAppTokenByHosts"
,
"getAppTokenByAppKey"
,
"getTmNclFilterSearch"
,
"feedback"
,
"accountingInfo"
,
"booksInfo"
].
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
req
.
body
.
actionBody
.
appHosts
=
req
.
host
;
next
();
return
;
}
if
(
req
.
path
.
indexOf
(
"/taskapi/"
)
>=
0
)
{
next
();
return
;
}
if
(
!
req
.
body
.
actionType
)
{
result
.
msg
=
"actionType can not be empty"
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
var
token
=
req
.
headers
[
"token"
]
||
""
;
if
(
!
token
)
{
result
.
msg
=
"req headers token can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
//校验jwt产生的token
const
tokenSecret
=
settings
.
env
==
"localhost"
||
settings
.
env
==
"dev"
?
PDICT
.
token_secret_dev
:
PDICT
.
token_secret_prod
;
let
token_secret_str
=
null
;
jwt
.
verify
(
token
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,error:"
+
err
));
}
else
{
token_secret_str
=
decoded
.
token_secret
;
}
});
let
decryptResult
=
await
utilsAuthSve
.
decryptInfo
(
token_secret_str
);
if
(
decryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,fail:"
+
decryptResult
.
msg
));
}
let
tmpAppInfo
=
JSON
.
parse
(
decryptResult
.
data
);
req
.
body
.
appInfo
=
tmpAppInfo
;
req
.
body
.
actionProcess
=
tmpAppInfo
.
app_code
;
// var cacheManager = system.getObject("db.common.cacheManager");
// var result = await cacheManager["AppTokenByHostsCache"].getCache(token, system.exTime);
// if (result.status != 0) {
// res.end(JSON.stringify(result));
// return;
// }
// req.body.appInfo = result.data;
// req.body.actionProcess = result.data.app_code;
if
(
PDICT
.
apiMustUserpinList
.
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
var
userpin
=
req
.
headers
[
"userpin"
]
||
""
;
if
(
!
userpin
)
{
result
.
status
=
system
.
noLogin
;
result
.
msg
=
"req headers userpin can not be empty"
;
result
.
data
=
null
;
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// var params = {
// "appInfo": req.body.appInfo,
// "actionType": "getLoginInfo",
// "actionBody": {
// "userpin": userpin
// }
// }
// result = await utilsAuthSve.getLoginInfo(params, params.actionBody);
// if (result.status != 0) {
// result.status = system.noLogin;
// result.msg = "user login is invalidation";
// res.end(JSON.stringify(result));
// return;
// }
let
userpin_secret_str
=
null
;
jwt
.
verify
(
userpin
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,error:"
+
err
));
}
else
{
userpin_secret_str
=
decoded
.
userpin_secret
;
}
});
let
userDecryptResult
=
await
utilsAuthSve
.
decryptInfo
(
userpin_secret_str
);
if
(
userDecryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
system
.
noLogin
,
"Failed to authenticate userpin,fail:"
+
userDecryptResult
.
msg
));
}
let
tmpUserInfo
=
JSON
.
parse
(
userDecryptResult
.
data
);
req
.
body
.
userInfo
=
tmpUserInfo
;
if
(
req
.
body
.
actionType
===
"getLoginInfo"
)
{
result
=
system
.
getResultSuccess
(
tmpUserInfo
);
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
}
//需要用户登录
next
();
});
app
.
get
(
'/api/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
app
.
get
(
'/api/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
var
params
=
[];
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
app
.
post
(
'/api/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
var
params
=
[];
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
app
.
post
(
'/api/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
req
.
clientIp
=
tClientIp
;
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
classname
=
classPath
;
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//-----------------------新的模式---------api---------结束
//-----------------------新的模式---------ICP---------开始
app
.
all
(
"/icp/*"
,
async
function
(
req
,
res
,
next
)
{
var
result
=
system
.
getResult
(
null
,
"req method must is post"
);
if
(
req
.
method
!=
"POST"
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// var token = req.headers["token"] || "";
// if (!token) {
// var resfail = {
// "success": false,
// "errorMsg": "req headers token can not be empty",
// "errorCode": "ok"
// };
// res.end(JSON.stringify(resfail));
// return;
// }
// var cacheManager = system.getObject("db.common.cacheManager");
// var result = await cacheManager["AppTokenByHostsCache"].getCache(token, system.exTime);
// if (result.status != 0) {
// var resfail = {
// "success": false,
// "errorMsg": result.msg || "token error",
// "errorCode": "ok"
// };
// res.end(JSON.stringify(resfail));
// // res.end(JSON.stringify(result));
// return;
// }
// req.appInfo = result.data;
// req.body.appInfo = result.data;
// req.actionProcess = result.data.app_code;
var
token
=
req
.
headers
[
"token"
]
||
""
;
if
(
!
token
)
{
var
resfail
=
{
"success"
:
false
,
"errorMsg"
:
"req headers token can not be empty"
,
"errorCode"
:
"ok"
};
res
.
end
(
JSON
.
stringify
(
resfail
));
return
;
}
//校验jwt产生的token
const
tokenSecret
=
settings
.
env
==
"localhost"
||
settings
.
env
==
"dev"
?
PDICT
.
token_secret_dev
:
PDICT
.
token_secret_prod
;
let
token_secret_str
=
null
;
jwt
.
verify
(
token
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,error:"
+
err
));
}
else
{
token_secret_str
=
decoded
.
token_secret
;
}
});
let
decryptResult
=
await
utilsAuthSve
.
decryptInfo
(
token_secret_str
);
if
(
decryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,fail:"
+
decryptResult
.
msg
));
}
let
tmpAppInfo
=
JSON
.
parse
(
decryptResult
.
data
);
req
.
body
.
appInfo
=
tmpAppInfo
;
req
.
appInfo
=
tmpAppInfo
;
req
.
actionProcess
=
tmpAppInfo
.
app_code
;
next
();
});
//icp需求推送
app
.
post
(
'/icp/consultation/submit'
,
function
(
req
,
res
)
{
var
p
=
null
;
var
params
=
[
"icpnotify"
,
"icpSubmitNeed"
,
req
.
body
,
req
.
query
,
req
];
// gname, methodname, pobj, query, req
var
invokeObj
=
system
.
getObject
(
"api.action.icpnotify"
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//⽤户反馈需求通知服务商
app
.
post
(
'/icp/feedback/submit'
,
function
(
req
,
res
)
{
var
p
=
null
;
req
.
body
.
action_type
=
"icpFeedbackSubmit"
;
var
params
=
[
"icpnotify"
,
"icpFeedbackSubmit"
,
req
.
body
,
req
.
query
,
req
];
// gname, methodname, pobj, query, req
var
invokeObj
=
system
.
getObject
(
"api.action.icpnotify"
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//推送订单信息
app
.
post
(
'/icp/order/notify'
,
function
(
req
,
res
)
{
var
p
=
null
;
req
.
body
.
action_type
=
"icpNotify"
;
var
params
=
[
"icpnotify"
,
"icpNotify"
,
req
.
body
,
req
.
query
,
req
];
// gname, methodname, pobj, query, req
var
invokeObj
=
system
.
getObject
(
"api.action.icpnotify"
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//-----------------------新的模式---------ICP---------结束
//-----------------------新的模式---------api---------结束
//-----------------------新的模式---------ICP---------开始
app
.
all
(
"/icp/*"
,
async
function
(
req
,
res
,
next
)
{
var
result
=
system
.
getResult
(
null
,
"req method must is post"
);
if
(
req
.
method
!=
"POST"
)
{
res
.
end
(
JSON
.
stringify
(
result
));
return
;
}
// var token = req.headers["token"] || "";
// if (!token) {
// var resfail = {
// "success": false,
// "errorMsg": "req headers token can not be empty",
// "errorCode": "ok"
// };
// res.end(JSON.stringify(resfail));
// return;
// }
// var cacheManager = system.getObject("db.common.cacheManager");
// var result = await cacheManager["AppTokenByHostsCache"].getCache(token, system.exTime);
// if (result.status != 0) {
// var resfail = {
// "success": false,
// "errorMsg": result.msg || "token error",
// "errorCode": "ok"
// };
// res.end(JSON.stringify(resfail));
// // res.end(JSON.stringify(result));
// return;
// }
// req.appInfo = result.data;
// req.body.appInfo = result.data;
// req.actionProcess = result.data.app_code;
var
token
=
req
.
headers
[
"token"
]
||
""
;
if
(
!
token
)
{
var
resfail
=
{
"success"
:
false
,
"errorMsg"
:
"req headers token can not be empty"
,
"errorCode"
:
"ok"
};
res
.
end
(
JSON
.
stringify
(
resfail
));
return
;
}
//校验jwt产生的token
const
tokenSecret
=
settings
.
env
==
"localhost"
||
settings
.
env
==
"dev"
?
PDICT
.
token_secret_dev
:
PDICT
.
token_secret_prod
;
let
token_secret_str
=
null
;
jwt
.
verify
(
token
,
tokenSecret
,
function
(
err
,
decoded
)
{
// decoded:指的是token解码后用户信息
if
(
err
)
{
//如果token过期则会执行err的代码块
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,error:"
+
err
));
}
else
{
token_secret_str
=
decoded
.
token_secret
;
}
});
let
decryptResult
=
await
utilsAuthSve
.
decryptInfo
(
token_secret_str
);
if
(
decryptResult
.
status
!=
0
)
{
return
res
.
send
(
system
.
getResultFail
(
-
88
,
"Failed to authenticate token,fail:"
+
decryptResult
.
msg
));
}
let
tmpAppInfo
=
JSON
.
parse
(
decryptResult
.
data
);
req
.
body
.
appInfo
=
tmpAppInfo
;
req
.
appInfo
=
tmpAppInfo
;
req
.
actionProcess
=
tmpAppInfo
.
app_code
;
next
();
});
//icp需求推送
app
.
post
(
'/icp/consultation/submit'
,
function
(
req
,
res
)
{
var
p
=
null
;
var
params
=
[
"icpnotify"
,
"icpSubmitNeed"
,
req
.
body
,
req
.
query
,
req
];
// gname, methodname, pobj, query, req
var
invokeObj
=
system
.
getObject
(
"api.action.icpnotify"
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//⽤户反馈需求通知服务商
app
.
post
(
'/icp/feedback/submit'
,
function
(
req
,
res
)
{
var
p
=
null
;
req
.
body
.
action_type
=
"icpFeedbackSubmit"
;
var
params
=
[
"icpnotify"
,
"icpFeedbackSubmit"
,
req
.
body
,
req
.
query
,
req
];
// gname, methodname, pobj, query, req
var
invokeObj
=
system
.
getObject
(
"api.action.icpnotify"
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//推送订单信息
app
.
post
(
'/icp/order/notify'
,
function
(
req
,
res
)
{
var
p
=
null
;
req
.
body
.
action_type
=
"icpNotify"
;
var
params
=
[
"icpnotify"
,
"icpNotify"
,
req
.
body
,
req
.
query
,
req
];
// gname, methodname, pobj, query, req
var
invokeObj
=
system
.
getObject
(
"api.action.icpnotify"
);
if
(
invokeObj
[
"doexecMethod"
])
{
p
=
invokeObj
[
"doexecMethod"
].
apply
(
invokeObj
,
params
);
}
p
.
then
(
r
=>
{
res
.
end
(
JSON
.
stringify
(
r
));
});
});
//-----------------------新的模式---------ICP---------结束
};
\ No newline at end of file
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