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
72608629
Commit
72608629
authored
Apr 16, 2020
by
zhaoxiqing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gsb
parent
206d65a0
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
993 additions
and
663 deletions
+993
-663
bpo-web/app/base/api/impl/dkcontractApi.js
+109
-3
bpo-web/app/base/api/impl/yzcontractApi.js
+15
-16
bpo-web/app/base/controller/impl/dksignCtl.js
+1
-2
bpo-web/app/base/db/impl/dktemplatebusiDao.js
+9
-0
bpo-web/app/base/db/models/dktemplatebusi.js
+52
-0
bpo-web/app/base/db/models/entcontract.js
+1
-0
bpo-web/app/base/db/models/etemplatebusi.js
+2
-2
bpo-web/app/base/service/impl/dkcontractSve.js
+544
-364
bpo-web/app/base/service/impl/dktemplatebusiSve.js
+48
-0
bpo-web/app/base/service/impl/econtractSve.js
+1
-0
bpo-web/app/base/service/impl/entcontractSve.js
+194
-272
bpo-web/app/base/service/impl/etemplatebusiSve.js
+6
-2
bpo-web/app/config/settings.js
+11
-2
No files found.
bpo-web/app/base/api/impl/dkcontractApi.js
View file @
72608629
...
@@ -5,14 +5,121 @@ const moment = require("moment");
...
@@ -5,14 +5,121 @@ const moment = require("moment");
class
DKcontractApi
{
class
DKcontractApi
{
constructor
()
{
constructor
()
{
this
.
dkcompanySve
=
system
.
getObject
(
"service.dkcompanySve"
);
this
.
idcardClient
=
system
.
getObject
(
"util.idcardClient"
);
this
.
esettleSve
=
system
.
getObject
(
"service.esettleSve"
);
this
.
dkcontractSve
=
system
.
getObject
(
"service.dkcontractSve"
);
this
.
dkcontractSve
=
system
.
getObject
(
"service.dkcontractSve"
);
this
.
etemplatebusiSve
=
system
.
getObject
(
"service.etemplatebusiSve"
);
}
}
async
syncSignedFile
()
{
async
syncSignedFile
()
{
this
.
dkcontractSve
.
downloadCompleteUrl
();
this
.
dkcontractSve
.
downloadCompleteUrl
();
return
"start success"
return
"start success"
}
}
async
autoSign
(
pobj
)
{
// 处理参数
var
param
=
{
ecid
:
this
.
trim
(
pobj
.
ecid
),
appId
:
this
.
trim
(
pobj
.
appId
),
idName
:
this
.
trim
(
pobj
.
idName
),
mobile
:
this
.
trim
(
pobj
.
mobile
),
idNo
:
this
.
trim
(
pobj
.
idNo
),
bankno
:
this
.
trim
(
pobj
.
bankno
),
nonceStr
:
this
.
trim
(
pobj
.
nonceStr
),
userId
:
this
.
trim
(
pobj
.
userId
),
sign
:
this
.
trim
(
pobj
.
sign
)
};
if
(
!
param
.
ecid
)
{
return
this
.
returnjson
(
-
1
,
"请传入薪必果提供的ecid"
)
}
if
(
!
param
.
appId
)
{
return
this
.
returnjson
(
-
1
,
"请传入薪必果提供的appId"
)
}
if
(
!
param
.
userId
)
{
return
this
.
returnjson
(
-
1
,
"请提供该用户ID"
)
}
if
(
!
param
.
idName
)
{
return
this
.
returnjson
(
-
1
,
"请提供该用户姓名"
)
}
if
(
!
param
.
idNo
)
{
return
this
.
returnjson
(
-
1
,
"请提供该用户身份证号"
)
}
if
(
!
await
this
.
idcardClient
.
checkIDCard
(
param
.
idNo
))
{
return
this
.
returnjson
(
-
1
,
"身份证格式不正确"
);
}
let
busi
=
await
this
.
etemplatebusiSve
.
busiByTemplate
(
param
.
ecid
);
let
num
=
await
this
.
esettleSve
.
isValidAge
(
busi
[
0
].
busi_id
);
if
(
num
)
{
let
card
=
await
this
.
idcardClient
.
cardInfo
(
param
.
idNo
);
let
age
=
card
.
age
||
0
;
if
(
!
age
)
{
return
this
.
returnjson
(
-
1
,
"身份证号格式错误, 只支持18位身份证号码"
);
}
if
(
card
.
sex
==
'male'
)
{
if
(
age
<
18
||
age
>
60
)
{
return
this
.
returnjson
(
-
1
,
"签约失败,男限制18-60岁之间"
)
}
}
else
{
if
(
age
<
18
||
age
>
55
)
{
return
this
.
returnjson
(
-
1
,
"签约失败,女限制18-55岁之间"
)
}
}
}
if
(
!
param
.
bankno
)
{
return
this
.
returnjson
(
-
1
,
"请提供该用户银行卡号"
)
}
if
(
!
param
.
nonceStr
)
{
return
this
.
returnjson
(
-
1
,
"请提供随机码"
)
}
if
(
!
busi
[
0
]
||!
busi
[
0
].
app_id
||
!
busi
[
0
].
key
||
busi
[
0
].
app_id
!=
param
.
appId
)
{
return
this
.
returnjson
(
1001003
,
"配置信息错误,请联系薪必果人员进行配置"
);
}
// 签名
var
signArr
=
[];
var
keys
=
Object
.
keys
(
param
).
sort
();
for
(
var
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
var
k
=
keys
[
i
];
var
v
=
param
[
k
];
if
(
!
k
||
!
v
||
k
==
'sign'
)
{
continue
;
}
signArr
.
push
(
k
+
"="
+
v
);
}
var
signStr
=
signArr
.
join
(
"&"
)
+
"&key="
+
busi
[
0
].
key
;
var
sign
=
md5
(
signStr
).
toUpperCase
();
console
.
log
(
signStr
,
sign
);
if
(
param
.
sign
!=
sign
)
{
return
this
.
returnjson
(
1001001
,
"签名错误"
);
}
try
{
var
result
=
await
this
.
dkcontractSve
.
autoSign
(
param
);
return
result
;
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
returnjson
(
code
,
msg
,
data
)
{
return
{
code
:
code
,
msg
:
msg
,
data
:
data
||
null
}
}
trim
(
o
)
{
if
(
!
o
)
{
return
""
;
}
return
o
.
toString
().
trim
();
}
}
}
module
.
exports
=
DKcontractApi
;
module
.
exports
=
DKcontractApi
;
\ No newline at end of file
bpo-web/app/base/api/impl/yzcontractApi.js
View file @
72608629
...
@@ -54,7 +54,7 @@ class YZContractApi {
...
@@ -54,7 +54,7 @@ class YZContractApi {
}
}
if
(
!
await
this
.
idcardClient
.
checkIDCard
(
param
.
idNo
))
{
if
(
!
await
this
.
idcardClient
.
checkIDCard
(
param
.
idNo
))
{
return
this
.
returnjson
(
-
1
,
"代理人身份证格式不正确"
);
return
this
.
returnjson
(
-
1
,
"代理人身份证格式不正确"
);
}
}
let
card
=
await
this
.
idcardClient
.
cardInfo
(
param
.
idNo
);
let
card
=
await
this
.
idcardClient
.
cardInfo
(
param
.
idNo
);
let
age
=
card
.
age
||
0
;
let
age
=
card
.
age
||
0
;
if
(
!
age
)
{
if
(
!
age
)
{
...
@@ -105,7 +105,6 @@ class YZContractApi {
...
@@ -105,7 +105,6 @@ class YZContractApi {
}
}
async
merchantSigns
(
pobj
)
{
async
merchantSigns
(
pobj
)
{
// 处理参数
// 处理参数
var
param
=
{
var
param
=
{
...
@@ -121,18 +120,18 @@ class YZContractApi {
...
@@ -121,18 +120,18 @@ class YZContractApi {
nonceStr
:
this
.
trim
(
pobj
.
nonceStr
),
//随机码
nonceStr
:
this
.
trim
(
pobj
.
nonceStr
),
//随机码
sign
:
this
.
trim
(
pobj
.
sign
)
sign
:
this
.
trim
(
pobj
.
sign
)
};
};
console
.
log
(
"有赞商户签约接口==========="
,
param
);
if
(
!
param
.
ecid
)
{
if
(
!
param
.
ecid
)
{
return
this
.
returnjson
(
-
1
,
"请传入薪必果提供的ecid"
)
return
this
.
returnjson
(
-
1
,
"请传入薪必果提供的ecid"
)
;
}
}
if
(
!
param
.
appId
)
{
if
(
!
param
.
appId
)
{
return
this
.
returnjson
(
-
1
,
"请传入薪必果提供的appId"
)
return
this
.
returnjson
(
-
1
,
"请传入薪必果提供的appId"
)
;
}
}
if
(
!
param
.
idName
)
{
if
(
!
param
.
idName
)
{
return
this
.
returnjson
(
-
1
,
"请提供代理人姓名"
)
return
this
.
returnjson
(
-
1
,
"请提供代理人姓名"
)
;
}
}
if
(
!
param
.
idNo
)
{
if
(
!
param
.
idNo
)
{
return
this
.
returnjson
(
-
1
,
"请提供代理人身份证号"
)
return
this
.
returnjson
(
-
1
,
"请提供代理人身份证号"
)
;
}
}
if
(
!
await
this
.
idcardClient
.
checkIDCard
(
param
.
idNo
))
{
if
(
!
await
this
.
idcardClient
.
checkIDCard
(
param
.
idNo
))
{
return
this
.
returnjson
(
-
1
,
"代理人身份证格式不正确"
);
return
this
.
returnjson
(
-
1
,
"代理人身份证格式不正确"
);
...
@@ -144,16 +143,16 @@ class YZContractApi {
...
@@ -144,16 +143,16 @@ class YZContractApi {
}
}
if
(
card
.
sex
==
'male'
)
{
if
(
card
.
sex
==
'male'
)
{
if
(
age
<
18
||
age
>
60
)
{
if
(
age
<
18
||
age
>
60
)
{
return
this
.
returnjson
(
-
1
,
"签约失败,男性代理人限制18-60岁之间"
)
return
this
.
returnjson
(
-
1
,
"签约失败,男性代理人限制18-60岁之间"
)
;
}
}
}
else
{
}
else
{
if
(
age
<
18
||
age
>
55
)
{
if
(
age
<
18
||
age
>
55
)
{
return
this
.
returnjson
(
-
1
,
"签约失败,女性代理人限制18-55岁之间"
)
return
this
.
returnjson
(
-
1
,
"签约失败,女性代理人限制18-55岁之间"
)
;
}
}
}
}
if
(
!
param
.
nonceStr
)
{
if
(
!
param
.
nonceStr
)
{
return
this
.
returnjson
(
-
1
,
"请提供随机码"
)
return
this
.
returnjson
(
-
1
,
"请提供随机码"
)
;
}
}
var
enttemplate
=
await
this
.
enttemplateSve
.
findById
(
param
.
ecid
);
var
enttemplate
=
await
this
.
enttemplateSve
.
findById
(
param
.
ecid
);
...
@@ -179,7 +178,7 @@ class YZContractApi {
...
@@ -179,7 +178,7 @@ class YZContractApi {
return
this
.
returnjson
(
1001001
,
"签名错误"
);
return
this
.
returnjson
(
1001001
,
"签名错误"
);
}
}
try
{
try
{
var
result
=
await
this
.
entcontractSve
.
yzMerchantAutoSigns
(
param
);
var
result
=
await
this
.
entcontractSve
.
yzMerchantAutoSigns
(
param
,
enttemplate
);
return
result
;
return
result
;
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
log
(
error
);
console
.
log
(
error
);
...
@@ -217,13 +216,13 @@ class YZContractApi {
...
@@ -217,13 +216,13 @@ class YZContractApi {
let
busiIds
=
await
this
.
etemplatebusiSve
.
busiIdsByTemplateId
(
param
.
ecid
);
let
busiIds
=
await
this
.
etemplatebusiSve
.
busiIdsByTemplateId
(
param
.
ecid
);
let
num
=
await
this
.
esettleSve
.
isValidAge
(
busiIds
);
let
num
=
await
this
.
esettleSve
.
isValidAge
(
busiIds
);
if
(
num
)
{
if
(
num
)
{
let
card
=
await
this
.
idcardClient
.
cardInfo
(
param
.
idNo
);
let
card
=
await
this
.
idcardClient
.
cardInfo
(
param
.
idNo
);
let
age
=
card
.
age
||
0
;
let
age
=
card
.
age
||
0
;
if
(
!
age
)
{
if
(
!
age
)
{
return
this
.
returnjson
(
-
1
,
"身份证号格式错误, 只支持18位身份证号码"
);
return
this
.
returnjson
(
-
1
,
"身份证号格式错误, 只支持18位身份证号码"
);
}
}
if
(
card
.
sex
==
'male'
)
{
if
(
card
.
sex
==
'male'
)
{
if
(
age
<
18
||
age
>
60
)
{
if
(
age
<
18
||
age
>
60
)
{
return
this
.
returnjson
(
-
1
,
"签约失败,男限制18-60岁之间"
)
return
this
.
returnjson
(
-
1
,
"签约失败,男限制18-60岁之间"
)
}
}
...
@@ -353,7 +352,7 @@ class YZContractApi {
...
@@ -353,7 +352,7 @@ class YZContractApi {
if
(
!
obj
.
appId
)
{
if
(
!
obj
.
appId
)
{
return
this
.
returnjson
(
-
1
,
"请传入appId"
)
return
this
.
returnjson
(
-
1
,
"请传入appId"
)
}
}
var
enttemplate
=
await
this
.
enttemplateSve
.
findOne
({
appid
:
obj
.
appId
});
var
enttemplate
=
await
this
.
enttemplateSve
.
findOne
({
appid
:
obj
.
appId
});
if
(
!
enttemplate
||
!
enttemplate
.
key
)
{
if
(
!
enttemplate
||
!
enttemplate
.
key
)
{
return
this
.
returnjson
(
1001003
,
"配置信息错误,请联系薪必果人员进行配置"
);
return
this
.
returnjson
(
1001003
,
"配置信息错误,请联系薪必果人员进行配置"
);
...
@@ -367,7 +366,7 @@ class YZContractApi {
...
@@ -367,7 +366,7 @@ class YZContractApi {
signArr
.
push
(
"startId="
+
startId
);
signArr
.
push
(
"startId="
+
startId
);
signArr
.
push
(
"key="
+
enttemplate
.
key
);
signArr
.
push
(
"key="
+
enttemplate
.
key
);
var
sign
=
md5
(
signArr
.
join
(
"&"
)).
toUpperCase
();
var
sign
=
md5
(
signArr
.
join
(
"&"
)).
toUpperCase
();
console
.
log
(
signArr
.
join
(
"&"
),
sign
);
console
.
log
(
signArr
.
join
(
"&"
),
sign
);
if
(
sign
!=
obj
.
sign
)
{
if
(
sign
!=
obj
.
sign
)
{
return
{
return
{
code
:
1001001
,
code
:
1001001
,
...
...
bpo-web/app/base/controller/impl/dksignCtl.js
View file @
72608629
...
@@ -445,4 +445,4 @@ class DKSignCtl {
...
@@ -445,4 +445,4 @@ class DKSignCtl {
}
}
}
}
}
}
module
.
exports
=
DKSignCtl
;
module
.
exports
=
DKSignCtl
;
\ No newline at end of file
bpo-web/app/base/db/impl/dktemplatebusiDao.js
0 → 100644
View file @
72608629
const
Dao
=
require
(
"../dao.base"
);
class
DktemplatebusiDao
extends
Dao
{
constructor
()
{
super
(
Dao
.
getModelName
(
DktemplatebusiDao
));
}
}
module
.
exports
=
DktemplatebusiDao
;
bpo-web/app/base/db/models/dktemplatebusi.js
0 → 100644
View file @
72608629
module
.
exports
=
(
db
,
DataTypes
)
=>
{
return
db
.
define
(
"dktemplatebusi"
,
{
template_type
:
DataTypes
.
BIGINT
,
template_id
:
DataTypes
.
BIGINT
,
busi_id
:
DataTypes
.
STRING
,
busi_company_name
:
DataTypes
.
STRING
,
app_id
:
DataTypes
.
STRING
,
key
:
DataTypes
.
STRING
,
},{
paranoid
:
true
,
//假的删除
underscored
:
true
,
version
:
true
,
freezeTableName
:
true
,
//freezeTableName: true,
// define the table's name
tableName
:
'c_dktemplate_busi'
,
validate
:
{
},
indexes
:[
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
bpo-web/app/base/db/models/entcontract.js
View file @
72608629
...
@@ -4,6 +4,7 @@ const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
...
@@ -4,6 +4,7 @@ const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
module
.
exports
=
(
db
,
DataTypes
)
=>
{
module
.
exports
=
(
db
,
DataTypes
)
=>
{
return
db
.
define
(
"entcontract"
,
{
return
db
.
define
(
"entcontract"
,
{
name
:
DataTypes
.
STRING
,
name
:
DataTypes
.
STRING
,
tenant_name
:
DataTypes
.
STRING
,
edocid
:
DataTypes
.
STRING
,
// 合同id
edocid
:
DataTypes
.
STRING
,
// 合同id
eflowid
:
DataTypes
.
STRING
,
// 合同流程id
eflowid
:
DataTypes
.
STRING
,
// 合同流程id
esignUrl
:
DataTypes
.
STRING
,
// 合同签署链接
esignUrl
:
DataTypes
.
STRING
,
// 合同签署链接
...
...
bpo-web/app/base/db/models/etemplatebusi.js
View file @
72608629
...
@@ -2,8 +2,8 @@ module.exports = (db, DataTypes) => {
...
@@ -2,8 +2,8 @@ module.exports = (db, DataTypes) => {
return
db
.
define
(
"etemplatebusi"
,
{
return
db
.
define
(
"etemplatebusi"
,
{
template_type
:
DataTypes
.
BIGINT
,
template_type
:
DataTypes
.
BIGINT
,
template_id
:
DataTypes
.
BIGINT
,
template_id
:
DataTypes
.
BIGINT
,
busi_id
:
DataTypes
.
BIGINT
,
busi_id
:
DataTypes
.
STRING
,
busi_company_name
:
DataTypes
.
BIGINT
,
busi_company_name
:
DataTypes
.
STRING
,
},{
},{
paranoid
:
true
,
//假的删除
paranoid
:
true
,
//假的删除
underscored
:
true
,
underscored
:
true
,
...
...
bpo-web/app/base/service/impl/dkcontractSve.js
View file @
72608629
...
@@ -8,415 +8,596 @@ const cryptoJS = require("crypto-js");
...
@@ -8,415 +8,596 @@ const cryptoJS = require("crypto-js");
const
md5
=
require
(
"MD5"
);
const
md5
=
require
(
"MD5"
);
class
DKcontractService
extends
ServiceBase
{
class
DKcontractService
extends
ServiceBase
{
constructor
()
{
constructor
()
{
super
(
ServiceBase
.
getDaoName
(
DKcontractService
));
super
(
ServiceBase
.
getDaoName
(
DKcontractService
));
this
.
dkcompanyDao
=
system
.
getObject
(
"db.dkcompanyDao"
);
this
.
dkcompanyDao
=
system
.
getObject
(
"db.dkcompanyDao"
);
this
.
usereaccountDao
=
system
.
getObject
(
"db.usereaccountDao"
)
this
.
usereaccountDao
=
system
.
getObject
(
"db.usereaccountDao"
)
this
.
utilesignbaoSve
=
system
.
getObject
(
"service.utilesignbaoSve"
);
this
.
utilesignbaoSve
=
system
.
getObject
(
"service.utilesignbaoSve"
);
this
.
userDao
=
system
.
getObject
(
"db.userDao"
);
this
.
userDao
=
system
.
getObject
(
"db.userDao"
);
this
.
restClient
=
system
.
getObject
(
"util.restClient"
);
this
.
restClient
=
system
.
getObject
(
"util.restClient"
);
this
.
redisClient
=
system
.
getObject
(
"util.redisClient"
);
this
.
redisClient
=
system
.
getObject
(
"util.redisClient"
);
this
.
bankthreelogDao
=
system
.
getObject
(
"db.bankthreelogDao"
);
this
.
dktemplateSve
=
system
.
getObject
(
"service.dktemplateSve"
)
}
this
.
dkaggreementDao
=
system
.
getObject
(
"db.dkaggreementDao"
)
async
getInfo
(
id
)
{
var
attrs
=
[];
return
await
this
.
dao
.
model
.
findOne
({
where
:
{
id
:
id
},
attrs
,
raw
:
true
});
}
async
findSindIds
(
accountId
,
dktemplateId
)
{
var
sql
=
[];
sql
.
push
(
"SELECT id"
);
sql
.
push
(
"FROM `c_dkcontract` "
);
sql
.
push
(
"WHERE dktemplate_id = :dktemplate_id AND usereaccount_id = :usereaccount_id AND eflowstatus = '2' "
);
var
list
=
await
this
.
customQuery
(
sql
.
join
(
" "
),
{
usereaccount_id
:
Number
(
accountId
),
dktemplate_id
:
Number
(
dktemplateId
)});
if
(
!
list
||
list
.
length
==
0
)
{
return
[];
}
}
var
ids
=
[];
async
getInfo
(
id
)
{
for
(
var
item
of
list
)
{
var
attrs
=
[];
ids
.
push
(
item
.
id
);
return
await
this
.
dao
.
model
.
findOne
({
}
where
:
{
id
:
id
},
attrs
,
raw
:
true
return
ids
;
});
}
async
findSignedList
(
accountId
,
dktemplateId
)
{
var
sql
=
[];
sql
.
push
(
"SELECT *"
);
sql
.
push
(
"FROM `c_dkcontract` "
);
sql
.
push
(
"WHERE dktemplate_id = :dktemplate_id AND usereaccount_id = :usereaccount_id AND eflowstatus = '2' "
);
var
list
=
await
this
.
customQuery
(
sql
.
join
(
" "
),
{
usereaccount_id
:
Number
(
accountId
),
dktemplate_id
:
Number
(
dktemplateId
)});
if
(
!
list
||
list
.
length
==
0
)
{
return
[];
}
}
for
(
var
item
of
list
)
{
if
(
item
.
completed_at
)
{
item
.
completed_at
=
moment
(
item
.
completed_at
).
format
(
"YYYY-MM-DD HH:mm"
);
}
}
return
list
;
}
async
pageByCondition
(
params
)
{
async
findSindIds
(
accountId
,
dktemplateId
)
{
var
currentPage
=
Number
(
params
.
currentPage
||
0
);
var
sql
=
[];
var
pageSize
=
Number
(
params
.
pageSize
||
10
);
sql
.
push
(
"SELECT id"
);
sql
.
push
(
"FROM `c_dkcontract` "
);
sql
.
push
(
"WHERE dktemplate_id = :dktemplate_id AND usereaccount_id = :usereaccount_id AND eflowstatus = '2' "
);
var
where
=
{};
var
list
=
await
this
.
customQuery
(
sql
.
join
(
" "
),
{
usereaccount_id
:
Number
(
accountId
),
dktemplate_id
:
Number
(
dktemplateId
)
});
if
(
!
list
||
list
.
length
==
0
)
{
return
[];
}
if
(
params
.
ecompanyIds
)
{
var
ids
=
[];
where
.
ecompany_id
=
{
for
(
var
item
of
list
)
{
[
this
.
db
.
Op
.
in
]:
params
.
ecompanyIds
ids
.
push
(
item
.
id
);
};
}
return
ids
;
}
}
if
(
params
.
ecompany_id
)
{
async
findSignedList
(
accountId
,
dktemplateId
)
{
where
.
ecompany_id
=
params
.
ecompany_id
;
var
sql
=
[];
}
sql
.
push
(
"SELECT *"
);
sql
.
push
(
"FROM `c_dkcontract` "
);
sql
.
push
(
"WHERE dktemplate_id = :dktemplate_id AND usereaccount_id = :usereaccount_id AND eflowstatus = '2' "
);
if
(
params
.
eflowstatusList
)
{
var
list
=
await
this
.
customQuery
(
sql
.
join
(
" "
),
{
where
.
eflowstatus
=
{
usereaccount_id
:
Number
(
accountId
),
[
this
.
db
.
Op
.
in
]:
params
.
eflowstatusList
dktemplate_id
:
Number
(
dktemplateId
)
};;
});
if
(
!
list
||
list
.
length
==
0
)
{
return
[];
}
for
(
var
item
of
list
)
{
if
(
item
.
completed_at
)
{
item
.
completed_at
=
moment
(
item
.
completed_at
).
format
(
"YYYY-MM-DD HH:mm"
);
}
}
return
list
;
}
}
if
(
params
.
accountName
||
params
.
accountMobile
||
params
.
accountIdno
)
{
async
pageByCondition
(
params
)
{
var
accountIds
=
await
this
.
usereaccountDao
.
idsByCondition
({
var
currentPage
=
Number
(
params
.
currentPage
||
0
);
userName
:
params
.
accountName
||
""
,
var
pageSize
=
Number
(
params
.
pageSize
||
10
);
mobile
:
params
.
accountMobile
||
""
,
personsSign
:
params
.
accountIdno
||
""
,
});
if
(
!
accountIds
||
accountIds
.
length
==
0
)
{
var
where
=
{};
return
{
total
:
0
,
rows
:
[]
};
}
where
.
usereaccount_id
=
{
if
(
params
.
ecompanyIds
)
{
[
this
.
db
.
Op
.
in
]:
accountIds
where
.
ecompany_id
=
{
};
[
this
.
db
.
Op
.
in
]:
params
.
ecompanyIds
}
};
this
.
addWhereTime
(
where
,
'completed_at'
,
params
.
signBegin
,
params
.
signEnd
,
true
);
}
var
orderby
=
[
if
(
params
.
ecompany_id
)
{
[
"id"
,
'desc'
]
where
.
ecompany_id
=
params
.
ecompany_id
;
];
}
var
attributes
=
[
`id`
,
`fileurl`
,
`eflowstatus`
,
`eflowstatusname`
,
`completed_at`
,
`end_at`
,
`user_id`
,
`usereaccount_id`
,
`ecompany_id`
];
if
(
params
.
eflowstatusList
)
{
where
.
eflowstatus
=
{
[
this
.
db
.
Op
.
in
]:
params
.
eflowstatusList
};
;
}
var
page
=
await
this
.
getPageList
(
currentPage
,
pageSize
,
where
,
orderby
,
attributes
);
if
(
params
.
accountName
||
params
.
accountMobile
||
params
.
accountIdno
)
{
if
(
page
&&
page
.
rows
)
{
var
accountIds
=
await
this
.
usereaccountDao
.
idsByCondition
({
for
(
var
row
of
page
.
rows
)
{
userName
:
params
.
accountName
||
""
,
this
.
handleDate
(
row
,
[
"completed_at"
,
"end_at"
],
null
);
mobile
:
params
.
accountMobile
||
""
,
}
personsSign
:
params
.
accountIdno
||
""
,
await
this
.
setEaccount
(
page
.
rows
);
});
await
this
.
setCompany
(
page
.
rows
);
}
if
(
!
accountIds
||
accountIds
.
length
==
0
)
{
return
page
;
return
{
}
total
:
0
,
rows
:
[]
};
}
async
setEaccount
(
list
)
{
where
.
usereaccount_id
=
{
if
(
!
list
||
list
.
length
==
0
)
{
[
this
.
db
.
Op
.
in
]:
accountIds
return
;
};
}
}
this
.
addWhereTime
(
where
,
'completed_at'
,
params
.
signBegin
,
params
.
signEnd
,
true
);
var
ids
=
[];
var
orderby
=
[
for
(
var
item
of
list
)
{
[
"id"
,
'desc'
]
ids
.
push
(
item
.
usereaccount_id
);
];
}
var
attrs
=
" `id`, `mobile`, `userName`, `personsSign`, `bankno` "
;
var
accountMap
=
await
this
.
usereaccountDao
.
findMapByIds
(
ids
,
attrs
);
for
(
var
item
of
list
)
{
var
attributes
=
[
`id`
,
`fileurl`
,
`eflowstatus`
,
`eflowstatusname`
,
`completed_at`
,
`end_at`
,
`user_id`
,
`usereaccount_id`
,
`ecompany_id`
];
item
.
eaccount
=
accountMap
[
"id_"
+
item
.
usereaccount_id
];
}
}
async
setCompany
(
list
)
{
var
page
=
await
this
.
getPageList
(
currentPage
,
pageSize
,
where
,
orderby
,
attributes
);
if
(
!
list
||
list
.
length
==
0
)
{
if
(
page
&&
page
.
rows
)
{
return
;
for
(
var
row
of
page
.
rows
)
{
this
.
handleDate
(
row
,
[
"completed_at"
,
"end_at"
],
null
);
}
await
this
.
setEaccount
(
page
.
rows
);
await
this
.
setCompany
(
page
.
rows
);
}
return
page
;
}
}
var
companyIds
=
[];
async
setEaccount
(
list
)
{
for
(
var
item
of
list
)
{
if
(
!
list
||
list
.
length
==
0
)
{
companyIds
.
push
(
item
.
ecompany_id
||
0
);
return
;
}
var
ids
=
[];
for
(
var
item
of
list
)
{
ids
.
push
(
item
.
usereaccount_id
);
}
var
attrs
=
" `id`, `mobile`, `userName`, `personsSign`, `bankno` "
;
var
accountMap
=
await
this
.
usereaccountDao
.
findMapByIds
(
ids
,
attrs
);
for
(
var
item
of
list
)
{
item
.
eaccount
=
accountMap
[
"id_"
+
item
.
usereaccount_id
];
}
}
}
var
companyMap
=
await
this
.
ecompanyDao
.
findMapByIds
(
companyIds
,
" id, name, contractMobile "
);
for
(
var
item
of
list
)
{
async
setCompany
(
list
)
{
item
.
ecompany
=
companyMap
[
"id_"
+
(
item
.
ecompany_id
||
0
)];
if
(
!
list
||
list
.
length
==
0
)
{
return
;
}
var
companyIds
=
[];
for
(
var
item
of
list
)
{
companyIds
.
push
(
item
.
ecompany_id
||
0
);
}
var
companyMap
=
await
this
.
ecompanyDao
.
findMapByIds
(
companyIds
,
" id, name, contractMobile "
);
for
(
var
item
of
list
)
{
item
.
ecompany
=
companyMap
[
"id_"
+
(
item
.
ecompany_id
||
0
)];
}
}
}
}
async
findInfo
(
obj
)
{
async
findInfo
(
obj
)
{
obj
=
obj
||
{};
obj
=
obj
||
{};
let
v
=
[{
let
v
=
[{
model
:
this
.
db
.
models
.
ecompany
,
model
:
this
.
db
.
models
.
ecompany
,
attributes
:
[
"id"
,
"name"
]
attributes
:
[
"id"
,
"name"
]
},
},
{
{
model
:
this
.
db
.
models
.
user
,
model
:
this
.
db
.
models
.
user
,
attributes
:
[
"id"
,
"userName"
,
"mobile"
]
attributes
:
[
"id"
,
"userName"
,
"mobile"
]
},
},
{
{
model
:
this
.
db
.
models
.
usereaccount
,
model
:
this
.
db
.
models
.
usereaccount
,
attributes
:
[
"id"
,
"userName"
,
"mobile"
,
"personsSign"
]
attributes
:
[
"id"
,
"userName"
,
"mobile"
,
"personsSign"
]
},
},
{
{
model
:
this
.
db
.
models
.
etemplate
,
model
:
this
.
db
.
models
.
etemplate
,
attributes
:
[
"id"
,
"name"
]
attributes
:
[
"id"
,
"name"
]
}
}
];
];
var
result
=
await
this
.
dao
.
model
.
findOne
({
var
result
=
await
this
.
dao
.
model
.
findOne
({
where
:
obj
,
where
:
obj
,
include
:
v
include
:
v
});
});
return
result
;
return
result
;
}
async
findContracts
(
obj
)
{
obj
=
obj
||
{};
let
v
=
[{
model
:
this
.
db
.
models
.
ecompany
,
attributes
:
[
"id"
,
"name"
]
},
{
model
:
this
.
db
.
models
.
user
,
attributes
:
[
"id"
,
"userName"
,
"mobile"
]
},
{
model
:
this
.
db
.
models
.
usereaccount
,
attributes
:
[
"id"
,
"userName"
,
"mobile"
,
"personsSign"
]
},
{
model
:
this
.
db
.
models
.
etemplate
,
attributes
:
[
"id"
,
"name"
]
}
];
var
result
=
await
this
.
dao
.
model
.
findAll
({
where
:
obj
,
include
:
v
});
return
result
;
}
async
updateCallbackStatus
(
obj
)
{
obj
=
obj
||
{};
logCtl
.
info
({
optitle
:
"e签宝回调修改合同信息info"
,
op
:
"app/base/service/impl/dkcontractSve/updateCallbackStatus"
,
content
:
"请求参数:"
+
JSON
.
stringify
(
obj
),
clientIp
:
""
});
let
contract
;
try
{
let
signTime
=
obj
.
signTime
;
let
signResult
=
obj
.
signResult
||
"1"
;
let
thirdOrderNo
=
Number
(
obj
.
thirdOrderNo
.
substring
(
3
)
||
0
);
contract
=
await
this
.
findById
(
Number
(
thirdOrderNo
));
if
(
!
contract
)
{
return
;
}
contract
.
eflowstatus
=
signResult
.
toString
();
contract
.
completed_at
=
signTime
;
contract
.
begin_at
=
signTime
;
contract
.
resultDescription
=
obj
.
resultDescription
||
""
;
var
end_at
=
new
Date
(
signTime
);
end_at
.
setFullYear
(
end_at
.
getFullYear
()
+
1
);
contract
.
end_at
=
end_at
;
// 合同下载任务
this
.
redisClient
.
rpushBCD
({
id
:
contract
.
id
,
sve
:
"dk"
});
await
contract
.
save
();
}
catch
(
e
)
{
logCtl
.
error
({
optitle
:
"e签宝回调修改合同信息error"
,
op
:
"app/base/service/impl/dkcontractSve/updateCallbackStatus"
,
content
:
"错误信息:"
+
e
.
stack
,
clientIp
:
""
});
}
}
return
contract
;
}
async
downloadCompleteUrl
(
limit
)
{
async
findContracts
(
obj
)
{
var
sql
=
"SELECT id FROM `c_dkcontract` WHERE eflowstatus = '2' AND (fileurl IS NULL OR fileurl = '') ORDER BY id DESC "
;
obj
=
obj
||
{};
if
(
limit
)
{
let
v
=
[{
sql
=
sql
+
" LIMIT "
+
limit
;
model
:
this
.
db
.
models
.
ecompany
,
attributes
:
[
"id"
,
"name"
]
},
{
model
:
this
.
db
.
models
.
user
,
attributes
:
[
"id"
,
"userName"
,
"mobile"
]
},
{
model
:
this
.
db
.
models
.
usereaccount
,
attributes
:
[
"id"
,
"userName"
,
"mobile"
,
"personsSign"
]
},
{
model
:
this
.
db
.
models
.
etemplate
,
attributes
:
[
"id"
,
"name"
]
}
];
var
result
=
await
this
.
dao
.
model
.
findAll
({
where
:
obj
,
include
:
v
});
return
result
;
}
}
var
list
=
await
this
.
dao
.
customQuery
(
sql
);
if
(
!
list
||
list
.
length
==
0
)
{
async
updateCallbackStatus
(
obj
)
{
return
;
obj
=
obj
||
{};
logCtl
.
info
({
optitle
:
"e签宝回调修改合同信息info"
,
op
:
"app/base/service/impl/dkcontractSve/updateCallbackStatus"
,
content
:
"请求参数:"
+
JSON
.
stringify
(
obj
),
clientIp
:
""
});
let
contract
;
try
{
let
signTime
=
obj
.
signTime
;
let
signResult
=
obj
.
signResult
||
"1"
;
let
thirdOrderNo
=
Number
(
obj
.
thirdOrderNo
.
substring
(
3
)
||
0
);
contract
=
await
this
.
findById
(
Number
(
thirdOrderNo
));
if
(
!
contract
)
{
return
;
}
contract
.
eflowstatus
=
signResult
.
toString
();
contract
.
completed_at
=
signTime
;
contract
.
begin_at
=
signTime
;
contract
.
resultDescription
=
obj
.
resultDescription
||
""
;
var
end_at
=
new
Date
(
signTime
);
end_at
.
setFullYear
(
end_at
.
getFullYear
()
+
1
);
contract
.
end_at
=
end_at
;
// 合同下载任务
this
.
redisClient
.
rpushBCD
({
id
:
contract
.
id
,
sve
:
"dk"
});
await
contract
.
save
();
}
catch
(
e
)
{
logCtl
.
error
({
optitle
:
"e签宝回调修改合同信息error"
,
op
:
"app/base/service/impl/dkcontractSve/updateCallbackStatus"
,
content
:
"错误信息:"
+
e
.
stack
,
clientIp
:
""
});
}
return
contract
;
}
}
for
(
var
o
of
list
)
{
async
downloadCompleteUrl
(
limit
)
{
var
id
=
o
.
id
;
var
sql
=
"SELECT id FROM `c_dkcontract` WHERE eflowstatus = '2' AND (fileurl IS NULL OR fileurl = '') ORDER BY id DESC "
;
try
{
if
(
limit
)
{
var
contract
=
await
this
.
dao
.
findById
(
id
);
sql
=
sql
+
" LIMIT "
+
limit
;
if
(
!
contract
)
{
continue
;
}
}
var
list
=
await
this
.
dao
.
customQuery
(
sql
);
if
(
contract
.
eflowstatus
!=
"2"
)
{
if
(
!
list
||
list
.
length
==
0
)
{
continue
;
return
;
}
}
if
(
!
contract
.
fileurl
)
{
for
(
var
o
of
list
)
{
// 请求文件地址
var
id
=
o
.
id
;
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
try
{
console
.
log
(
fileRs
,
"==============================================================="
);
var
contract
=
await
this
.
dao
.
findById
(
id
);
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
if
(
!
contract
)
{
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
continue
;
contract
.
save
();
}
}
else
{
await
this
.
utilesignbaoSve
.
archiveProcess
({
flowId
:
contract
.
eflowid
},
"econtractSve"
);
if
(
contract
.
eflowstatus
!=
"2"
)
{
continue
;
}
if
(
!
contract
.
fileurl
)
{
// 请求文件地址
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
console
.
log
(
fileRs
,
"==============================================================="
);
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
contract
.
save
();
}
else
{
await
this
.
utilesignbaoSve
.
archiveProcess
({
flowId
:
contract
.
eflowid
},
"econtractSve"
);
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
contract
.
save
();
}
}
}
}
catch
(
e
)
{
console
.
error
(
e
);
//日志记录
logCtl
.
error
({
optitle
:
"定时下载合同任务异常, id="
+
id
,
op
:
"app/base/service/impl/econtractSve.js"
,
content
:
e
.
stack
,
clientIp
:
""
});
return
{
code
:
-
200
,
message
:
"error"
,
data
:
{}
};
}
}
}
async
downloadContract
(
id
)
{
try
{
let
contract
=
await
this
.
dao
.
findById
(
id
);
if
(
!
contract
||
contract
.
eflowstatus
!=
"2"
||
contract
.
fileurl
)
{
return
;
}
//await this.syncYzSign(2134);
// 请求文件地址
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
contract
.
save
();
await
contract
.
save
();
this
.
syncYzSign
(
contract
.
id
);
}
else
{
await
this
.
utilesignbaoSve
.
archiveProcess
({
flowId
:
contract
.
eflowid
},
"econtractSve"
);
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
await
contract
.
save
();
this
.
syncYzSign
(
contract
.
id
);
}
}
}
}
}
catch
(
e
)
{
}
console
.
error
(
e
);
}
catch
(
e
)
{
return
{
console
.
error
(
e
);
code
:
-
200
,
//日志记录
message
:
"error"
,
logCtl
.
error
({
data
:
{}
optitle
:
"定时下载合同任务异常, id="
+
id
,
};
op
:
"app/base/service/impl/econtractSve.js"
,
}
content
:
e
.
stack
,
clientIp
:
""
});
return
{
code
:
-
200
,
message
:
"error"
,
data
:
{}
};
}
}
}
}
async
getContractUrl
(
id
)
{
async
downloadContract
(
id
)
{
var
contract
=
await
this
.
findById
(
id
);
try
{
if
(
contract
.
fileurl
)
{
let
contract
=
await
this
.
dao
.
findById
(
id
);
return
contract
.
fileurl
;
if
(
!
contract
||
contract
.
eflowstatus
!=
"2"
||
contract
.
fileurl
)
{
}
return
;
}
//await this.syncYzSign(2134);
// 请求文件地址
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
await
contract
.
save
();
this
.
syncYzSign
(
contract
.
id
);
}
else
{
await
this
.
utilesignbaoSve
.
archiveProcess
({
flowId
:
contract
.
eflowid
},
"econtractSve"
);
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
await
contract
.
save
();
await
contract
.
save
();
this
.
syncYzSign
(
contract
.
id
);
return
contract
.
fileurl
;
}
}
}
return
""
;
}
catch
(
e
)
{
console
.
error
(
e
);
return
{
code
:
-
200
,
message
:
"error"
,
data
:
{}
};
}
}
}
async
getContractUrl
(
id
)
{
async
testtransfer
(
result
)
{
var
contract
=
await
this
.
findById
(
id
);
var
date
=
new
Date
().
Format
(
"yyyy-MM-dd hh:mm:ss"
);
if
(
contract
.
fileurl
)
{
var
v
=
JSON
.
stringify
(
result
)
+
"---"
+
date
;
return
contract
.
fileurl
;
var
sql
=
"INSERT INTO `testtransfer` (`v`) VALUES ('"
+
v
+
"') "
;
await
this
.
dao
.
customExecAddOrPutSql
(
sql
,
{});
}
}
let
fileRs
=
await
this
.
utilesignbaoSve
.
downloadUserContractFile
(
contract
.
eflowid
,
"econtractSve"
);
async
formateTime
(
inputTime
)
{
if
(
fileRs
.
code
==
1
&&
fileRs
.
data
.
selfossUrl
)
{
var
date
=
new
Date
(
inputTime
);
contract
.
fileurl
=
fileRs
.
data
.
selfossUrl
;
var
y
=
date
.
getFullYear
();
await
contract
.
save
();
var
m
=
date
.
getMonth
()
+
1
;
return
contract
.
fileurl
;
m
=
m
<
10
?
(
'0'
+
m
)
:
m
;
var
d
=
date
.
getDate
();
d
=
d
<
10
?
(
'0'
+
d
)
:
d
;
var
h
=
date
.
getHours
();
h
=
h
<
10
?
(
'0'
+
h
)
:
h
;
var
minute
=
date
.
getMinutes
();
var
second
=
date
.
getSeconds
();
minute
=
minute
<
10
?
(
'0'
+
minute
)
:
minute
;
second
=
second
<
10
?
(
'0'
+
second
)
:
second
;
return
y
+
'-'
+
m
+
'-'
+
d
+
' '
+
h
+
':'
+
minute
+
':'
+
second
;
}
}
return
""
;
}
async
formateTime2
(
inputTime
)
{
if
(
!
inputTime
)
{
async
testtransfer
(
result
)
{
return
''
;
var
date
=
new
Date
().
Format
(
"yyyy-MM-dd hh:mm:ss"
);
}
var
v
=
JSON
.
stringify
(
result
)
+
"---"
+
date
;
var
date
=
new
Date
(
inputTime
);
var
sql
=
"INSERT INTO `testtransfer` (`v`) VALUES ('"
+
v
+
"') "
;
var
y
=
date
.
getFullYear
();
await
this
.
dao
.
customExecAddOrPutSql
(
sql
,
{});
var
m
=
date
.
getMonth
()
+
1
;
}
m
=
m
<
10
?
(
'0'
+
m
)
:
m
;
var
d
=
date
.
getDate
();
async
formateTime
(
inputTime
)
{
d
=
d
<
10
?
(
'0'
+
d
)
:
d
;
var
date
=
new
Date
(
inputTime
);
var
h
=
date
.
getHours
();
var
y
=
date
.
getFullYear
();
h
=
h
<
10
?
(
'0'
+
h
)
:
h
;
var
m
=
date
.
getMonth
()
+
1
;
var
minute
=
date
.
getMinutes
();
m
=
m
<
10
?
(
'0'
+
m
)
:
m
;
var
second
=
date
.
getSeconds
();
var
d
=
date
.
getDate
();
minute
=
minute
<
10
?
(
'0'
+
minute
)
:
minute
;
d
=
d
<
10
?
(
'0'
+
d
)
:
d
;
second
=
second
<
10
?
(
'0'
+
second
)
:
second
;
var
h
=
date
.
getHours
();
return
y
+
''
+
m
+
''
+
d
+
''
+
h
+
''
+
minute
+
''
+
second
;
h
=
h
<
10
?
(
'0'
+
h
)
:
h
;
var
minute
=
date
.
getMinutes
();
var
second
=
date
.
getSeconds
();
minute
=
minute
<
10
?
(
'0'
+
minute
)
:
minute
;
second
=
second
<
10
?
(
'0'
+
second
)
:
second
;
return
y
+
'-'
+
m
+
'-'
+
d
+
' '
+
h
+
':'
+
minute
+
':'
+
second
;
}
async
formateTime2
(
inputTime
)
{
if
(
!
inputTime
)
{
return
''
;
}
}
var
date
=
new
Date
(
inputTime
);
var
y
=
date
.
getFullYear
();
async
getUidStr
(
len
,
radix
)
{
var
m
=
date
.
getMonth
()
+
1
;
var
chars
=
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
.
split
(
''
);
m
=
m
<
10
?
(
'0'
+
m
)
:
m
;
var
uuid
=
[],
var
d
=
date
.
getDate
();
i
;
d
=
d
<
10
?
(
'0'
+
d
)
:
d
;
radix
=
radix
||
chars
.
length
;
var
h
=
date
.
getHours
();
if
(
len
)
{
h
=
h
<
10
?
(
'0'
+
h
)
:
h
;
for
(
i
=
0
;
i
<
len
;
i
++
)
uuid
[
i
]
=
chars
[
0
|
Math
.
random
()
*
radix
];
var
minute
=
date
.
getMinutes
();
}
else
{
var
second
=
date
.
getSeconds
();
var
r
;
minute
=
minute
<
10
?
(
'0'
+
minute
)
:
minute
;
uuid
[
8
]
=
uuid
[
13
]
=
uuid
[
18
]
=
uuid
[
23
]
=
'-'
;
second
=
second
<
10
?
(
'0'
+
second
)
:
second
;
uuid
[
14
]
=
'4'
;
return
y
+
''
+
m
+
''
+
d
+
''
+
h
+
''
+
minute
+
''
+
second
;
for
(
i
=
0
;
i
<
36
;
i
++
)
{
}
if
(
!
uuid
[
i
])
{
r
=
0
|
Math
.
random
()
*
16
;
async
getUidStr
(
len
,
radix
)
{
uuid
[
i
]
=
chars
[(
i
==
19
)
?
(
r
&
0x3
)
|
0x8
:
r
];
var
chars
=
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
.
split
(
''
);
}
var
uuid
=
[],
}
i
;
}
radix
=
radix
||
chars
.
length
;
return
uuid
.
join
(
''
);
if
(
len
)
{
}
for
(
i
=
0
;
i
<
len
;
i
++
)
uuid
[
i
]
=
chars
[
0
|
Math
.
random
()
*
radix
];
}
else
{
var
r
;
async
autoSign
(
params
)
{
uuid
[
8
]
=
uuid
[
13
]
=
uuid
[
18
]
=
uuid
[
23
]
=
'-'
;
var
ecid
=
params
.
ecid
;
uuid
[
14
]
=
'4'
;
var
unionId
=
params
.
appId
+
"_"
+
params
.
userId
+
"_"
+
params
.
idNo
;
for
(
i
=
0
;
i
<
36
;
i
++
)
{
// ecid dketemplate
if
(
!
uuid
[
i
])
{
var
etemplate
=
await
this
.
dktemplateSve
.
findById
(
ecid
);
r
=
0
|
Math
.
random
()
*
16
;
// dkecompany
uuid
[
i
]
=
chars
[(
i
==
19
)
?
(
r
&
0x3
)
|
0x8
:
r
];
var
dkcompany
=
await
this
.
dkcompanyDao
.
findById
(
etemplate
.
dkcompany_id
);
}
}
// p_user
var
user
=
await
this
.
userDao
.
findOne
({
unionId
:
unionId
,
});
if
(
!
user
)
{
user
=
await
this
.
userDao
.
create
({
appkey
:
params
.
appId
,
unionId
:
unionId
,
userId3rd
:
params
.
userId
,
userName
:
params
.
idName
,
mobile
:
params
.
mobile
,
utype
:
0
,
});
}
// p_user_eaccount
var
eaccount
=
await
this
.
usereaccountDao
.
findOne
({
user_id
:
user
.
id
,
personsSign
:
params
.
idNo
,
})
||
{};
var
isNeedCreate
=
!
eaccount
.
eaccountid
||
eaccount
.
userName
!=
params
.
idName
||
eaccount
.
mobile
!=
params
.
mobile
||
eaccount
.
bankno
!=
params
.
bankno
;
eaccount
.
user_id
=
user
.
id
;
eaccount
.
userName
=
params
.
idName
;
eaccount
.
mobile
=
params
.
mobile
;
eaccount
.
bankno
=
params
.
bankno
;
eaccount
.
personsSign
=
params
.
idNo
;
if
(
eaccount
.
id
)
{
await
eaccount
.
save
();
}
else
{
eaccount
=
await
this
.
usereaccountDao
.
create
(
eaccount
);
}
let
banklog
=
await
this
.
bankthreelogDao
.
findOne
({
userName
:
eaccount
.
userName
,
userIdNo
:
eaccount
.
personsSign
,
userBankNo
:
eaccount
.
bankno
,
result
:
1
,
});
if
(
!
banklog
)
{
var
bankthreeParams
=
{
name
:
eaccount
.
userName
,
idno
:
eaccount
.
personsSign
,
cardno
:
eaccount
.
bankno
};
var
threeResult
=
await
this
.
utilesignbaoSve
.
bankthree
(
bankthreeParams
,
"bankinfoAuth"
);
console
.
log
(
"threeResult-----------------------------"
,
threeResult
);
if
(
!
threeResult
||
threeResult
.
code
==
-
120
)
{
return
this
.
returnjson
(
-
1
,
"银行三要素(姓名、身份证、银行卡号)验证失败"
);
}
if
(
threeResult
.
code
==
-
110
)
{
return
this
.
returnjson
(
-
1
,
"银行三要素验证失败"
);
}
}
// c_dkecontract
var
dkecontract
=
await
this
.
dao
.
findOne
({
eflowstatus
:
'2'
,
usereaccount_id
:
eaccount
.
id
,
dktemplate_id
:
ecid
,
});
if
(
dkecontract
)
{
return
this
.
returnjson
(
0
,
"用户已经签约"
,
{
contractId
:
dkecontract
.
id
});
}
if
(
isNeedCreate
)
{
var
uidStr
=
await
this
.
getUidStr
(
8
,
36
);
var
thirdId
=
etemplate
.
id
+
"_"
+
eaccount
.
id
+
uidStr
;
//2.创建e签宝account 5.2.1 , 创建后save()
var
params
=
{
thirdId
:
thirdId
,
name
:
eaccount
.
userName
,
idNo
:
eaccount
.
personsSign
,
idType
:
19
,
mobile
:
eaccount
.
mobile
};
var
getAccount
=
await
this
.
utilesignbaoSve
.
createAccountId
(
params
,
"econtractSve"
);
if
(
getAccount
&&
getAccount
.
code
==
1
&&
getAccount
.
data
)
{
eaccount
.
eaccountid
=
getAccount
.
data
.
accountId
;
await
eaccount
.
save
();
}
else
{
return
this
.
returnjson
(
-
1
,
"账户创建失败"
);
}
}
dkecontract
=
{
name
:
dkcompany
.
name
,
dktemplate_id
:
ecid
,
user_id
:
user
.
id
,
usereaccount_id
:
eaccount
.
id
,
dkcompany_id
:
dkcompany
.
dkcompany
,
edocid
:
""
,
eflowid
:
""
,
esignUrl
:
""
,
eflowstatus
:
"1"
,
}
dkecontract
=
await
this
.
create
(
dkecontract
);
var
dkaggreement
=
await
this
.
dkaggreementDao
.
findById
(
etemplate
.
dkaggreement_id
);
var
params
=
{
templateId
:
dkaggreement
.
templateid
,
//模板id,由创建模板接口调用返回的templateId 必填
name
:
dkcompany
.
name
,
//合同模板名称 必填
simpleFormFields
:
{
nameA
:
dkcompany
.
name
,
//甲方 必填
addressA
:
dkcompany
.
addr
,
// 甲方地址
phoneA
:
dkcompany
.
phone
,
// 甲方电话
nameB
:
eaccount
.
userName
,
//乙方姓名 必填
phoneB
:
eaccount
.
mobile
,
//乙方电话 必填
nameC
:
eaccount
.
userName
,
// 已方姓名
phoneC
:
eaccount
.
mobile
,
// 乙方电话
idcardC
:
eaccount
.
personsSign
,
// 乙方身份证
banknoC
:
eaccount
.
bankno
,
// 乙方银行卡号
signdate
:
moment
().
format
(
"YYYY/MM/DD"
),
// 签约日期
}
};
var
ebaoAccountId
=
eaccount
.
eaccountid
;
//签署人账户id-- 必填
var
thirdOrderNo
=
"dk_"
+
dkecontract
.
id
;
//第三方流水号,通知回调使用---选填
var
eBaoRedirectBossUrl
=
""
;
var
sealId
=
dkcompany
.
sealId
;
let
tt
=
await
this
.
utilesignbaoSve
.
userSignContractNoTemplate2
(
params
,
ebaoAccountId
,
thirdOrderNo
,
eBaoRedirectBossUrl
,
"econtractSve"
,
sealId
);
console
.
log
(
"-============= result ==========================="
,
tt
);
if
(
tt
&&
tt
.
data
&&
tt
.
code
==
1
)
{
dkecontract
.
eflowid
=
tt
.
data
.
flowId
;
dkecontract
.
edocid
=
tt
.
data
.
docId
;
dkecontract
.
eflowstatus
=
'2'
,
dkecontract
.
esignUrl
=
tt
.
data
.
signUrl
;
var
signTime
=
new
Date
();
dkecontract
.
completed_at
=
signTime
;
dkecontract
.
begin_at
=
signTime
;
var
end_at
=
new
Date
();
end_at
.
setFullYear
(
end_at
.
getFullYear
()
+
1
);
dkecontract
.
end_at
=
end_at
;
dkecontract
.
save
();
}
this
.
redisClient
.
rpushBCD
({
id
:
dkecontract
.
id
,
sve
:
"e"
});
return
this
.
returnjson
(
0
,
"success"
,
{
contractId
:
dkecontract
.
id
});
return
this
.
returnjson
(
-
1
,
tt
.
message
||
"签约失败"
,
tt
.
code
);
}
returnjson
(
code
,
msg
,
data
)
{
return
{
code
:
code
,
msg
:
msg
,
data
:
data
||
null
}
}
}
return
uuid
.
join
(
''
);
}
}
}
module
.
exports
=
DKcontractService
;
\ No newline at end of file
module
.
exports
=
DKcontractService
;
bpo-web/app/base/service/impl/dktemplatebusiSve.js
0 → 100644
View file @
72608629
const
ServiceBase
=
require
(
"../sve.base"
);
class
DktemplatebusiService
extends
ServiceBase
{
constructor
()
{
super
(
ServiceBase
.
getDaoName
(
DktemplatebusiService
));
}
async
getlist
(
id
)
{
var
sql
=
"SELECT * FROM c_dktemplate_busi WHERE template_id = :template_id"
;
var
page
=
await
this
.
customQuery
(
sql
,{
template_id
:
id
});
return
page
;
}
async
busiIdsByTemplateId
(
template_id
)
{
var
sql
=
"SELECT busi_id FROM c_dktemplate_busi WHERE template_id = :template_id"
;
var
list
=
await
this
.
customQuery
(
sql
,
{
template_id
:
template_id
});
let
rs
=
[];
if
(
!
list
||
list
.
length
==
0
)
{
return
rs
;
}
for
(
let
item
of
list
)
{
rs
.
push
(
item
.
busi_id
);
}
return
rs
;
}
async
getinfo
(
qobj
)
{
var
sql
=
"SELECT * FROM c_dktemplate_busi WHERE template_id = "
+
qobj
.
template_id
+
" AND busi_id = "
+
qobj
.
company_id
;
var
page
=
await
this
.
customQuery
(
sql
);
return
page
;
}
async
deleteTetId
(
qobj
)
{
let
sql
=
"DELETE FROM c_dktemplate_busi WHERE id = "
+
qobj
.
id
;
await
this
.
customExecAddOrPutSql
(
sql
);
return
1
;
}
async
suggest
(
name
,
ownerIds
)
{
return
await
this
.
dao
.
suggest
(
name
,
ownerIds
);
}
async
saveto
(
etebusi
)
{
return
await
this
.
create
(
etebusi
);
}
}
module
.
exports
=
DktemplatebusiService
;
bpo-web/app/base/service/impl/econtractSve.js
View file @
72608629
...
@@ -1295,6 +1295,7 @@ class EcontractService extends ServiceBase {
...
@@ -1295,6 +1295,7 @@ class EcontractService extends ServiceBase {
var
ecompany
=
await
this
.
ecompanyDao
.
findById
(
etemplate
.
ecompany_id
);
var
ecompany
=
await
this
.
ecompanyDao
.
findById
(
etemplate
.
ecompany_id
);
// p_user
// p_user
var
user
=
await
this
.
userDao
.
findOne
({
var
user
=
await
this
.
userDao
.
findOne
({
unionId
:
unionId
,
unionId
:
unionId
,
});
});
...
...
bpo-web/app/base/service/impl/entcontractSve.js
View file @
72608629
...
@@ -236,7 +236,7 @@ class EntcontractService extends ServiceBase {
...
@@ -236,7 +236,7 @@ class EntcontractService extends ServiceBase {
type
:
"0"
,
// 类型 0 一般纳税人 1 小规模纳税人
type
:
"0"
,
// 类型 0 一般纳税人 1 小规模纳税人
companyName
:
params
.
merchantName
,
//商户名称
companyName
:
params
.
merchantName
,
//商户名称
mobile
:
params
.
mobile
,
//手机号
mobile
:
params
.
mobile
,
//手机号
mainId
:
"67731101"
,
//代征主体 67731101 测试 67731504
mainId
:
"67731101"
,
signedName
:
params
.
merchantName
,
//合同名称 使用商户名称
signedName
:
params
.
merchantName
,
//合同名称 使用商户名称
beginTime
:
moment
().
format
(
"YYYY-MM-DD"
),
//当前时间, // 签约开始时间
beginTime
:
moment
().
format
(
"YYYY-MM-DD"
),
//当前时间, // 签约开始时间
invalidTime
:
moment
().
add
(
2
,
'y'
).
format
(
"YYYY-MM-DD"
),
// 签约失效时间
invalidTime
:
moment
().
add
(
2
,
'y'
).
format
(
"YYYY-MM-DD"
),
// 签约失效时间
...
@@ -400,17 +400,75 @@ class EntcontractService extends ServiceBase {
...
@@ -400,17 +400,75 @@ class EntcontractService extends ServiceBase {
async
createYzMerchant_1
(
params
)
{
async
yzMerchantAutoSigns
(
params
,
enttemplate
){
//判断商户是否签约
var
ecid
=
params
.
ecid
;
var
unionId
=
params
.
appId
+
"_"
+
params
.
merchantId
+
"_"
+
params
.
idNo
;
var
user
=
await
this
.
userDao
.
findOne
({
unionId
:
unionId
});
if
(
!
user
)
{
user
=
await
this
.
userDao
.
create
({
appkey
:
params
.
appId
,
unionId
:
unionId
,
userId3rd
:
params
.
merchantId
,
userName
:
params
.
idName
,
mobile
:
params
.
mobile
,
utype
:
0
,
});
}
// p_user_eaccount
var
eaccount
=
await
this
.
usereaccountDao
.
findOne
({
user_id
:
user
.
id
,
personsSign
:
params
.
idNo
,})
||
{};
eaccount
.
user_id
=
user
.
id
;
eaccount
.
userName
=
params
.
idName
;
eaccount
.
mobile
=
params
.
mobile
;
eaccount
.
bankno
=
""
;
eaccount
.
personsSign
=
params
.
idNo
;
if
(
eaccount
.
id
)
{
await
eaccount
.
save
();
}
else
{
eaccount
=
await
this
.
usereaccountDao
.
create
(
eaccount
);
}
var
entcontract
=
await
this
.
dao
.
findOne
({
eflowstatus
:
'2'
,
usereaccount_id
:
eaccount
.
id
,
enttemplate_id
:
ecid
,
});
if
(
entcontract
)
{
let
merchantSign
=
await
this
.
yzmerchantsignedDao
.
findOne
({
entcontract_id
:
entcontract
.
id
,
});
if
(
!
merchantSign
)
{
return
this
.
returnjson
(
-
1
,
"数据错误"
);
}
let
res
=
{
code
:
0
,
msg
:
"签约成功"
,
data
:
{
entcontract
:
entcontract
.
id
,
},
};
return
res
;
}
var
reso
=
await
this
.
createYzMerchant_1
(
params
,
enttemplate
);
if
(
reso
.
code
==
-
1
){
return
this
.
returnjson
(
-
1
,
"签约失败"
);
}
this
.
toSignUp
(
params
,
eaccount
,
user
,
entcontract
,
reso
.
erchants
);
return
this
.
returnjson
(
0
,
"签约成功"
);
}
async
createYzMerchant_1
(
params
,
enttemplate
){
var
data
=
{
var
data
=
{
// appId: "1202849621743763458",
appId
:
enttemplate
.
appid
,
// mchtId: "1202848945651318786",
mchtId
:
enttemplate
.
mcthid
,
appId
:
params
.
toAppId
,
mchtId
:
params
.
toMcthid
,
ageFlag
:
0
,
ageFlag
:
0
,
type
:
"0"
,
// 类型 0 一般纳税人 1 小规模纳税人
type
:
"0"
,
// 类型 0 一般纳税人 1 小规模纳税人
companyName
:
params
.
merchantName
,
//商户名称
companyName
:
params
.
merchantName
,
//商户名称
mobile
:
params
.
mobile
,
//手机号
mobile
:
params
.
mobile
,
//手机号
mainId
:
"67731504"
,
//代征主体 67731101 测试 67731504
mainId
:
settings
.
apiconfig
.
getmainId
()
,
//代征主体 67731101 测试 67731504
signedName
:
params
.
merchantName
,
//合同名称 使用商户名称
signedName
:
params
.
merchantName
,
//合同名称 使用商户名称
beginTime
:
moment
().
format
(
"YYYY-MM-DD"
),
//当前时间, // 签约开始时间
beginTime
:
moment
().
format
(
"YYYY-MM-DD"
),
//当前时间, // 签约开始时间
invalidTime
:
moment
().
add
(
2
,
'y'
).
format
(
"YYYY-MM-DD"
),
// 签约失效时间
invalidTime
:
moment
().
add
(
2
,
'y'
).
format
(
"YYYY-MM-DD"
),
// 签约失效时间
...
@@ -426,7 +484,6 @@ class EntcontractService extends ServiceBase {
...
@@ -426,7 +484,6 @@ class EntcontractService extends ServiceBase {
nonceStr
:
await
this
.
getUidStr
(
16
,
36
)
nonceStr
:
await
this
.
getUidStr
(
16
,
36
)
};
};
console
.
log
(
"有赞商户创建data:"
,
data
);
console
.
log
(
"有赞商户创建data:"
,
data
);
var
signArr
=
[];
var
signArr
=
[];
var
keys
=
Object
.
keys
(
data
).
sort
();
var
keys
=
Object
.
keys
(
data
).
sort
();
for
(
var
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
...
@@ -434,11 +491,8 @@ class EntcontractService extends ServiceBase {
...
@@ -434,11 +491,8 @@ class EntcontractService extends ServiceBase {
var
v
=
data
[
k
];
var
v
=
data
[
k
];
signArr
.
push
(
k
+
"="
+
v
);
signArr
.
push
(
k
+
"="
+
v
);
}
}
var
signStr
=
signArr
.
join
(
"&"
)
+
"&key="
+
params
.
key
;
var
signStr
=
signArr
.
join
(
"&"
)
+
"&key="
+
enttemplate
.
key
;
console
.
log
(
"有赞商户创建signStr:"
,
signStr
);
data
.
sign
=
md5
(
signStr
).
toUpperCase
();
data
.
sign
=
md5
(
signStr
).
toUpperCase
();
console
.
log
(
"有赞商户创建sign:"
,
data
.
sign
);
data
.
bizContent
=
[
data
.
bizContent
=
[
{
{
"quickDeductionFactor"
:
0
,
"quickDeductionFactor"
:
0
,
...
@@ -459,7 +513,6 @@ class EntcontractService extends ServiceBase {
...
@@ -459,7 +513,6 @@ class EntcontractService extends ServiceBase {
"maxValue"
:
214748364700
"maxValue"
:
214748364700
}
}
];
];
var
rtn
=
null
;
try
{
try
{
let
url
=
settings
.
apiconfig
.
settleApiConfig
().
createMerchantApi
;
let
url
=
settings
.
apiconfig
.
settleApiConfig
().
createMerchantApi
;
console
.
log
(
"有赞商户创建url:"
,
url
);
console
.
log
(
"有赞商户创建url:"
,
url
);
...
@@ -468,9 +521,11 @@ class EntcontractService extends ServiceBase {
...
@@ -468,9 +521,11 @@ class EntcontractService extends ServiceBase {
url
:
url
,
url
:
url
,
data
:
data
,
data
:
data
,
});
});
console
.
log
(
"有赞商户创建result:"
,
rs
.
data
);
var
reso
=
rs
.
data
;
var
reso
=
rs
.
data
;
if
(
reso
.
code
==
-
1
){
console
.
log
(
"有赞创建商户错误==========="
,
reso
)
return
reso
;
}
var
erchants
=
await
this
.
yzmerchantsignedDao
.
findOne
({
var
erchants
=
await
this
.
yzmerchantsignedDao
.
findOne
({
companyName
:
params
.
merchantName
,
companyName
:
params
.
merchantName
,
});
});
...
@@ -481,51 +536,10 @@ class EntcontractService extends ServiceBase {
...
@@ -481,51 +536,10 @@ class EntcontractService extends ServiceBase {
mchtId
:
reso
.
data
.
mchtId
,
mchtId
:
reso
.
data
.
mchtId
,
mainId
:
reso
.
data
.
mainId
,
mainId
:
reso
.
data
.
mainId
,
secret
:
reso
.
data
.
secret
,
secret
:
reso
.
data
.
secret
,
e
ntcontract_id
:
params
.
entcontract_id
,
e
cid
:
10287
});
});
}
}
let
ecompany
=
await
this
.
ecompanyDao
.
findOne
({
"name"
:
params
.
merchantName
,
})
if
(
!
ecompany
)
{
// 创建ecompany
ecompany
=
await
this
.
ecompanyDao
.
create
({
"name"
:
params
.
merchantName
,
"nameA"
:
''
,
"isEnabled"
:
true
,
"isQuiet"
:
true
,
"sealurl"
:
""
,
"encryptkey"
:
""
,
"posturl"
:
""
});
}
let
temp
=
await
this
.
etemplateDao
.
findById
(
10287
);
let
template
=
await
this
.
etemplateDao
.
findOne
({
ecompany_id
:
ecompany
.
id
,
});
if
(
!
template
)
{
template
=
await
this
.
etemplateDao
.
create
({
ecompany_id
:
ecompany
.
id
,
name
:
ecompany
.
name
,
templateid
:
temp
.
templateid
,
ecompanyMainId
:
temp
.
ecompanyMainId
,
nameA
:
temp
.
nameA
,
filekey
:
temp
.
filekey
,
//e签宝返回文件key
filepath
:
temp
.
filepath
,
//需要在后台补充
placeholderkey
:
temp
.
placeholderkey
,
//模板占位信息
isEnabled
:
true
,
});
}
reso
.
data
.
ecid
=
template
.
id
;
if
(
!
erchants
.
ecid
)
{
erchants
.
ecid
=
template
.
id
;
await
erchants
.
save
();
}
var
etemplatebusi
=
await
this
.
etemplatebusiDao
.
findOne
({
var
etemplatebusi
=
await
this
.
etemplatebusiDao
.
findOne
({
template_id
:
erchants
.
ecid
,
template_id
:
erchants
.
ecid
,
busi_id
:
erchants
.
mchtId
,
busi_id
:
erchants
.
mchtId
,
...
@@ -538,39 +552,135 @@ class EntcontractService extends ServiceBase {
...
@@ -538,39 +552,135 @@ class EntcontractService extends ServiceBase {
busi_company_name
:
erchants
.
companyName
,
busi_company_name
:
erchants
.
companyName
,
});
});
}
}
reso
.
erchants
=
erchants
;
// let busi = await this.ecompanybusiDao.findOne({
// ecompany_id: ecompany.id,
// etemplate_id: template.id,
// });
// if (!busi) {
// await this.ecompanybusiDao.create({
// ecompany_id: ecompany.id,
// etemplate_id: template.id,
// postwxurl: "",
// postsignurl: "",
// appId: reso.data.appId,
// mchtId: reso.data.mchtId,
// mainId: reso.data.mainId,
// key: reso.data.secret,
// });
// } else {
// busi.appId = reso.data.appId;
// busi.mchtId = reso.data.mchtId;
// busi.mainId = reso.data.mainId;
// busi.key = reso.data.secret;
// await busi.save();
// }
return
reso
;
return
reso
;
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
.
stack
);
console
.
log
(
e
.
stack
);
let
result
=
{};
return
{
code
:
-
1
,
message
:
"操作异常"
};
result
.
code
=
-
1
;
}
result
.
message
=
"操作异常"
;
return
result
;
}
async
toSignUp
(
params
,
eaccount
,
user
,
entcontract
,
erchants
){
var
ecid
=
params
.
ecid
;
var
unionId
=
params
.
appId
+
"_"
+
params
.
merchantId
+
"_"
+
params
.
idNo
;
// enttemplate 模板查询
var
enttemplate
=
await
this
.
enttemplateSve
.
findById
(
ecid
);
// entcompany
var
entcompany
=
await
this
.
entcompanyDao
.
findById
(
enttemplate
.
entcompany_id
);
var
isNeedCreate
=
!
eaccount
.
eaccountid
||
eaccount
.
userName
!=
params
.
idName
||
eaccount
.
mobile
!=
params
.
mobile
;
eaccount
.
user_id
=
user
.
id
;
eaccount
.
userName
=
params
.
idName
;
eaccount
.
mobile
=
params
.
mobile
;
eaccount
.
bankno
=
""
;
eaccount
.
personsSign
=
params
.
idNo
;
if
(
eaccount
.
id
)
{
await
eaccount
.
save
();
}
else
{
eaccount
=
await
this
.
usereaccountDao
.
create
(
eaccount
);
}
// e签宝流程
if
(
isNeedCreate
)
{
var
uidStr
=
await
this
.
getUidStr
(
8
,
36
);
var
thirdId
=
enttemplate
.
id
+
"_"
+
eaccount
.
id
+
uidStr
;
//2.创建e签宝account 5.2.1 , 创建后save()
let
createParams
=
{
thirdId
:
thirdId
,
name
:
eaccount
.
userName
,
idNo
:
eaccount
.
personsSign
,
idType
:
19
,
mobile
:
eaccount
.
mobile
};
var
getAccount
=
await
this
.
utilesignbaoSve
.
createAccountId
(
createParams
,
"econtractSve"
);
if
(
getAccount
&&
getAccount
.
code
==
1
&&
getAccount
.
data
)
{
eaccount
.
eaccountid
=
getAccount
.
data
.
accountId
;
await
eaccount
.
save
();
}
else
{
return
this
.
returnjson
(
-
1
,
"账户创建失败"
);
}
}
// 3.设置静默签署授权 5.2.5
if
(
!
eaccount
.
isGrantAuto
)
{
var
paramsGrant
=
{
grantAccountId
:
eaccount
.
eaccountid
};
var
grantAuto
=
await
this
.
utilesignbaoSve
.
grantAuthorization
(
paramsGrant
,
"econtractSve"
);
if
(
grantAuto
.
code
!=
1
)
{
return
this
.
returnjson
(
-
1
,
"静默签署设置失败"
);
}
eaccount
.
isGrantAuto
=
true
;
await
eaccount
.
save
();
}
// 创建合同
entcontract
=
{
name
:
entcompany
.
name
,
eflowstatusname
:
"签约中"
,
eflowstatus
:
"1"
,
user_id
:
eaccount
.
user_id
,
usereaccount_id
:
eaccount
.
id
,
enttemplate_id
:
enttemplate
.
id
,
entcompany_id
:
entcompany
.
id
,
};
entcontract
=
await
this
.
create
(
entcontract
);
erchants
.
entcontract_id
=
entcontract
.
id
;
erchants
.
save
();
var
sealId
=
entcompany
.
sealId
;
let
today
=
new
Date
().
Format
(
"yyyy"
)
+
"年"
+
new
Date
().
Format
(
"MM"
)
+
"月"
+
new
Date
().
Format
(
"dd"
)
+
"日"
;
var
signParams
=
{
templateId
:
enttemplate
.
templateid
,
//模板id,由创建模板接口调用返回的templateId 必填
name
:
enttemplate
.
name
,
//合同模板名称 必填
simpleFormFields
:
{
nameA
:
params
.
merchantName
,
//甲方 必填
addressA
:
params
.
merchantAddr
,
//甲方地址
representA
:
params
.
merchantLegal
,
//甲方法定代表人
agentA
:
params
.
idName
,
//甲方联系人
agentMobileA
:
params
.
mobile
,
//甲方 联系电话
nameB
:
entcompany
.
name
,
//乙方 必填
addressB
:
entcompany
.
addr
,
//乙方 地址
representB
:
entcompany
.
legal
,
//乙方 法定代表人
agentB
:
entcompany
.
contactName
,
//乙方 联系人
agentMobileB
:
entcompany
.
contactMobile
,
//乙方 联系电话
signDate
:
today
,
//签约时间
signDateA
:
today
,
//甲方签约日期 必填
signDateB
:
today
//乙方签约日期 必填
}
};
var
ebaoAccountId
=
eaccount
.
eaccountid
;
//签署人账户id-- 必填
var
thirdOrderNo
=
entcontract
.
id
;
//第三方流水号,通知回调使用---选填
var
eBaoRedirectBossUrl
=
""
;
var
tt
=
await
this
.
utilesignbaoSve
.
userAutoSignContractNoTemplaterEversalSeal
(
signParams
,
ebaoAccountId
,
thirdOrderNo
,
eBaoRedirectBossUrl
,
"econtractSve"
,
sealId
);
if
(
tt
&&
tt
.
data
&&
tt
.
code
==
1
)
{
entcontract
.
eflowid
=
tt
.
data
.
flowId
;
entcontract
.
edocid
=
tt
.
data
.
docId
;
entcontract
.
eflowstatus
=
'2'
;
entcontract
.
eflowstatusname
=
"已完成"
;
var
signTime
=
new
Date
();
entcontract
.
completed_at
=
signTime
;
entcontract
.
begin_at
=
signTime
;
var
end_at
=
new
Date
();
end_at
.
setFullYear
(
end_at
.
getFullYear
()
+
1
);
entcontract
.
end_at
=
end_at
;
await
entcontract
.
save
();
params
.
entcontract_id
=
entcontract
.
id
;
params
.
toAppId
=
enttemplate
.
appid
;
params
.
toMcthid
=
enttemplate
.
mcthid
;
params
.
key
=
enttemplate
.
key
;
// 合同下载任务
this
.
redisClient
.
rpushBCD
({
id
:
entcontract
.
id
,
sve
:
"ent"
});
console
.
log
(
"===============有赞商户签约异步签约成功==============="
,
new
Date
())
}
}
console
.
log
(
new
Date
(),
"===============有赞商户签约异步签约失败==============="
,
tt
)
}
}
async
syncSign
(
contractId
)
{
async
syncSign
(
contractId
)
{
var
contract
=
await
this
.
dao
.
findById
(
contractId
);
var
contract
=
await
this
.
dao
.
findById
(
contractId
);
if
(
!
contract
)
{
if
(
!
contract
)
{
...
@@ -901,194 +1011,6 @@ class EntcontractService extends ServiceBase {
...
@@ -901,194 +1011,6 @@ class EntcontractService extends ServiceBase {
}
}
async
yzMerchantAutoSigns
(
params
)
{
var
ecid
=
params
.
ecid
;
var
unionId
=
params
.
appId
+
"_"
+
params
.
merchantId
+
"_"
+
params
.
idNo
;
// enttemplate 模板查询
var
enttemplate
=
await
this
.
enttemplateSve
.
findById
(
ecid
);
// entcompany
var
entcompany
=
await
this
.
entcompanyDao
.
findById
(
enttemplate
.
entcompany_id
);
// p_user
var
user
=
await
this
.
userDao
.
findOne
({
unionId
:
unionId
,
});
if
(
!
user
)
{
user
=
await
this
.
userDao
.
create
({
appkey
:
params
.
appId
,
unionId
:
unionId
,
userId3rd
:
params
.
merchantId
,
userName
:
params
.
idName
,
mobile
:
params
.
mobile
,
utype
:
0
,
});
}
// p_user_eaccount
var
eaccount
=
await
this
.
usereaccountDao
.
findOne
({
user_id
:
user
.
id
,
personsSign
:
params
.
idNo
,
})
||
{};
var
isNeedCreate
=
!
eaccount
.
eaccountid
||
eaccount
.
userName
!=
params
.
idName
||
eaccount
.
mobile
!=
params
.
mobile
;
eaccount
.
user_id
=
user
.
id
;
eaccount
.
userName
=
params
.
idName
;
eaccount
.
mobile
=
params
.
mobile
;
eaccount
.
bankno
=
""
;
eaccount
.
personsSign
=
params
.
idNo
;
if
(
eaccount
.
id
)
{
await
eaccount
.
save
();
}
else
{
eaccount
=
await
this
.
usereaccountDao
.
create
(
eaccount
);
}
// c_entcontract
var
entcontract
=
await
this
.
dao
.
findOne
({
eflowstatus
:
'2'
,
usereaccount_id
:
eaccount
.
id
,
enttemplate_id
:
ecid
,
});
if
(
entcontract
)
{
// return this.returnjson(0, "该商户已签约");
let
merchantSign
=
await
this
.
yzmerchantsignedDao
.
findOne
({
entcontract_id
:
entcontract
.
id
,
});
if
(
!
merchantSign
)
{
return
this
.
returnjson
(
-
1
,
"数据错误"
);
}
let
res
=
{
code
:
0
,
msg
:
"执行成功"
,
data
:
{
ecid
:
merchantSign
.
ecid
,
appId
:
merchantSign
.
appId
,
mchtId
:
merchantSign
.
mchtId
,
mainId
:
merchantSign
.
mainId
,
secret
:
merchantSign
.
secret
,
},
};
return
res
;
}
// e签宝流程
if
(
isNeedCreate
)
{
// 任博说有赞商户不验证银行卡三要素
// var bankthreeParams = {
// name: eaccount.userName,
// idno: eaccount.personsSign,
// cardno: eaccount.bankno
// };
// var threeResult = await this.utilesignbaoSve.bankthree(bankthreeParams, "bankinfoAuth");
// console.log("threeResult-----------------------------", threeResult);
// if (!threeResult || threeResult.code == -120) {
// return this.returnjson(-1, "银行三要素(姓名、身份证、银行卡号)验证失败");
// }
// if (threeResult.code == -110) {
// return this.returnjson(-1, "银行三要素验证失败");
// }
var
uidStr
=
await
this
.
getUidStr
(
8
,
36
);
var
thirdId
=
enttemplate
.
id
+
"_"
+
eaccount
.
id
+
uidStr
;
//2.创建e签宝account 5.2.1 , 创建后save()
let
createParams
=
{
thirdId
:
thirdId
,
name
:
eaccount
.
userName
,
idNo
:
eaccount
.
personsSign
,
idType
:
19
,
mobile
:
eaccount
.
mobile
};
var
getAccount
=
await
this
.
utilesignbaoSve
.
createAccountId
(
createParams
,
"econtractSve"
);
if
(
getAccount
&&
getAccount
.
code
==
1
&&
getAccount
.
data
)
{
eaccount
.
eaccountid
=
getAccount
.
data
.
accountId
;
await
eaccount
.
save
();
}
else
{
return
this
.
returnjson
(
-
1
,
"账户创建失败"
);
}
}
// 3.设置静默签署授权 5.2.5
if
(
!
eaccount
.
isGrantAuto
)
{
var
paramsGrant
=
{
grantAccountId
:
eaccount
.
eaccountid
};
var
grantAuto
=
await
this
.
utilesignbaoSve
.
grantAuthorization
(
paramsGrant
,
"econtractSve"
);
if
(
grantAuto
.
code
!=
1
)
{
return
this
.
returnjson
(
-
1
,
"静默签署设置失败"
);
}
eaccount
.
isGrantAuto
=
true
;
await
eaccount
.
save
();
}
// 创建合同
entcontract
=
{
name
:
entcompany
.
name
,
eflowstatusname
:
"签约中"
,
eflowstatus
:
"1"
,
user_id
:
eaccount
.
user_id
,
usereaccount_id
:
eaccount
.
id
,
enttemplate_id
:
enttemplate
.
id
,
entcompany_id
:
entcompany
.
id
,
};
entcontract
=
await
this
.
create
(
entcontract
);
var
sealId
=
entcompany
.
sealId
;
let
today
=
new
Date
().
Format
(
"yyyy"
)
+
"年"
+
new
Date
().
Format
(
"MM"
)
+
"月"
+
new
Date
().
Format
(
"dd"
)
+
"日"
;
var
signParams
=
{
templateId
:
enttemplate
.
templateid
,
//模板id,由创建模板接口调用返回的templateId 必填
name
:
enttemplate
.
name
,
//合同模板名称 必填
simpleFormFields
:
{
nameA
:
params
.
merchantName
,
//甲方 必填
addressA
:
params
.
merchantAddr
,
//甲方地址
representA
:
params
.
merchantLegal
,
//甲方法定代表人
agentA
:
params
.
idName
,
//甲方联系人
agentMobileA
:
params
.
mobile
,
//甲方 联系电话
nameB
:
entcompany
.
name
,
//乙方 必填
addressB
:
entcompany
.
addr
,
//乙方 地址
representB
:
entcompany
.
legal
,
//乙方 法定代表人
agentB
:
entcompany
.
contactName
,
//乙方 联系人
agentMobileB
:
entcompany
.
contactMobile
,
//乙方 联系电话
signDate
:
today
,
//签约时间
signDateA
:
today
,
//甲方签约日期 必填
signDateB
:
today
//乙方签约日期 必填
}
};
var
ebaoAccountId
=
eaccount
.
eaccountid
;
//签署人账户id-- 必填
var
thirdOrderNo
=
entcontract
.
id
;
//第三方流水号,通知回调使用---选填
var
eBaoRedirectBossUrl
=
""
;
var
tt
=
await
this
.
utilesignbaoSve
.
userAutoSignContractNoTemplaterEversalSeal
(
signParams
,
ebaoAccountId
,
thirdOrderNo
,
eBaoRedirectBossUrl
,
"econtractSve"
,
sealId
);
if
(
tt
&&
tt
.
data
&&
tt
.
code
==
1
)
{
entcontract
.
eflowid
=
tt
.
data
.
flowId
;
entcontract
.
edocid
=
tt
.
data
.
docId
;
entcontract
.
eflowstatus
=
'2'
;
entcontract
.
eflowstatusname
=
"已完成"
;
var
signTime
=
new
Date
();
entcontract
.
completed_at
=
signTime
;
entcontract
.
begin_at
=
signTime
;
var
end_at
=
new
Date
();
end_at
.
setFullYear
(
end_at
.
getFullYear
()
+
1
);
entcontract
.
end_at
=
end_at
;
await
entcontract
.
save
();
params
.
entcontract_id
=
entcontract
.
id
;
params
.
toAppId
=
enttemplate
.
appid
;
params
.
toMcthid
=
enttemplate
.
mcthid
;
params
.
key
=
enttemplate
.
key
;
// 合同下载任务
this
.
redisClient
.
rpushBCD
({
id
:
entcontract
.
id
,
sve
:
"ent"
});
return
await
this
.
createYzMerchant_1
(
params
);
}
return
this
.
returnjson
(
-
1
,
tt
.
message
||
"签约失败"
,
tt
.
code
);
}
returnjson
(
code
,
msg
,
data
)
{
returnjson
(
code
,
msg
,
data
)
{
return
{
return
{
code
:
code
,
code
:
code
,
...
...
bpo-web/app/base/service/impl/etemplatebusiSve.js
View file @
72608629
...
@@ -23,6 +23,11 @@ class EtemplatebusiService extends ServiceBase {
...
@@ -23,6 +23,11 @@ class EtemplatebusiService extends ServiceBase {
return
rs
;
return
rs
;
}
}
async
busiByTemplate
(
template_id
)
{
var
sql
=
"SELECT * FROM c_etemplate_busi WHERE template_type = 2 AND template_id = :template_id"
;
return
await
this
.
customQuery
(
sql
,
{
template_id
:
template_id
});
}
async
getinfo
(
qobj
)
{
async
getinfo
(
qobj
)
{
var
sql
=
"SELECT * FROM c_etemplate_busi WHERE template_id = "
+
qobj
.
template_id
+
" AND busi_id = "
+
qobj
.
company_id
;
var
sql
=
"SELECT * FROM c_etemplate_busi WHERE template_id = "
+
qobj
.
template_id
+
" AND busi_id = "
+
qobj
.
company_id
;
var
page
=
await
this
.
customQuery
(
sql
);
var
page
=
await
this
.
customQuery
(
sql
);
...
@@ -45,4 +50,4 @@ class EtemplatebusiService extends ServiceBase {
...
@@ -45,4 +50,4 @@ class EtemplatebusiService extends ServiceBase {
}
}
}
}
module
.
exports
=
EtemplatebusiService
;
module
.
exports
=
EtemplatebusiService
;
\ No newline at end of file
bpo-web/app/config/settings.js
View file @
72608629
...
@@ -85,6 +85,16 @@ var settings = {
...
@@ -85,6 +85,16 @@ var settings = {
return
"5111588557"
return
"5111588557"
}
}
},
},
//有赞商户创建 代征主体 //代征主体 67731101 测试 67731504
getmainId
:
function
(){
if
(
settings
.
env
==
"dev"
)
{
return
"67731504"
;
}
else
{
return
"67731101"
}
},
//e签宝appKey
//e签宝appKey
eSignBaoAppKey
:
function
()
{
eSignBaoAppKey
:
function
()
{
if
(
settings
.
env
==
"dev"
)
{
if
(
settings
.
env
==
"dev"
)
{
...
@@ -185,4 +195,4 @@ var settings = {
...
@@ -185,4 +195,4 @@ var settings = {
}
}
};
};
settings
.
ENVINPUT
=
ENVINPUT
;
settings
.
ENVINPUT
=
ENVINPUT
;
module
.
exports
=
settings
;
module
.
exports
=
settings
;
\ 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