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
8db60d12
Commit
8db60d12
authored
Jul 29, 2020
by
Sxy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 推送数据到启服通
parent
6e08c279
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
264 additions
and
13 deletions
+264
-13
icp-deliver/app/base/controller/impl/delivery/deliverCtl.js
+1
-1
icp-deliver/app/base/db/impl/delivery/deliverDao.js
+1
-3
icp-deliver/app/base/service/impl/delivery/deliverSve.js
+23
-7
icp-deliver/app/base/system.js
+6
-2
icp-deliver/app/base/utils/toqifutongClient.js
+217
-0
icp-deliver/app/config/settings.js
+16
-0
No files found.
icp-deliver/app/base/controller/impl/delivery/deliverCtl.js
View file @
8db60d12
...
@@ -23,7 +23,7 @@ class DeliverCtl extends CtlBase {
...
@@ -23,7 +23,7 @@ class DeliverCtl extends CtlBase {
if
(
val
.
delivery_status
===
system
.
ANNUALREPORT
.
TAKEEFFECT
)
{
if
(
val
.
delivery_status
===
system
.
ANNUALREPORT
.
TAKEEFFECT
)
{
val
.
delivery_status
=
val
[
'annualreports.status'
]
||
system
.
ANNUALREPORT
.
WAITDECLARE
;
val
.
delivery_status
=
val
[
'annualreports.status'
]
||
system
.
ANNUALREPORT
.
WAITDECLARE
;
}
}
val
.
source_name
=
system
.
SOURCENAME
[
val
.
source_name
]
?
system
.
SOURCENAME
[
val
.
source_name
]
:
val
.
source_name
;
val
.
source_name
=
system
.
SOURCENAME
[
val
.
source_name
]
||
val
.
source_name
;
result
.
push
(
val
);
result
.
push
(
val
);
}
}
rs
.
results
.
rows
=
result
;
rs
.
results
.
rows
=
result
;
...
...
icp-deliver/app/base/db/impl/delivery/deliverDao.js
View file @
8db60d12
...
@@ -28,9 +28,7 @@ class DeliverDao extends Dao {
...
@@ -28,9 +28,7 @@ class DeliverDao extends Dao {
switch
(
qobj
.
bizpath
)
{
switch
(
qobj
.
bizpath
)
{
case
"/deliveryManagement/wait"
:
case
"/deliveryManagement/wait"
:
qc
.
where
.
delivery_status
=
qc
.
where
.
delivery_status
||
{
qc
.
where
.
delivery_status
=
qc
.
where
.
delivery_status
||
{
$in
:
[
system
.
SERVERSESTATUS
.
RECEIVED
,
system
.
SERVERSESTATUS
.
COLLECTING
,
$notIn
:
[
system
.
SERVERSESTATUS
.
SUCCESS
,
system
.
SERVERSESTATUS
.
CLOSED
]
system
.
SERVERSESTATUS
.
SUBMITING
,
system
.
SERVERSESTATUS
.
DISPOSEING
,
system
.
SERVERSESTATUS
.
POSTING
]
}
}
break
break
case
"/deliveryManagement/all"
:
case
"/deliveryManagement/all"
:
...
...
icp-deliver/app/base/service/impl/delivery/deliverSve.js
View file @
8db60d12
...
@@ -4,6 +4,8 @@ const settings = require("../../../../config/settings");
...
@@ -4,6 +4,8 @@ const settings = require("../../../../config/settings");
const
moment
=
require
(
"moment"
);
const
moment
=
require
(
"moment"
);
const
System
=
require
(
"../../../system"
);
const
System
=
require
(
"../../../system"
);
// const pushTx = require("../../../utils/totxClient")
// const pushTx = require("../../../utils/totxClient")
const
pushQft
=
require
(
"../../../utils/toqifutongClient"
)
class
DeliverService
extends
ServiceBase
{
class
DeliverService
extends
ServiceBase
{
constructor
()
{
constructor
()
{
...
@@ -50,7 +52,10 @@ class DeliverService extends ServiceBase {
...
@@ -50,7 +52,10 @@ class DeliverService extends ServiceBase {
// 推送到商城
// 推送到商城
// await pushTx.submitMaterials(deliverData, JSON.parse(JSON.stringify(pobj.cache_info)))
// await pushTx.submitMaterials(deliverData, JSON.parse(JSON.stringify(pobj.cache_info)))
// TODO:
if
([
system
.
SERVERSESTATUS
.
COLLECTING
,
system
.
SERVERSESTATUS
.
USERCONFIRMATIONREJECT
].
includes
(
deliverData
.
delivery_status
))
{
await
pushQft
.
submitMaterials
(
deliverData
,
JSON
.
parse
(
JSON
.
stringify
(
pobj
.
cache_info
)))
}
return
this
.
db
.
transaction
(
async
(
t
)
=>
{
return
this
.
db
.
transaction
(
async
(
t
)
=>
{
await
this
.
cacheinfoDao
.
createOrUpdate
(
pobj
,
t
);
await
this
.
cacheinfoDao
.
createOrUpdate
(
pobj
,
t
);
await
this
.
materialDao
.
createOrUpdate
(
pobj
,
t
);
await
this
.
materialDao
.
createOrUpdate
(
pobj
,
t
);
...
@@ -137,19 +142,26 @@ class DeliverService extends ServiceBase {
...
@@ -137,19 +142,26 @@ class DeliverService extends ServiceBase {
switch
(
deliverData
.
delivery_status
)
{
switch
(
deliverData
.
delivery_status
)
{
case
system
.
SERVERSESTATUS
.
USERCONFIRMATIONRESOLVE
:
case
system
.
SERVERSESTATUS
.
USERCONFIRMATIONRESOLVE
:
status
=
system
.
SERVERSESTATUS
.
ACCOUNTREGISTRATION
;
status
=
system
.
SERVERSESTATUS
.
ACCOUNTREGISTRATION
;
await
pushQft
.
changeStatus
(
deliverData
,
pushQft
.
ALISTATUS
.
ACCOUNTREGISTRATION
);
break
break
case
system
.
SERVERSESTATUS
.
ACCOUNTREGISTRATION
:
case
system
.
SERVERSESTATUS
.
ACCOUNTREGISTRATION
:
status
=
system
.
SERVERSESTATUS
.
SUBMITING
;
status
=
system
.
SERVERSESTATUS
.
SUBMITING
;
await
pushQft
.
changeStatus
(
deliverData
,
pushQft
.
ALISTATUS
.
SUBMITING
);
break
break
case
system
.
SERVERSESTATUS
.
DISPOSEING
:
case
system
.
SERVERSESTATUS
.
DISPOSEING
:
// 查询 资质信息
// 查询 资质信息
const
ualificationData
=
await
this
.
qualificationDao
.
findOne
({
const
q
ualificationData
=
await
this
.
qualificationDao
.
findOne
({
deliver_id
:
deliverData
.
id
deliver_id
:
deliverData
.
id
});
});
if
(
!
ualificationData
)
{
if
(
!
q
ualificationData
)
{
throw
new
Error
(
"请上传办理的资质证照信息"
);
throw
new
Error
(
"请上传办理的资质证照信息"
);
}
}
status
=
system
.
SERVERSESTATUS
.
THROUGH
;
status
=
system
.
SERVERSESTATUS
.
THROUGH
;
await
pushQft
.
changeStatus
(
deliverData
,
pushQft
.
ALISTATUS
.
THROUGH
,
{
officialFileURL
:
qualificationData
.
file
.
url
});
break
break
case
system
.
SERVERSESTATUS
.
THROUGH
:
case
system
.
SERVERSESTATUS
.
THROUGH
:
status
=
system
.
SERVERSESTATUS
.
SUCCESS
;
status
=
system
.
SERVERSESTATUS
.
SUCCESS
;
...
@@ -158,6 +170,8 @@ class DeliverService extends ServiceBase {
...
@@ -158,6 +170,8 @@ class DeliverService extends ServiceBase {
case
system
.
SERVERSESTATUS
.
SUBMITING
:
case
system
.
SERVERSESTATUS
.
SUBMITING
:
status
=
system
.
SERVERSESTATUS
.
DISPOSEING
;
status
=
system
.
SERVERSESTATUS
.
DISPOSEING
;
// txstatus = pushTx.TXSTATUS.DISPOSEING;
// txstatus = pushTx.TXSTATUS.DISPOSEING;
await
pushQft
.
changeStatus
(
deliverData
,
pushQft
.
ALISTATUS
.
DISPOSEING
);
break
break
case
system
.
SERVERSESTATUS
.
POSTING
:
case
system
.
SERVERSESTATUS
.
POSTING
:
status
=
system
.
SERVERSESTATUS
.
SUCCESS
;
status
=
system
.
SERVERSESTATUS
.
SUCCESS
;
...
@@ -167,7 +181,6 @@ class DeliverService extends ServiceBase {
...
@@ -167,7 +181,6 @@ class DeliverService extends ServiceBase {
// await pushTx.pushChangeOrder(txstatus, deliverData.delivery_code);
// await pushTx.pushChangeOrder(txstatus, deliverData.delivery_code);
// TODO: 状态变更通知
await
this
.
dao
.
updateByWhere
({
await
this
.
dao
.
updateByWhere
({
delivery_status
:
status
delivery_status
:
status
},
{
},
{
...
@@ -290,15 +303,18 @@ class DeliverService extends ServiceBase {
...
@@ -290,15 +303,18 @@ class DeliverService extends ServiceBase {
if
(
!
deliverData
)
{
if
(
!
deliverData
)
{
throw
new
Error
(
"查不到交付单"
);
throw
new
Error
(
"查不到交付单"
);
}
}
if
(
!
[
system
.
SERVERSESTATUS
.
RECEIVED
,
system
.
SERVERSESTATUS
.
COLLECTING
].
includes
(
deliverData
.
delivery_status
))
{
//
if (![system.SERVERSESTATUS.RECEIVED, system.SERVERSESTATUS.COLLECTING].includes(deliverData.delivery_status)) {
throw
new
Error
(
"该交付单状态下不可提交"
);
//
throw new Error("该交付单状态下不可提交");
}
//
}
// 推送 关闭交付
// 推送 关闭交付
// await pushTx.pushChangeOrder(pushTx.TXSTATUS.CLOSED, deliverData.delivery_code, {
// await pushTx.pushChangeOrder(pushTx.TXSTATUS.CLOSED, deliverData.delivery_code, {
// close_reason: pobj.close_reason
// close_reason: pobj.close_reason
// });
// });
// 推送 退费
// 推送 退费
// await pushTx.returnPremium(deliverData.delivery_code);
// await pushTx.returnPremium(deliverData.delivery_code);
await
pushQft
.
closeDelivery
(
deliverData
,
{
note
:
pobj
.
close_reason
})
// 年报逻辑
// 年报逻辑
let
annualReportData
;
let
annualReportData
;
if
(
deliverData
.
master_source_number
)
{
if
(
deliverData
.
master_source_number
)
{
...
...
icp-deliver/app/base/system.js
View file @
8db60d12
...
@@ -355,7 +355,7 @@ System.SERVERSESTATUS = {
...
@@ -355,7 +355,7 @@ System.SERVERSESTATUS = {
RECEIVED
:
"received"
,
//已接单
RECEIVED
:
"received"
,
//已接单
COLLECTING
:
"collecting"
,
//收集材料中
COLLECTING
:
"collecting"
,
//收集材料中
SUBMITING
:
"submiting"
,
//递交材料中
SUBMITING
:
"submiting"
,
//递交材料中
DISPOSEING
:
"disposeing"
,
//工信部处理中
DISPOSEING
:
"disposeing"
,
//工信部处理中
|| 工信部已受理
POSTING
:
"posting"
,
//证书已邮寄
POSTING
:
"posting"
,
//证书已邮寄
SUCCESS
:
"success"
,
//服务已完成
SUCCESS
:
"success"
,
//服务已完成
CLOSED
:
"closed"
,
//已关闭
CLOSED
:
"closed"
,
//已关闭
...
@@ -365,6 +365,9 @@ System.SERVERSESTATUS = {
...
@@ -365,6 +365,9 @@ System.SERVERSESTATUS = {
USERCONFIRMATIONRESOLVE
:
"userConfirmationResolve"
,
//用户已确认递交文件
USERCONFIRMATIONRESOLVE
:
"userConfirmationResolve"
,
//用户已确认递交文件
ACCOUNTREGISTRATION
:
"accountRegistration"
,
//账户注册
ACCOUNTREGISTRATION
:
"accountRegistration"
,
//账户注册
THROUGH
:
"through"
,
//工信部通过
THROUGH
:
"through"
,
//工信部通过
THROUGHFAIL
:
"throughFail"
,
// 工信部未通过
DISPOSEINGFAIL
:
"disposeingFail"
// 工信部未受理
}
}
// 年报服务单状态
// 年报服务单状态
System
.
ANNUALREPORT
=
{
System
.
ANNUALREPORT
=
{
...
@@ -379,7 +382,8 @@ System.ANNUALREPORT = {
...
@@ -379,7 +382,8 @@ System.ANNUALREPORT = {
// 渠道名
// 渠道名
System
.
SOURCENAME
=
{
System
.
SOURCENAME
=
{
tencentCloud
:
"腾讯云"
tencentCloud
:
"腾讯云"
,
aliCloud
:
"阿里云"
}
}
/*
/*
...
...
icp-deliver/app/base/utils/toqifutongClient.js
0 → 100644
View file @
8db60d12
const
axios
=
require
(
"axios"
);
const
settings
=
require
(
"../../config/settings"
);
const
system
=
require
(
"../system"
);
const
centerChannelUrl
=
settings
.
centerChannelUrl
();
const
qifutongUrl
=
settings
.
qifutongUrl
();
const
{
appKey
,
secret
}
=
settings
;
axios
.
defaults
.
timeout
=
3
*
1000
;
// 4s
const
ALISTATUS
=
{
ACCOUNTREGISTRATION
:
507
,
// 完成账户注册
SUBMITING
:
508
,
// 提交材料到工信部
DISPOSEING
:
509
,
// 工信部已受理
DISPOSEINGFAIL
:
510
,
// 工信不予受理
THROUGH
:
511
,
// 工信部通过
THROUGHFAIL
:
512
// 工信部未通过
}
const
getAppTokenByAppKey
=
async
()
=>
{
const
data
=
await
postRequest
(
`
${
centerChannelUrl
}
/api/opreceive/accessAuth/getAppTokenByAppKey`
,
{
"actionType"
:
"getAppTokenByAppKey"
,
"actionBody"
:
{
"appkey"
:
appKey
,
"secret"
:
secret
}
});
return
data
.
token
}
const
getLoginByUserName
=
async
(
mobile
)
=>
{
const
token
=
await
getAppTokenByAppKey
();
const
data
=
await
postRequest
(
`
${
centerChannelUrl
}
/api/opreceive/accessAuth/springBoard`
,
{
"actionType"
:
"getLoginByUserName"
,
"actionBody"
:
{
"channelUserId"
:
mobile
,
"mobile"
:
mobile
,
"userName"
:
mobile
}
},
{
token
});
return
{
token
,
userpin
:
data
.
userpin
}
}
/**
* 递交材料
* @param {*} deliverData
* @param {*} materials
*/
const
submitMaterials
=
async
(
deliverData
,
materials
)
=>
{
let
{
delivery_info
:
{
serviceName
}
}
=
deliverData
;
let
{
proposerInfo
:
{
principalInfo
,
businessLicense
},
shareholderData
,
otherMaterialsInfo
,
implementationPlanInfo
:
{
webApp
}
}
=
materials
;
let
Domain
=
webApp
[
0
].
domain
;
let
CorporateName
=
businessLicense
.
name
;
let
IncludeForeignInvestment
=
[
"含外资"
,
"全外资"
].
includes
(
serviceName
);
let
PartnerBusinessLicense
=
otherMaterialsInfo
.
find
(
item
=>
{
return
item
.
title
===
'营业执照'
});
PartnerBusinessLicense
=
PartnerBusinessLicense
&&
PartnerBusinessLicense
.
file
.
url
let
PartnerIdCardList
=
[
...(
principalInfo
.
filter
(
item
=>
{
return
item
.
file
.
url
}).
map
(
item
=>
{
return
item
.
file
.
url
})
),
...(
shareholderData
.
filter
(
item
=>
{
return
item
.
file
.
url
}).
map
(
item
=>
{
return
item
.
file
.
url
})
)
];
let
PartnerDomainCertificate
=
otherMaterialsInfo
.
find
(
item
=>
{
return
item
.
title
===
'域名证书'
});
PartnerDomainCertificate
=
PartnerDomainCertificate
&&
PartnerDomainCertificate
.
file
.
url
;
let
PartnerPlan
=
otherMaterialsInfo
.
find
(
item
=>
{
return
item
.
title
===
'收费方案'
});
PartnerPlan
=
PartnerPlan
&&
PartnerPlan
.
file
.
url
;
let
PartnerForeignInvestment
=
otherMaterialsInfo
.
find
(
item
=>
{
return
item
.
title
===
'股东追溯承诺书'
});
PartnerForeignInvestment
=
PartnerForeignInvestment
&&
PartnerForeignInvestment
.
file
.
url
;
let
PartnerLaw
=
otherMaterialsInfo
.
find
(
item
=>
{
return
item
.
title
===
'依法经营电信业务承诺书'
});
PartnerLaw
=
PartnerLaw
&&
PartnerLaw
.
file
.
url
;
// let PartnerPreviewOtherList = [];
await
pushQiFuTong
(
deliverData
.
salesman_phone
,
{
actionType
:
"serviceProviderSubmitMaterial"
,
actionBody
:
{
orderNo
:
deliverData
.
delivery_code
,
//订单号 必填
material
:
{
//材料信息
Domain
,
//备案域名必填
CorporateName
,
//法人名称必填
IncludeForeignInvestment
,
//必填
PartnerBusinessLicense
,
//必填
PartnerIdCardList
,
//相关人员证书必填
PartnerDomainCertificate
,
//必填
// "PartnerPreviewOtherList": [
// "合作方递交其他供预览的件,只能传递ZIP包"
// ],
PartnerPlan
,
PartnerForeignInvestment
,
PartnerLaw
,
}
}
});
}
/**
* 改变 状态
* @param {*} status
* @param {*} sendMessage 办理的资质文件等
*/
const
changeStatus
=
async
(
deliverData
,
status
,
sendMessage
=
{})
=>
{
await
pushQiFuTong
(
deliverData
.
salesman_phone
,
{
actionType
:
"serviceProviderNotification"
,
actionBody
:
{
orderNo
:
deliverData
.
delivery_code
,
//订单号 必填
status
,
//交付状态 必填
// officialFileURL: "" //官文url 非必填
...
sendMessage
}
});
}
/**
* 关闭交付单
* @param {*} deliverData
* @param {*} sendMessage 关闭理由
*/
const
closeDelivery
=
async
(
deliverData
,
sendMessage
=
{})
=>
{
await
pushQiFuTong
(
deliverData
.
salesman_phone
,
{
actionType
:
"closeOrderDelivery"
,
actionBody
:
{
orderNo
:
deliverData
.
delivery_code
,
//订单号 必填
// officialFileURL: "" //官文url 非必填
...
sendMessage
}
});
}
/**
* 推送到 启服通
* @param {*} mobile
* @param {*} data
*/
const
pushQiFuTong
=
async
(
mobile
,
data
)
=>
{
const
header
=
await
getLoginByUserName
(
mobile
);
await
postRequest
(
`
${
qifutongUrl
}
/web/action/qcapi/springBoard`
,
data
,
header
);
}
/**
* 发送请求
* @param {*} url
* @param {*} data
*/
const
postRequest
=
async
(
url
,
data
,
headers
=
{})
=>
{
try
{
console
.
log
(
"推送启服通请求数据 ------- "
);
console
.
log
(
JSON
.
stringify
(
data
))
let
result
=
await
axios
.
post
(
url
,
data
,
{
headers
:
{
'Content-Type'
:
'application/json'
,
...
headers
}
});
result
=
result
.
data
;
console
.
log
(
"启服通返回数据 ------- "
);
console
.
log
(
result
);
if
(
result
.
status
===
0
)
{
return
result
.
data
}
else
{
throw
new
Error
(
result
.
msg
)
}
}
catch
(
err
)
{
console
.
log
(
"------ 启服通err -----"
);
console
.
log
(
err
)
throw
(
err
)
}
}
module
.
exports
=
{
submitMaterials
,
ALISTATUS
,
changeStatus
,
closeDelivery
}
\ No newline at end of file
icp-deliver/app/config/settings.js
View file @
8db60d12
...
@@ -19,6 +19,8 @@ var settings = {
...
@@ -19,6 +19,8 @@ var settings = {
port
:
process
.
env
.
NODE_PORT
||
8002
,
port
:
process
.
env
.
NODE_PORT
||
8002
,
logindex
:
"center_manage"
,
logindex
:
"center_manage"
,
appname
:
"icp_deliver"
,
appname
:
"icp_deliver"
,
appKey
:
"201912031344"
,
secret
:
"7cbb846246874167b5c7e01cd0016c88"
,
kongurl
:
function
()
{
if
(
this
.
env
==
"dev"
)
{
var
localsettings
=
require
(
"./localsettings"
);
return
localsettings
.
kongurl
;
}
else
{
return
ENVINPUT
.
KONG_ADMIAN
;
}
},
kongurl
:
function
()
{
if
(
this
.
env
==
"dev"
)
{
var
localsettings
=
require
(
"./localsettings"
);
return
localsettings
.
kongurl
;
}
else
{
return
ENVINPUT
.
KONG_ADMIAN
;
}
},
txurl
:
function
()
{
txurl
:
function
()
{
if
(
this
.
env
==
"dev"
)
{
var
localsettings
=
require
(
"./localsettings"
);
return
localsettings
.
txurl
;
}
if
(
this
.
env
==
"dev"
)
{
var
localsettings
=
require
(
"./localsettings"
);
return
localsettings
.
txurl
;
}
...
@@ -38,6 +40,20 @@ var settings = {
...
@@ -38,6 +40,20 @@ var settings = {
return
"http://sytxpublic-msgq-service"
;
return
"http://sytxpublic-msgq-service"
;
}
}
},
},
centerChannelUrl
:
function
()
{
//---------center-channel
if
(
this
.
env
==
"dev"
)
{
return
"http://alitm.qifu-dev.gongsibao.com"
;
}
else
{
return
"http://alitm.qifu-dev.gongsibao.com"
;
}
},
qifutongUrl
:
function
()
{
//---------center-channel
if
(
this
.
env
==
"dev"
)
{
return
"http://gsbweb.qifu-dev.gongsibao.com"
;
}
else
{
return
"http://gsbweb.qifu-dev.gongsibao.com"
;
}
},
pmappid
:
1
,
pmappid
:
1
,
pmcompanyid
:
1
,
pmcompanyid
:
1
,
pmroleid
:
{
"ta"
:
1
,
"pr"
:
2
},
pmroleid
:
{
"ta"
:
1
,
"pr"
:
2
},
...
...
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