Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
5
51business
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
方斌
51business
Commits
89a56c70
Commit
89a56c70
authored
Sep 16, 2019
by
李尚科
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
a3ca16a3
Pipeline
#13813
passed with stage
in 8 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
153 additions
and
54 deletions
+153
-54
callrisk.js
app/controller/credit/callrisk.js
+19
-6
credit.js
app/router/credit.js
+1
-0
apply.js
app/service/credit/apply.js
+96
-45
callrisk.js
app/service/credit/callrisk.js
+35
-1
common.js
app/service/credit/common.js
+2
-2
No files found.
app/controller/credit/callrisk.js
View file @
89a56c70
...
@@ -14,7 +14,7 @@ class CallriskController extends Controller {
...
@@ -14,7 +14,7 @@ class CallriskController extends Controller {
if
(
!
report_id
)
{
if
(
!
report_id
)
{
ctx
.
failed
(
'error report id'
);
ctx
.
failed
(
'error report id'
);
}
}
le
t
ret
=
await
ctx
.
service
.
credit
.
callrisk
.
getReport
(
report_id
);
cons
t
ret
=
await
ctx
.
service
.
credit
.
callrisk
.
getReport
(
report_id
);
ctx
.
success
(
ret
);
ctx
.
success
(
ret
);
}
}
...
@@ -24,7 +24,7 @@ class CallriskController extends Controller {
...
@@ -24,7 +24,7 @@ class CallriskController extends Controller {
*/
*/
async
callriskInit
()
{
async
callriskInit
()
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
le
t
ret
=
await
ctx
.
service
.
credit
.
apply
.
callriskInit
();
cons
t
ret
=
await
ctx
.
service
.
credit
.
apply
.
callriskInit
();
ctx
.
success
(
ret
);
ctx
.
success
(
ret
);
}
}
...
@@ -32,17 +32,30 @@ class CallriskController extends Controller {
...
@@ -32,17 +32,30 @@ class CallriskController extends Controller {
* 获取数据报告信息
* 获取数据报告信息
*/
*/
async
applyCallriskReport
()
{
async
applyCallriskReport
()
{
const
{
ctx
}
=
this
;
const
{
ctx
}
=
this
;
let
inputP
arams
=
ctx
.
request
.
body
;
const
input_p
arams
=
ctx
.
request
.
body
;
const
rule
=
{
const
rule
=
{
name
:
{
type
:
'string'
,
required
:
true
},
name
:
{
type
:
'string'
,
required
:
true
},
phone
:
{
type
:
'string'
,
required
:
true
},
phone
:
{
type
:
'string'
,
required
:
true
},
id_card
:
{
type
:
'string'
,
required
:
true
},
id_card
:
{
type
:
'string'
,
required
:
true
},
code
:
{
type
:
'string'
,
required
:
true
}
password
:
{
type
:
'string'
,
required
:
true
}
}
}
ctx
.
validate
(
rule
,
inputParams
);
ctx
.
validate
(
rule
,
input_params
);
let
ret
=
await
ctx
.
service
.
credit
.
apply
.
applyCallrisk
(
inputParams
);
await
ctx
.
service
.
credit
.
callrisk
.
checkThreeElements
(
input_params
);
const
ret
=
await
ctx
.
service
.
credit
.
apply
.
applyCallrisk
(
input_params
);
ctx
.
success
(
ret
);
ctx
.
success
(
ret
);
}
async
confirmCaptcha
()
{
const
{
ctx
}
=
this
;
const
code
=
ctx
.
request
.
body
.
code
;
const
result
=
await
ctx
.
service
.
credit
.
callrisk
.
verifyCode
(
code
);
// const result = true;
ctx
.
success
({
result
});
}
}
...
...
app/router/credit.js
View file @
89a56c70
...
@@ -26,6 +26,7 @@ module.exports = app => {
...
@@ -26,6 +26,7 @@ module.exports = app => {
router
.
get
(
'/callrisk/report/:report_id'
,
'credit.callrisk.getReport'
);
//获取报告信息
router
.
get
(
'/callrisk/report/:report_id'
,
'credit.callrisk.getReport'
);
//获取报告信息
router
.
post
(
'/callrisk/report'
,
'credit.callrisk.applyCallriskReport'
);
//查询个人通话信息
router
.
post
(
'/callrisk/report'
,
'credit.callrisk.applyCallriskReport'
);
//查询个人通话信息
router
.
get
(
'/callrisk/init'
,
'credit.callrisk.callriskInit'
);
//进入个人通话风险检测页面
router
.
get
(
'/callrisk/init'
,
'credit.callrisk.callriskInit'
);
//进入个人通话风险检测页面
router
.
post
(
'/callrisk/confirm_captcha'
,
'credit.callrisk.confirmCaptcha'
);
//获取短信验证码
};
};
app/service/credit/apply.js
View file @
89a56c70
...
@@ -309,72 +309,123 @@ class ApplyService extends Service {
...
@@ -309,72 +309,123 @@ class ApplyService extends Service {
}
}
/**
/**
* 从数据接口获取用户的
黑名单
报告信息
* 从数据接口获取用户的
个人检测
报告信息
* @param {*} inputParams
* @param {*} inputParams
*/
*/
async
applyCallrisk
(
input
Params
)
{
async
applyCallrisk
(
input
)
{
const
{
ctx
,
app
}
=
this
;
const
{
ctx
,
app
}
=
this
;
let
ret
=
{
const
{
name
,
phone
,
id_card
}
=
input
;
order_id
:
null
,
const
user_id
=
ctx
.
userId
;
report_id
:
null
,
const
app_type_id
=
ctx
.
appTypeId
;
first
:
false
,
//首次通过三要素验证后弹框提示:报告生成后,将无法查询其他人的报告
const
app_user_id
=
ctx
.
appUserId
;
second
:
false
,
//再次查询的是待支付中的订单
const
app_id
=
ctx
.
appId
;
}
const
type
=
TypeConfigp
[
'callrisk'
];
//个人通话类型
//判断用户是否第一次三要素核验成功
let
orderFilter
=
{
arrtibutes
:
[
'id'
],
where
:
{
user_id
:
ctx
.
userId
,
type
:
2
,
valid
:
1
}
}
let
orderList
=
await
ctx
.
prometheusModel
.
CreditOrder
.
findAll
(
orderFilter
);
if
(
orderList
===
undefined
||
orderList
.
length
===
0
)
{
ret
.
first
=
true
;
}
//判断用户当前三要素是否是二次查询未支付订单
//判断用户当前三要素是否是二次查询未支付订单
let
bePayOrder
=
await
ctx
.
service
.
credit
.
order
.
getBePayOrderByThree
(
'callrisk'
,
inputParams
);
const
check_second_ret
=
await
this
.
checkSecond
();
if
(
bePayOrder
!==
null
)
{
if
(
!
check_second_ret
.
order_id
)
{
ret
.
second
=
true
;
return
check_second_ret
;
ret
.
order_id
=
bePayOrder
.
id
;
ret
.
report_id
=
bePayOrder
.
report_id
;
return
ret
;
}
}
//生成订单
//生成订单
let
orderData
=
{
const
order_data
=
{
type
,
name
,
phone
,
id_card
};
type
:
1
,
const
order
=
await
ctx
.
service
.
credit
.
order
.
createOrder
(
order_data
);
name
:
inputParams
.
name
,
order_id
=
order
.
id
;
phone
:
inputParams
.
phone
,
id_card
:
inputParams
.
id_card
}
let
order
=
await
ctx
.
service
.
credit
.
order
.
createOrder
(
orderData
);
ret
.
order_id
=
order
.
id
;
//调用数据接口获取个人通话风险数据 TODO
//获取报告数据
// await this.createApply();
// const callrisk_info = result.data.data.callrisk;
// const report = await ctx.service.credit.blacklist.createReport({ name, phone, id_card }, callrisk_info);
// report_id = report.id;
//更新订单
//更新订单
//生成order_no
//生成order_no
let
orderNo
=
await
ctx
.
service
.
credit
.
common
.
getOrdertNo
(
TypeConfigFlip
[
order
.
type
],
order
.
id
);
const
order_no
=
await
ctx
.
service
.
credit
.
common
.
getOrdertNo
(
TypeConfigFlip
[
type
],
order_id
);
let
updateOrderData
=
{
const
state_time
=
moment
().
format
(
'YYYY-MM-DD HH:mm:ss'
);
order_no
:
orderNo
,
const
update_order_data
=
{
order_no
,
apply_id
:
apply
.
id
,
apply_id
:
apply
.
id
,
report_id
:
report
.
id
,
report_id
,
state
:
'待支付'
,
state
:
'待支付'
,
state_time
:
moment
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
,
state_time
,
valid
:
1
valid
:
1
}
}
await
ctx
.
prometheusModel
.
CreditOrder
.
update
(
update
OrderD
ata
,
{
where
:
{
id
:
order
.
id
}
});
await
ctx
.
prometheusModel
.
CreditOrder
.
update
(
update
_order_d
ata
,
{
where
:
{
id
:
order
.
id
}
});
let
currentO
rder
=
await
ctx
.
prometheusModel
.
CreditOrder
.
findOne
({
where
:
{
id
:
order
.
id
}
});
const
current_o
rder
=
await
ctx
.
prometheusModel
.
CreditOrder
.
findOne
({
where
:
{
id
:
order
.
id
}
});
await
ctx
.
service
.
credit
.
order
.
logOrder
(
current
O
rder
);
await
ctx
.
service
.
credit
.
order
.
logOrder
(
current
_o
rder
);
return
ret
;
return
ret
;
}
}
async
createApply
()
{
const
{
ctx
}
=
this
;
const
user_id
=
ctx
.
userId
;
const
app_type_id
=
ctx
.
appTypeId
;
const
app_user_id
=
ctx
.
appUserId
;
const
app_id
=
ctx
.
appId
;
//获取签名
const
timestamp
=
String
(
new
Date
().
getTime
());
const
appKey
=
''
;
const
sign_params
=
{
appKey
,
timestamp
,
};
const
sign
=
await
ctx
.
service
.
credit
.
common
.
sign
(
sign_params
,
this
.
config
.
BLACKLIST_APPLY_APPSECRET
);
//调用数据接口获取个人通话风险数据 TODO
const
params
=
{
sign
,
phone
,
name
,
idcard
,
}
const
url
=
''
;
const
result
=
await
ctx
.
helper
.
send_request
(
url
,
params
,
{
method
:
'POST'
});
const
apply_data
=
{
type
,
user_id
,
app_user_id
,
app_id
,
app_type_id
,
timestamp
,
appkey
:
''
,
sign
,
r_code
:
result
.
data
.
code
,
r_msg
:
result
.
data
.
msg
,
r_order_id
:
result
.
data
.
data
.
order_id
,
}
const
apply
=
await
ctx
.
prometheusModel
.
CreditApply
.
create
(
apply_data
);
if
(
result
.
data
.
code
!==
0
)
{
ctx
.
failed
(
'数据获取异常'
);
}
return
apply
;
}
//判断用户当前三要素是否是二次查询未支付订单
async
checkSecond
(
input
)
{
const
{
ctx
}
=
this
;
const
{
name
,
phone
,
id_card
}
=
input
;
const
{
user_id
}
=
this
;
const
type
=
TypeConfigp
[
'callrisk'
];
//个人通话类型
let
first
=
false
;
//首次通过三要素验证后弹框提示:报告生成后,将无法查询其他人的报告
let
second
=
false
;
//再次查询的是待支付中的订单
let
order_id
=
null
;
let
report_id
=
null
;
//判断用户是否第一次三要素核验成功
const
order_filter
=
{
arrtibutes
:
[
'id'
],
where
:
{
user_id
,
type
,
valid
:
1
}
}
const
order_list
=
await
ctx
.
prometheusModel
.
CreditOrder
.
findAll
(
order_filter
);
if
(
order_list
===
undefined
||
order_list
.
length
===
0
)
{
first
=
true
;
}
//判断用户当前三要素是否是二次查询未支付订单
const
be_pay_order
=
await
ctx
.
service
.
credit
.
order
.
getBePayOrderByThree
(
'callrisk'
,
{
name
,
phone
,
id_card
});
if
(
be_pay_order
!==
null
)
{
second
=
true
;
order_id
=
be_pay_order
.
id
;
report_id
=
be_pay_order
.
report_id
;
}
return
{
order_id
,
report_id
,
first
,
second
};
}
...
...
app/service/credit/callrisk.js
View file @
89a56c70
...
@@ -6,8 +6,42 @@ const moment = require('moment');
...
@@ -6,8 +6,42 @@ const moment = require('moment');
class
CallriskService
extends
Service
{
class
CallriskService
extends
Service
{
async
checkThreeElements
()
{
async
verifyCode
(
code
)
{
const
{
ctx
}
=
this
;
const
url
=
''
;
const
params
=
{
};
// const result = await ctx.helper.send_request(url, params, {});
// if (result.status !== 200) {
// ctx.failed('code error');
// }
return
true
;
}
async
checkThreeElements
(
input
)
{
const
{
ctx
}
=
this
;
//姓名手机号和身份证校验
const
{
id_card
,
phone
,
name
}
=
input
;
let
idVerify
=
ctx
.
helper
.
verify_id_card
(
id_card
);
let
phoneVerify
=
ctx
.
helper
.
isPhoneNumber
(
phone
);
let
nameVerify
=
ctx
.
helper
.
verify_real_name
(
name
);
if
(
!
idVerify
)
{
ctx
.
failed
(
'身份证输入有误,请校验后输入'
);
}
if
(
!
phoneVerify
)
{
ctx
.
failed
(
'手机号输入有误,请校验后输入'
);
}
if
(
nameVerify
!==
1
)
{
ctx
.
failed
(
'姓名输入有误,请校验后输入'
);
}
//数盒魔方三要素校验
await
ctx
.
service
.
credit
.
common
.
shuhemofangCheck
(
'callrisk'
,
{
id_card
,
phone
,
name
});
return
true
;
}
}
async
getCallriskDetailData
(
input
)
{
async
getCallriskDetailData
(
input
)
{
...
...
app/service/credit/common.js
View file @
89a56c70
...
@@ -85,8 +85,8 @@ class CommonService extends Service {
...
@@ -85,8 +85,8 @@ class CommonService extends Service {
const
trade_type
=
'MWEB'
;
const
trade_type
=
'MWEB'
;
const
nonce_str
=
ctx
.
helper
.
createNoncestr
();
const
nonce_str
=
ctx
.
helper
.
createNoncestr
();
// const time_expire = expire_time ? expire_time : moment().add(1, 'days').format('YYYYMMDDHHmmss');
// const time_expire = expire_time ? expire_time : moment().add(1, 'days').format('YYYYMMDDHHmmss');
//
const spbill_create_ip = ctx.helper.getClientIP();
const
spbill_create_ip
=
ctx
.
helper
.
getClientIP
();
const
spbill_create_ip
=
'122.224.130.226'
;
//
const spbill_create_ip = '122.224.130.226';
let
json_data
=
{
let
json_data
=
{
appid
,
appid
,
mch_id
,
mch_id
,
...
...
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