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
9a557a21
Commit
9a557a21
authored
Jul 29, 2020
by
王勇飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'gsb-center-manage' of gitlab.gongsibao.com:jiangyong/zhichan into gsb-center-manage
parents
bdbe32bf
4e733e98
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
345 additions
and
97 deletions
+345
-97
center-manage/app/base/db/models/auth/user.js
+21
-1
center-manage/app/base/service/impl/auth/userSve.js
+108
-7
center-manage/app/base/service/impl/common/channelhandlers/ali.js
+0
-0
center-manage/app/base/service/impl/common/companySve.js
+23
-23
center-manage/app/base/system.js
+17
-1
center-manage/app/config/environment.js
+35
-21
center-manage/app/config/routes/api.js
+103
-26
center-manage/app/config/routes/web.js
+15
-15
center-manage/app/config/settings.js
+22
-3
center-manage/package.json
+1
-0
No files found.
center-manage/app/base/db/models/auth/user.js
View file @
9a557a21
...
...
@@ -55,7 +55,27 @@ module.exports = (db, DataTypes) => {
regiontags
:
{
type
:
DataTypes
.
STRING
,
allowNull
:
true
,
}
// 区域标签
},
// 区域标签
openid
:
{
type
:
DataTypes
.
STRING
,
allowNull
:
true
,
},
unid
:
{
type
:
DataTypes
.
STRING
,
allowNull
:
true
,
},
isDelivery
:
{
type
:
DataTypes
.
BOOLEAN
,
defaultValue
:
false
},
isSalesman
:
{
type
:
DataTypes
.
BOOLEAN
,
defaultValue
:
false
},
isAllArea
:
{
type
:
DataTypes
.
BOOLEAN
,
defaultValue
:
false
}
},
{
paranoid
:
true
,
//假的删除
underscored
:
true
,
...
...
center-manage/app/base/service/impl/auth/userSve.js
View file @
9a557a21
...
...
@@ -115,7 +115,6 @@ class UserService extends ServiceBase {
//创建统一账号 to add extra fields
let
cred
=
await
self
.
cregister
(
u
.
userName
,
p
.
company_id
,
p
.
password
,
u
.
id
+
""
)
console
.
log
(
"......................................"
);
console
.
log
(
cred
.
consumer
.
id
);
if
(
cred
)
{
u
.
center_id
=
cred
.
consumer
.
id
;
u
.
jwtkey
=
cred
.
key
;
...
...
@@ -392,7 +391,7 @@ class UserService extends ServiceBase {
*/
async
getBizUserForBizChance
(
clientMobile
,
spName
,
productCatName
,
regionName
)
{
var
self
=
this
clientMobile
=
clientMobile
+
"_"
+
spName
+
"_"
+
regionName
clientMobile
=
clientMobile
+
"_"
+
spName
+
"_"
+
regionName
+
"_"
+
productCatName
//按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称
return
this
.
db
.
transaction
(
async
function
(
t
)
{
//先检查缓存是否存在bizuser
...
...
@@ -420,13 +419,13 @@ class UserService extends ServiceBase {
let
users
=
companyFind
.
us
let
cansels
=
users
.
filter
(
u
=>
{
if
(
regionName
&&
regionName
!=
""
&&
u
.
regiontags
)
{
if
(
u
.
isAllocated
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
&&
u
.
regiontags
.
indexOf
(
regionName
)
>=
0
)
{
if
(
u
.
isAllocated
&&
u
.
isSalesman
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
&&
u
.
regiontags
.
indexOf
(
regionName
)
>=
0
)
{
return
true
}
else
{
return
false
}
}
else
{
if
(
u
.
isAllocated
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
)
{
if
(
u
.
isAllocated
&&
u
.
isSalesman
&&
u
.
isAllArea
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
)
{
return
true
}
else
{
return
false
...
...
@@ -471,7 +470,7 @@ class UserService extends ServiceBase {
* @param {*} regionName 区域
*/
async
getBizUserForDelivery
(
xclientMobile
,
spName
,
productCatName
,
skucode
,
regionName
)
{
let
clientMobile
=
'fordeliver'
+
xclientMobile
+
"_"
+
spName
+
"_"
+
regionName
let
clientMobile
=
'fordeliver'
+
xclientMobile
+
"_"
+
spName
+
"_"
+
regionName
+
"_"
+
productCatName
var
self
=
this
//按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称
return
this
.
db
.
transaction
(
async
function
(
t
)
{
...
...
@@ -519,13 +518,13 @@ class UserService extends ServiceBase {
let
users
=
companyFind
.
us
let
cansels
=
users
.
filter
(
u
=>
{
if
(
regionName
&&
regionName
!=
""
&&
u
.
regiontags
)
{
if
(
u
.
isAllocated
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
&&
u
.
regiontags
.
indexOf
(
regionName
)
>=
0
)
{
if
(
u
.
isAllocated
&&
u
.
isDelivery
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
&&
u
.
regiontags
.
indexOf
(
regionName
)
>=
0
)
{
return
true
}
else
{
return
false
}
}
else
{
if
(
u
.
isAllocated
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
)
{
if
(
u
.
isAllocated
&&
u
.
isDelivery
&&
u
.
isAllArea
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
)
{
return
true
}
else
{
return
false
...
...
@@ -561,6 +560,108 @@ class UserService extends ServiceBase {
}
})
}
/**
* 阿里交付单分配规则(交付单处理业务员和交付员不是一个同一人)
* @param {*} xclientMobile 客户电话
* @param {*} spName 服务商名称
* @param {*} productCatName 产品类型名称
* @param {*} skucode 最小销售货品编码,来自渠道上架的码
* @param {*} regionName 区域
*/
async
getBizUserForAliDelivery
(
xclientMobile
,
spName
,
productCatName
,
skucode
,
regionName
)
{
let
clientMobile
=
'fordeliver'
+
xclientMobile
+
"_"
+
spName
+
"_"
+
regionName
let
self
=
this
//按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称
return
this
.
db
.
transaction
(
async
function
(
t
)
{
//按照产品简码,查询服务成本
let
productpricetmp
=
await
self
.
db
.
models
.
productprice
.
findOne
({
where
:
{
skucode
:
skucode
},
include
:
[
{
model
:
self
.
db
.
models
.
productcost
,
as
:
"costs"
,
attributes
:
[
'id'
,
'expensetype'
,
'costamount'
]
}
],
transaction
:
t
}
)
let
serviceCost
=
productpricetmp
.
costs
.
filter
(
c
=>
{
if
(
c
.
expensetype
==
"service"
)
{
return
true
}
})
let
costAmount
=
0
//获取服务费成本
if
(
serviceCost
.
length
>
0
)
{
costAmount
=
serviceCost
[
0
].
costamount
}
//先检查缓存是否存在bizuser
let
resultcache
=
await
self
.
cacheManager
[
"DeliveryBizUserCache"
].
getCache
(
clientMobile
)
let
isGoExec
=
false
if
(
!
resultcache
)
{
isGoExec
=
true
}
else
{
let
uname
=
resultcache
.
userName
let
ucache
=
await
self
.
cacheManager
[
"UserCache"
].
cache
(
uname
)
if
(
!
ucache
.
isAllocated
)
{
//解决修改为不接单
isGoExec
=
true
await
self
.
cacheManager
[
"DeliveryBizUserCache"
].
invalidate
(
clientMobile
)
}
}
//TODO 查询数据库user表来获取交付员信息 需要根据是否是"交付员"字段筛选(派单规则是将交付单派给交付员)
if
(
isGoExec
)
{
let
companyFind
=
await
self
.
companyDao
.
model
.
findOne
({
where
:
{
name
:
spName
},
include
:
[
{
model
:
self
.
db
.
models
.
user
,
as
:
"us"
,
attributes
:
[
'id'
,
'userName'
,
'mobile'
,
'isAllocated'
,
'opath'
,
'skilltags'
],
raw
:
true
}
],
excludes
:
[
'orgJson'
],
transaction
:
t
});
let
users
=
companyFind
.
us
let
cansels
=
users
.
filter
(
u
=>
{
if
(
regionName
&&
regionName
!=
""
&&
u
.
regiontags
)
{
if
(
u
.
isAllocated
&&
u
.
isDelivery
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
&&
u
.
regiontags
.
indexOf
(
regionName
)
>=
0
)
{
return
true
}
else
{
return
false
}
}
else
{
if
(
u
.
isAllocated
&&
u
.
isDelivery
&&
u
.
isAllArea
&&
u
.
skilltags
.
indexOf
(
productCatName
)
>=
0
)
{
return
true
}
else
{
return
false
}
}
})
let
lngth
=
cansels
.
length
//TODO 分配规则,需要改成循环分配
if
(
lngth
>
0
)
{
let
randindex
=
Math
.
floor
(
Math
.
random
()
*
lngth
)
let
selresult
=
cansels
[
randindex
]
//添加到缓存,按照客户电话key--缓存到业务员的对象
let
tmp
=
{
userId
:
selresult
.
id
,
userName
:
selresult
.
userName
,
mobile
:
selresult
.
mobile
,
opath
:
selresult
.
opath
,
cost
:
costAmount
,
compId
:
companyFind
.
id
}
await
self
.
cacheManager
[
"DeliveryBizUserCache"
].
cache
(
clientMobile
,
tmp
)
return
tmp
}
else
{
return
null
}
}
else
{
if
(
resultcache
)
{
//不继续,直接返回缓存
resultcache
[
"cost"
]
=
costAmount
return
resultcache
}
else
{
return
null
}
}
})
}
}
module
.
exports
=
UserService
;
...
...
center-manage/app/base/service/impl/common/channelhandlers/ali.js
0 → 100644
View file @
9a557a21
This diff is collapsed.
Click to expand it.
center-manage/app/base/service/impl/common/companySve.js
View file @
9a557a21
...
...
@@ -5,7 +5,7 @@ class CompanyService extends ServiceBase {
constructor
()
{
super
(
"common"
,
ServiceBase
.
getDaoName
(
CompanyService
));
}
async
getMyApps
(
appids
,
isSuper
)
{
async
getMyApps
(
appids
,
isSuper
)
{
let
appsrtn
=
null
if
(
isSuper
)
{
appsrtn
=
this
.
db
.
models
.
app
.
findAll
({
...
...
@@ -24,14 +24,14 @@ class CompanyService extends ServiceBase {
}
return
appsrtn
}
async
bindApps
(
appids
,
companyid
)
{
async
bindApps
(
appids
,
companyid
)
{
var
self
=
this
return
this
.
db
.
transaction
(
async
function
(
t
)
{
let
u
=
await
self
.
dao
.
update
({
appids
:
appids
,
id
:
companyid
},
t
)
return
appids
})
}
async
setOrgs
(
p
,
cmk
)
{
async
setOrgs
(
p
,
cmk
)
{
var
self
=
this
let
curNodeData
=
p
.
curdata
let
opathstr
=
curNodeData
.
orgpath
...
...
@@ -39,20 +39,20 @@ class CompanyService extends ServiceBase {
let
strjson
=
JSON
.
stringify
(
p
.
orgJson
)
p
.
id
=
p
.
company_id
p
.
orgJson
=
strjson
let
oldopath
=
''
if
(
!
oldNodeData
)
{
//如果不传老对象,表示当前操作是删除节点操作,检查是否存在用户,如果已经存在
let
oldopath
=
''
if
(
!
oldNodeData
)
{
//如果不传老对象,表示当前操作是删除节点操作,检查是否存在用户,如果已经存在
//那么就提示不能删除
let
us
=
await
self
.
db
.
models
.
user
.
findOne
({
where
:
{
opath
:
{
[
self
.
db
.
Op
.
like
]:
`%
${
opathstr
}
%`
}
}})
if
(
us
)
{
let
companytmp
=
await
this
.
dao
.
model
.
findOne
({
where
:
{
id
:
p
.
company_id
}});
let
us
=
await
self
.
db
.
models
.
user
.
findOne
({
where
:
{
opath
:
{
[
self
.
db
.
Op
.
like
]:
`%
${
opathstr
}
%`
}
}
})
if
(
us
)
{
let
companytmp
=
await
this
.
dao
.
model
.
findOne
({
where
:
{
id
:
p
.
company_id
}
});
return
{
orgJson
:
JSON
.
parse
(
companytmp
.
orgJson
)
}
}
else
{
}
else
{
let
u
=
await
this
.
dao
.
update
(
p
)
let
companytmp
=
await
this
.
dao
.
model
.
findOne
({
where
:
{
id
:
p
.
company_id
}});
let
companytmp
=
await
this
.
dao
.
model
.
findOne
({
where
:
{
id
:
p
.
company_id
}
});
return
{
orgJson
:
JSON
.
parse
(
companytmp
.
orgJson
)
}
}
}
else
{
oldopath
=
oldNodeData
.
orgpath
}
else
{
oldopath
=
oldNodeData
.
orgpath
==
''
?
'123456'
:
oldNodeData
.
orgpath
}
return
this
.
db
.
transaction
(
async
function
(
t
)
{
...
...
@@ -60,7 +60,7 @@ class CompanyService extends ServiceBase {
let
u
=
await
self
.
dao
.
update
(
p
,
t
)
//更新,还得传输当前节点,查询出当前节点的角色
//按照当前节点的opath查询出所有的用户,更新这些用户的角色信息
if
(
curNodeData
)
{
if
(
curNodeData
.
isPosition
)
{
let
us
=
await
self
.
db
.
models
.
user
.
findAll
({
where
:
{
opath
:
{
[
self
.
db
.
Op
.
like
]:
`%
${
oldopath
}
%`
}
},
transaction
:
t
})
...
...
@@ -77,22 +77,22 @@ class CompanyService extends ServiceBase {
let
rs
=
await
self
.
db
.
models
.
role
.
findAll
({
where
:
{
id
:
{
[
self
.
db
.
Op
.
in
]:
roleids
}
},
transaction
:
t
})
for
(
let
u
of
us
)
{
await
u
.
setRoles
(
rs
,
{
transaction
:
t
})
if
(
opathstr
!=
oldopath
)
{
u
.
opath
=
opathstr
+
"/"
+
u
.
userName
u
.
ptags
=
curNodeData
.
ptags
u
.
save
({
transaction
:
t
})
}
//
if (opathstr != oldopath) {
u
.
opath
=
opathstr
+
"/"
+
u
.
userName
u
.
ptags
=
curNodeData
.
ptags
u
.
save
({
transaction
:
t
})
//
}
//令用户缓存失效
await
self
.
cacheManager
[
"UserCache"
].
invalidate
(
u
.
userName
)
}
}
else
{
//不是岗位节点,检查修改后的路径是否和原始一致,如果不一致,那么需要查出原始的用户数据
}
else
{
//不是岗位节点,检查修改后的路径是否和原始一致,如果不一致,那么需要查出原始的用户数据
//把原来的路径替换当前新的code
if
(
opathstr
!=
oldopath
)
{
if
(
opathstr
!=
oldopath
)
{
let
us2
=
await
self
.
db
.
models
.
user
.
findAll
({
where
:
{
opath
:
{
[
self
.
db
.
Op
.
like
]:
`%
${
oldopath
}
%`
}
},
transaction
:
t
})
for
(
let
u
of
us2
)
{
let
curpath
=
u
.
opath
let
newpath
=
curpath
.
replace
(
oldNodeData
.
code
,
curNodeData
.
code
)
u
.
opath
=
newpath
let
curpath
=
u
.
opath
let
newpath
=
curpath
.
replace
(
oldNodeData
.
code
,
curNodeData
.
code
)
u
.
opath
=
newpath
u
.
save
({
transaction
:
t
})
//令用户缓存失效
await
self
.
cacheManager
[
"UserCache"
].
invalidate
(
u
.
userName
)
...
...
center-manage/app/base/system.js
View file @
9a557a21
...
...
@@ -2,6 +2,8 @@ var fs = require("fs");
var
objsettings
=
require
(
"../config/objsettings"
);
var
settings
=
require
(
"../config/settings"
);
const
request
=
require
(
'request'
);
const
jwk2pem
=
require
(
'pem-jwk'
).
jwk2pem
const
jwt
=
require
(
'jsonwebtoken'
)
class
System
{
static
declare
(
ns
)
{
var
ar
=
ns
.
split
(
'.'
);
...
...
@@ -16,6 +18,14 @@ class System {
}
}
}
/**
* 验证token
* @param {String} token jwt token
* @param {Object} publicKey 公钥
*/
static
verify
(
token
,
publicKey
)
{
return
jwt
.
verify
(
token
,
jwk2pem
(
publicKey
));
}
static
async
delReq
(
url
,
qdata
)
{
let
rtn
=
{}
let
promise
=
new
Promise
(
function
(
resv
,
rej
)
{
...
...
@@ -98,12 +108,14 @@ class System {
url
:
url
,
form
:
data
},
function
(
error
,
response
,
body
)
{
rtn
.
statusCode
=
response
.
statusCode
if
(
!
error
)
{
rtn
.
statusCode
=
response
.
statusCode
let
data
=
JSON
.
parse
(
body
)
rtn
.
data
=
data
resv
(
rtn
);
}
else
{
console
.
log
(
error
)
rej
(
error
)
}
});
...
...
@@ -365,4 +377,8 @@ module.exports = System;
//System.execLogs("hello",{"opcode":"xxxxx"},"ddfdf",{requestId:'ddds'},null)
// let str = "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRjMmM1MzMwMjNhMTExZTlhOTU3NjliODBiNDI4Y2QxIn0.eyJpZCI6IjViZDk2MWJkZWQxN2E5MmI1MDFjZWQ0ZCIsIm5hbWUiOiLpnZLph4kxMSIsImVtcGxveWVlIjoiNWQ5ZWNlODc1Zjk3ZGQzMzEwNzI4ZjY4IiwicGhvbmUiOiI3TFlYZ29ySkdGM2hBbHdqQTZGelFnPT0iLCJvcmdpZCI6IjViY2ZlOTVjYjBhMDFmMDAwOTI4NGJjMyIsInBsYXRmb3JtIjoiZDVmYTU4Yjk3NGExMjBlZTYxMTMzM2MwMDNjOWZlYzAiLCJ1bmlvbmlkIjoib2RuWjR0OERoV1V0N0lXT09maEF0UTdqM1docyIsImp0aSI6Imo3R0hLRGFzNDEzQTQ2OGkiLCJleHAiOjE1OTYwODEzMTEsImlhdCI6MTU5NTQ3NjUxMX0.I196XbcCR3k7r1O8uwoI2HUhow0UhGHKzii5wOR39vLmuNOUatNY7ccQTCHijqysbSCePP43Iuglrl2gLQASf5uAr9uqTzhTc3O4Z5iF3oR2qR1vlBxrzTDF8xuhKHQ4tO6Hbsib0FdOYVeU8fe0g_GZiIcuYIv-f8VsiAGMF9TEES129CDwZacJfVViw4EXVnXSivAzQG4JgGSwUACvPT140bCZ1XPeHi0GXmgtEN77NjWfOGI5RYGC0Gq3CGevlSWERjb3mUscAIjoXsOxlWNwy7dc1u1A7uX1a6bUhLU1wtiQ6md4TnyeR5OdYeVqGlIe3hZGcH_E3QrQMq988Q"
// console.log(str)
// let s = System.verify(str.split(' ')[1], settings.publickey())
// console.log(s)
center-manage/app/config/environment.js
View file @
9a557a21
...
...
@@ -11,28 +11,42 @@ var system = require('../base/system');
var
routes
=
require
(
'./routes'
);
var
history
=
require
(
'connect-history-api-fallback'
);
module
.
exports
=
function
(
app
)
{
app
.
set
(
'port'
,
settings
.
port
);
app
.
set
(
'views'
,
settings
.
basepath
+
'/app/front/entry'
);
app
.
set
(
'view engine'
,
'ejs'
);
app
.
use
(
history
());
app
.
set
(
'port'
,
settings
.
port
);
app
.
set
(
'views'
,
settings
.
basepath
+
'/app/front/entry'
);
app
.
set
(
'view engine'
,
'ejs'
);
app
.
use
(
methodOverride
());
app
.
use
(
cookierParser
());
app
.
use
(
bodyParser
.
json
({
limit
:
'50mb'
}));
app
.
use
(
bodyParser
.
urlencoded
({
limit
:
'50mb'
,
extended
:
true
}));
routes
(
app
);
//初始化路由
app
.
use
(
history
(
{
rewrites
:
[
{
from
:
/.*/
,
to
:
function
(
context
)
{
if
(
context
.
parsedUrl
.
pathname
.
indexOf
(
"autologin"
)
>=
0
)
{
return
context
.
parsedUrl
.
pathname
}
else
{
return
'/index.html'
;
}
app
.
use
(
methodOverride
());
app
.
use
(
cookierParser
());
app
.
use
(
bodyParser
.
json
({
limit
:
'50mb'
}));
app
.
use
(
bodyParser
.
urlencoded
({
limit
:
'50mb'
,
extended
:
true
}));
routes
(
app
);
//初始化路由
app
.
use
(
express
.
static
(
path
.
join
(
settings
.
basepath
,
'/app/front/entry/public'
)));
// development only
if
(
'development'
==
app
.
get
(
'env'
))
{
app
.
use
(
errorHandler
());
}
else
{
app
.
use
(
function
(
err
,
req
,
res
){
console
.
log
(
"prod error handler................................>>>>>>>>>>>>>>>>>"
);
console
.
log
(
err
);
//logerApp.error("prod error handler",err);
res
.
send
(
"link admin"
);
});
}
}
]
}
));
app
.
use
(
express
.
static
(
path
.
join
(
settings
.
basepath
,
'/app/front/entry/public'
)));
// development only
if
(
'development'
==
app
.
get
(
'env'
))
{
app
.
use
(
errorHandler
());
}
else
{
app
.
use
(
function
(
err
,
req
,
res
)
{
console
.
log
(
"prod error handler................................>>>>>>>>>>>>>>>>>"
);
console
.
log
(
err
);
//logerApp.error("prod error handler",err);
res
.
send
(
"link admin"
);
});
}
};
center-manage/app/config/routes/api.js
View file @
9a557a21
var
url
=
require
(
"url"
);
var
System
=
require
(
"../../base/system"
);
const
chnelapi
=
System
.
getObject
(
"api.common.channels"
)
const
chnelapi
=
System
.
getObject
(
"api.common.channels"
)
const
userS
=
System
.
getObject
(
"service.auth.userSve"
)
const
roleS
=
System
.
getObject
(
"service.auth.roleSve"
)
const
companyS
=
System
.
getObject
(
"service.common.companySve"
)
const
settings
=
require
(
"../settings.js"
)
let
channelCache
=
{};
module
.
exports
=
function
(
app
)
{
app
.
all
(
"*"
,
async
function
(
req
,
res
,
next
){
try
{
let
channel
=
await
chnelapi
.
getChannels
(
req
.
headers
[
"x-forwarded-host"
])
if
(
!
channel
){
app
.
get
(
"/autologin"
,
async
function
(
req
,
res
,
next
)
{
let
appkey
=
req
.
query
.
appkey
.
trim
()
if
(
!
appkey
)
{
res
.
end
(
"没有资质宝appkey,请联系资质宝服务提供方"
)
return
}
let
companykey
=
req
.
query
.
companykey
.
trim
()
if
(
!
companykey
)
{
res
.
end
(
"没有公司宝的租户companykey,请联系资质宝服务提供方"
)
return
}
let
cooktoken
=
req
.
cookies
[
"token"
]
let
tv
=
cooktoken
.
split
(
' '
)[
1
]
let
sourceUser
=
System
.
verify
(
tv
,
settings
.
publickey
())
let
openid
=
sourceUser
.
employee
let
userName
=
openid
let
nickName
=
sourceUser
.
name
let
unid
=
sourceUser
.
unionid
let
fixedcodes
=
[
"资质宝交付员"
,
'资质宝业务员'
]
let
rolecodes
=
sourceUser
.
roles
?
sourceUser
.
roles
:
[]
let
rcs
=
rolecodes
.
filter
(
rc
=>
{
if
(
fixedcodes
.
indexOf
(
rc
)
>=
0
)
{
return
true
}
else
{
return
false
}
})
if
(
rcs
.
length
==
0
)
{
res
.
end
(
"当前登录人没有资质宝访问权限"
)
return
}
//先按照openid去查看是否已经存在
let
uf
=
await
userS
.
dao
.
model
.
findOne
({
where
:
{
openid
:
openid
}
})
if
(
!
uf
)
{
//按照公司companykey查询出要注册公司的所在公司,取公司id
let
company
=
await
companyS
.
dao
.
model
.
findOne
({
where
:
{
companykey
:
companykey
}
})
//构造注册用户对象,需要设置默认角色,默认角色需要按照rolecode查询出角色
let
rolesfind
=
await
roleS
.
dao
.
model
.
findAll
({
where
:
{
code
:
{
[
self
.
db
.
Op
.
in
]:
rcs
},
company_id
:
company
.
id
}
})
//根据rolecode--,设置组织路径
let
opath
=
''
let
isSalesman
=
false
let
isDelivery
=
false
if
(
rcs
[
0
]
==
"资质宝业务员"
)
{
opath
=
"root10/bizgroup01/g1members/"
+
userName
isSalesman
=
true
}
else
{
opath
=
"root10/dlivergroup/dgroupmembers/"
+
userName
isDelivery
=
true
}
//调用pmregister
let
reguser
=
{
company_id
:
company
.
id
,
userName
:
userName
,
nickName
:
nickName
,
roles
:
rolesfind
.
map
(
r
=>
r
.
id
),
opath
:
opath
,
openid
:
openid
,
isSalesman
:
isSalesman
,
isDelivery
:
isDelivery
}
uf
=
await
userS
.
registerByTantent
(
reguser
)
}
let
rtnobj
=
await
userS
.
loginApp
(
appkey
,
userName
)
res
.
redirect
(
rtnobj
.
homePage
+
"?code="
+
rtnobj
.
code
)
})
app
.
post
(
"*"
,
async
function
(
req
,
res
,
next
)
{
try
{
let
channel
;
let
sourceHost
=
req
.
headers
[
"x-forwarded-host"
];
if
(
sourceHost
in
channelCache
)
{
channel
=
channelCache
[
sourceHost
];
}
else
{
channel
=
await
chnelapi
.
getChannels
(
sourceHost
);
channelCache
[
sourceHost
]
=
channel
;
}
if
(
!
channel
)
{
next
()
}
else
{
let
rtn
=
await
chnelapi
.
channelHandle
(
channel
,
req
.
path
+
"/"
+
req
.
body
.
actionType
,
req
.
body
)
if
(
rtn
!=
null
)
{
}
else
{
let
rtn
=
await
chnelapi
.
channelHandle
(
channel
,
req
.
path
+
"/"
+
req
.
body
.
actionType
,
req
.
body
)
if
(
rtn
!=
null
)
{
res
.
end
(
JSON
.
stringify
(
rtn
));
}
else
{
res
.
end
(
JSON
.
stringify
({
status
:
-
1
,
message
:
"fail"
}));
}
else
{
res
.
end
(
JSON
.
stringify
({
status
:
-
1
,
message
:
"fail"
}));
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
)
res
.
end
(
JSON
.
stringify
({
status
:
-
1
,
message
:
e
}));
res
.
end
(
JSON
.
stringify
({
status
:
-
1
,
message
:
e
}));
}
})
app
.
get
(
'/api/:gname/:qname/:method'
,
function
(
req
,
res
)
{
// var classPath = req.params["qname"];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
classPath
=
gname
+
"."
+
classPath
;
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
System
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
uagent
=
req
.
headers
[
"user-agent"
];
// req.classname=classPath;
var
params
=
[];
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
System
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexec"
])
{
...
...
@@ -47,22 +124,22 @@ module.exports = function (app) {
});
app
.
post
(
'/api/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
console
.
log
(
"===================="
);
console
.
log
(
classPath
);
var
tClientIp
=
System
.
get_client_ip
(
req
);
req
.
clientIp
=
tClientIp
;
req
.
uagent
=
req
.
headers
[
"user-agent"
];
req
.
uagent
=
req
.
headers
[
"user-agent"
];
// req.classname=classPath;
params
.
push
(
gname
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
System
.
getObject
(
"api."
+
classPath
);
if
(
invokeObj
[
"doexec"
])
{
...
...
center-manage/app/config/routes/web.js
View file @
9a557a21
var
url
=
require
(
"url"
);
var
system
=
require
(
"../../base/system"
);
var
metaCtl
=
system
.
getObject
(
"web.common.metaCtl"
);
var
metaCtl
=
system
.
getObject
(
"web.common.metaCtl"
);
module
.
exports
=
function
(
app
)
{
app
.
get
(
'/web/:gname/:qname/:method'
,
function
(
req
,
res
)
{
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
classPath
=
gname
+
"."
+
classPath
;
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
classPath
=
gname
+
"."
+
classPath
;
var
params
=
[];
params
.
push
(
methodName
);
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"web."
+
classPath
);
if
(
invokeObj
[
"doexec"
])
{
...
...
@@ -24,18 +24,18 @@ module.exports = function (app) {
app
.
post
(
'/web/:gname/:qname/:method'
,
function
(
req
,
res
)
{
req
.
codepath
=
req
.
headers
[
"codepath"
];
var
classPath
=
req
.
params
[
"qname"
];
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
var
methodName
=
req
.
params
[
"method"
];
var
gname
=
req
.
params
[
"gname"
];
var
params
=
[];
classPath
=
gname
+
"."
+
classPath
;
var
tClientIp
=
system
.
get_client_ip
(
req
);
req
.
body
.
clientIp
=
tClientIp
;
req
.
body
.
agent
=
req
.
headers
[
"user-agent"
];
req
.
body
.
classname
=
classPath
;
req
.
body
.
agent
=
req
.
headers
[
"user-agent"
];
req
.
body
.
classname
=
classPath
;
params
.
push
(
methodName
);
params
.
push
(
req
.
body
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
params
.
push
(
req
.
query
);
params
.
push
(
req
);
var
p
=
null
;
var
invokeObj
=
system
.
getObject
(
"web."
+
classPath
);
if
(
invokeObj
[
"doexec"
])
{
...
...
center-manage/app/config/settings.js
View file @
9a557a21
...
...
@@ -18,8 +18,27 @@ var settings = {
defaultpwd
:
"gsb2020"
,
basepath
:
path
.
normalize
(
path
.
join
(
__dirname
,
'../..'
)),
port
:
process
.
env
.
NODE_PORT
||
80
,
logindex
:
"center_manage"
,
appname
:
"center_manage"
,
logindex
:
"center_manage"
,
appname
:
"center_manage"
,
publickey
:
function
()
{
if
(
this
.
env
==
"dev"
)
{
return
{
"kty"
:
"RSA"
,
"n"
:
"qrie8Rrptw5hGJ9fdI8f6QJuLLbTulWkSmFYDQDPu2aXP65wbRhtPMxn6DA9Qh_o29LqtlNd1L5dhY5ma_hXSwNv-FfiQoUkkdFFZ2H_mODnKaLtV5evho9r3_wGa92dxV_UZQVUurhZ7V6gQk0BzrpUuMqZ1JDOcD4iG_bEEZjuRXWpXtKKj7MoXJyTUrOlCyN1yFo7gxM3ee6rImxfDP4nEhKPnL7HqwTcXCQApLJORRluoThEciVXRs8SYk08MtemZUhCq8QjXTvS52S5u5o_osFqs1DnPYHpiAfydOfEweFCgomt7imD5vIjOlUDEBSGE0mRUFCBnM3Qg_idZQ"
,
"e"
:
"AQAB"
,
"kid"
:
"dc2c533023a111e9a95769b80b428cd1"
,
"alg"
:
"ES256"
}
}
else
{
return
{
"kty"
:
"RSA"
,
"n"
:
"vkjTlSBYiknVYOJZXAGOyckL3aIdxxcR7iBtGtScfmB5xPop3-ZyYIuBnvCDlqx4r33Hut0bBnEbyOCOWPjsL0szsNZO4Ojbzju3INhiXxqJUPsfuPs82zDEuq-MOF2FnxeGeihPY8Va_YPSjZj9ZeN7eUtRP-nct2N4XftOxQrUPwbMAWnfZskMrjiYD-NRsIcwYaKvkvO9sfjzD9Hkp3OVTnz-doVN7FqWTLGAX8veN2bTWOD5vTqfHwhgxFR0jgZgDHMD262zFBj4ULlLlGr2J9zhWPxEOvod58ll_tHA4Q9HLzmol3u8yGuD7heyRmqnF74qEbbal-Xk67uAyw"
,
"e"
:
"AQAB"
,
"kid"
:
"e1703c2001dd11e9b50fd525bc2a7e1d"
,
"alg"
:
"ES256"
};
}
},
kongurl
:
function
()
{
if
(
this
.
env
==
"dev"
)
{
var
localsettings
=
require
(
"./localsettings"
);
...
...
@@ -35,7 +54,7 @@ var settings = {
return
"http://icdeliver-service"
;
}
},
logUrl
:
function
()
{
logUrl
:
function
()
{
if
(
this
.
env
==
"dev"
)
{
return
"http://192.168.1.128:4019/api/queueAction/producer/springBoard"
;
}
else
{
...
...
center-manage/package.json
View file @
9a557a21
...
...
@@ -45,6 +45,7 @@
"
node-cron
"
:
"^2.0.1"
,
"
node-uuid
"
:
"^1.4.8"
,
"
pdfcrowd
"
:
"^4.2.0"
,
"
pem-jwk
"
:
"^2.0.0"
,
"
pinyin
"
:
"^2.8.3"
,
"
qr-image
"
:
"^3.2.0"
,
"
request
"
:
"^2.88.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