Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
T
ts-api-demo
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
wmvm
ts-api-demo
Commits
dfed33d2
Commit
dfed33d2
authored
Sep 25, 2024
by
ml
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加接口、逻辑调整
parent
1b7af35b
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
546 additions
and
8 deletions
+546
-8
contractLimitTrade.control.ts
src/functional/mvc/control/contractLimitTrade.control.ts
+126
-0
contractMarketMaker.control.ts
src/functional/mvc/control/contractMarketMaker.control.ts
+97
-0
spotMarketMaker.control.ts
src/functional/mvc/control/spotMarketMaker.control.ts
+96
-0
userAuthConfig.control.ts
src/functional/mvc/control/userAuthConfig.control.ts
+0
-1
aclRoleAuth.service.ts
src/functional/mvc/service/aclRoleAuth.service.ts
+2
-2
contractMarketMaker.service.ts
src/functional/mvc/service/contractMarketMaker.service.ts
+94
-0
spotMarketMaker.service.ts
src/functional/mvc/service/spotMarketMaker.service.ts
+93
-0
userAuthConfig.service.ts
src/functional/mvc/service/userAuthConfig.service.ts
+5
-4
index.ts
src/functional/router/v1/index.ts
+17
-1
access-limit.ts
src/setting/access-limit.ts
+13
-0
login-filter.ts
src/setting/login-filter.ts
+3
-0
No files found.
src/functional/mvc/control/contractLimitTrade.control.ts
0 → 100644
View file @
dfed33d2
import
{
addOptLog
}
from
"../service/userOptLog.service"
;
let
{
logger
,
Res3Utils
,
optionalUtils
:
Optional
,
apiAssertUtils
:
ApiAssert
,
datetimeUtils
}
=
require
(
'@madex/ex-js-public'
);
import
{
ErrorCode
}
from
"../../../constant/errorCode"
;
import
{
getCurrentUserId
}
from
"../../../utils/aclUserUtils"
;
import
{
it
}
from
"node:test"
;
let
isIp
=
require
(
'is-ip'
);
let
{
authCommon
:
AuthCommon
,
redisUtilsCommon
:
RedisClient
,
}
=
require
(
'@madex/ex-js-common'
);
interface
LimitTradeVO
{
type
?:
number
,
//1U本位,2币本位
status
?:
number
//1限制交易,2限制开仓,3取消限制交易,4取消限制开仓
user_id
?:
number
pair
?:
string
}
/**
* 金融部-其他管理-合约交易限制配置列表
* @param req
* @param infoVO
*/
export
const
list
=
async
(
req
:
any
,
limitTradeVO
:
LimitTradeVO
)
=>
{
let
func_name
=
"contractLimitTrade.control.list"
;
try
{
let
redisKey
=
'contractLimitTrade.list'
;
let
cacheMap
=
await
RedisClient
.
getSync
(
redisKey
);
let
list
:
any
=
[];
if
(
cacheMap
)
{
let
keys
=
Object
.
keys
(
cacheMap
);
for
(
let
key
of
keys
)
{
let
splitArr
=
key
.
split
(
"."
);
let
item
=
{
type
:
splitArr
[
0
]
==
"baseu"
?
1
:
2
,
status
:
splitArr
[
2
]
==
"trade"
?
1
:
2
,
pair
:
splitArr
[
3
],
user_id
:
splitArr
[
4
],
}
list
.
push
(
item
)
}
}
let
status
=
limitTradeVO
.
status
;
let
pair
=
limitTradeVO
.
pair
;
let
userId
=
limitTradeVO
.
user_id
;
if
(
pair
)
{
list
=
list
.
filter
(
item
=>
item
.
pair
==
pair
);
}
if
(
status
)
{
list
=
list
.
filter
(
item
=>
item
.
status
==
status
);
}
if
(
userId
||
userId
===
0
)
{
list
=
list
.
filter
(
item
=>
item
.
user_id
==
userId
);
}
return
Res3Utils
.
result
(
list
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
/**
* 金融部-其他管理-合约交易限制配置
* @param req
* @param authConfigVO
*/
export
const
set
=
async
(
req
:
any
,
limitTradeVO
:
LimitTradeVO
)
=>
{
let
func_name
=
"contractLimitTrade.control.set"
;
try
{
let
ip
=
isIp
(
req
.
ip
)
?
req
.
ip
:
'*.*.*.*'
;
let
currentUserId
=
await
getCurrentUserId
(
req
.
cookies
.
session_id
);
//1U本位,2币本位
let
type
=
Number
(
limitTradeVO
.
type
);
//1限制交易,2限制开仓,3取消限制交易,4取消限制开仓
let
status
=
Number
(
limitTradeVO
.
status
);
let
pair
=
String
(
limitTradeVO
.
pair
);
let
userId
=
Number
(
limitTradeVO
.
user_id
);
await
writeCacheData
(
type
,
status
,
pair
,
userId
);
//管理后台操作日志
addOptLog
(
currentUserId
,
0
,
'合约限制交易配置-设置'
,
ip
,
JSON
.
stringify
(
limitTradeVO
),
'合约限制交易配置'
);
return
Res3Utils
.
result
(
"ok"
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
async
function
writeCacheData
(
type
:
number
,
status
:
number
,
pair
:
string
,
user_id
:
number
)
{
let
redisKey
=
'contractLimitTrade.list'
;
if
(
!
type
||
!
status
)
{
throw
ErrorCode
.
PARAM_MISS
}
if
(
!
user_id
)
{
user_id
=
0
}
if
(
!
pair
)
{
pair
=
"all"
;
}
let
typeStr
=
type
==
1
?
"baseu.limit"
:
"basecoin.limit"
;
let
statusStr
=
status
==
1
||
status
==
3
?
"trade"
:
"open"
;
let
mapKey
=
`
${
typeStr
}
.
${
statusStr
}
.
${
pair
}
.
${
user_id
}
`
;
let
cacheMap
=
await
RedisClient
.
getSync
(
redisKey
);
if
(
status
==
1
||
status
==
2
)
{
cacheMap
=
cacheMap
?
cacheMap
:
{};
cacheMap
[
mapKey
]
=
1
}
else
{
if
(
cacheMap
)
{
delete
cacheMap
[
mapKey
]
}
}
await
RedisClient
.
writeSync
(
redisKey
,
cacheMap
);
}
src/functional/mvc/control/contractMarketMaker.control.ts
0 → 100644
View file @
dfed33d2
import
*
as
contractMarketMakerService
from
"../service/contractMarketMaker.service"
;
import
{
MakerPairPageVO
,
MakerPairVO
}
from
"../service/contractMarketMaker.service"
;
let
{
logger
,
Res3Utils
,
optionalUtils
:
Optional
,
apiAssertUtils
:
ApiAssert
,
datetimeUtils
}
=
require
(
'@madex/ex-js-public'
);
import
{
ErrorCode
}
from
"../../../constant/errorCode"
;
import
{
getCurrentUserId
}
from
"../../../utils/aclUserUtils"
;
let
isIp
=
require
(
'is-ip'
);
/**
* 金融部-其他管理-合约做市参数配置列表
* @param req
* @param infoVO
*/
export
const
list
=
async
(
req
:
any
,
pageVO
:
MakerPairPageVO
)
=>
{
let
func_name
=
"contractMarketMaker.control.list"
;
try
{
pageVO
.
page
=
Optional
.
opt
(
pageVO
,
'page'
,
1
);
pageVO
.
size
=
Optional
.
opt
(
pageVO
,
'size'
,
20
);
let
res
=
await
contractMarketMakerService
.
list
(
pageVO
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
/**
* 金融部-其他管理-合约做市参数配置-交易对
* @param req
* @param authConfigVO
*/
export
const
set
=
async
(
req
:
any
,
makerPairVO
:
MakerPairVO
)
=>
{
let
func_name
=
"contractMarketMaker.control.set"
;
try
{
let
ip
=
isIp
(
req
.
ip
)
?
req
.
ip
:
'*.*.*.*'
;
let
currentUserId
=
await
getCurrentUserId
(
req
.
cookies
.
session_id
);
if
(
!
makerPairVO
.
pair
||
!
makerPairVO
.
user_id
)
{
throw
ErrorCode
.
PARAM_MISS
}
let
res
=
await
contractMarketMakerService
.
set
(
makerPairVO
,
currentUserId
,
ip
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
/**
* 金融部-其他管理-合约做市参数配置-做市参数配置
* @param req
* @param authConfigVO
*/
export
const
paramSet
=
async
(
req
:
any
,
makerPairVO
:
MakerPairVO
)
=>
{
let
func_name
=
"contractMarketMaker.control.paramSet"
;
try
{
let
ip
=
isIp
(
req
.
ip
)
?
req
.
ip
:
'*.*.*.*'
;
let
currentUserId
=
await
getCurrentUserId
(
req
.
cookies
.
session_id
);
if
(
!
makerPairVO
.
pair
||
!
makerPairVO
.
data
)
{
throw
ErrorCode
.
PARAM_MISS
}
let
res
=
await
contractMarketMakerService
.
paramSet
(
makerPairVO
.
pair
,
makerPairVO
.
data
,
currentUserId
,
ip
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
/**
* 金融部-其他管理-合约做市参数配置-做市参数查询
* @param req
* @param authConfigVO
*/
export
const
paramGet
=
async
(
req
:
any
,
makerPairVO
:
MakerPairVO
)
=>
{
let
func_name
=
"contractMarketMaker.control.paramGet"
;
try
{
if
(
!
makerPairVO
.
pair
)
{
throw
ErrorCode
.
PARAM_MISS
}
let
res
=
await
contractMarketMakerService
.
paramGet
(
makerPairVO
.
pair
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
src/functional/mvc/control/spotMarketMaker.control.ts
0 → 100644
View file @
dfed33d2
import
*
as
spotMarketMakerService
from
"../service/spotMarketMaker.service"
;
import
{
MakerPairPageVO
,
MakerPairVO
}
from
"../service/spotMarketMaker.service"
;
let
{
logger
,
Res3Utils
,
optionalUtils
:
Optional
,
apiAssertUtils
:
ApiAssert
,
datetimeUtils
}
=
require
(
'@madex/ex-js-public'
);
import
{
ErrorCode
}
from
"../../../constant/errorCode"
;
import
{
getCurrentUserId
}
from
"../../../utils/aclUserUtils"
;
let
isIp
=
require
(
'is-ip'
);
/**
* 金融部-其他管理-现货做市参数配置列表
* @param req
* @param infoVO
*/
export
const
list
=
async
(
req
:
any
,
pageVO
:
MakerPairPageVO
)
=>
{
let
func_name
=
"spotMarketMaker.control.list"
;
try
{
pageVO
.
page
=
Optional
.
opt
(
pageVO
,
'page'
,
1
);
pageVO
.
size
=
Optional
.
opt
(
pageVO
,
'size'
,
20
);
let
res
=
await
spotMarketMakerService
.
list
(
pageVO
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
/**
* 金融部-其他管理-现货做市参数配置-交易对
* @param req
* @param authConfigVO
*/
export
const
set
=
async
(
req
:
any
,
makerPairVO
:
MakerPairVO
)
=>
{
let
func_name
=
"spotMarketMaker.control.set"
;
try
{
let
ip
=
isIp
(
req
.
ip
)
?
req
.
ip
:
'*.*.*.*'
;
let
currentUserId
=
await
getCurrentUserId
(
req
.
cookies
.
session_id
);
if
(
!
makerPairVO
.
pair
||
!
makerPairVO
.
user_id
)
{
throw
ErrorCode
.
PARAM_MISS
}
let
res
=
await
spotMarketMakerService
.
set
(
makerPairVO
,
currentUserId
,
ip
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
/**
* 金融部-其他管理-现货做市参数配置-做市参数配置
* @param req
* @param authConfigVO
*/
export
const
paramSet
=
async
(
req
:
any
,
makerPairVO
:
MakerPairVO
)
=>
{
let
func_name
=
"spotMarketMaker.control.paramSet"
;
try
{
let
ip
=
isIp
(
req
.
ip
)
?
req
.
ip
:
'*.*.*.*'
;
let
currentUserId
=
await
getCurrentUserId
(
req
.
cookies
.
session_id
);
if
(
!
makerPairVO
.
pair
||
!
makerPairVO
.
data
)
{
throw
ErrorCode
.
PARAM_MISS
}
let
res
=
await
spotMarketMakerService
.
paramSet
(
makerPairVO
.
pair
,
makerPairVO
.
data
,
currentUserId
,
ip
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
/**
* 金融部-其他管理-现货做市参数配置-做市参数查询
* @param req
* @param authConfigVO
*/
export
const
paramGet
=
async
(
req
:
any
,
makerPairVO
:
MakerPairVO
)
=>
{
let
func_name
=
"spotMarketMaker.control.paramGet"
;
try
{
if
(
!
makerPairVO
.
pair
)
{
throw
ErrorCode
.
PARAM_MISS
}
let
res
=
await
spotMarketMakerService
.
paramGet
(
makerPairVO
.
pair
);
return
Res3Utils
.
result
(
res
);
}
catch
(
e
)
{
logger
.
error
(
`
${
func_name
}
error:
${
e
}
`
);
return
Res3Utils
.
getErrorResult
(
e
);
}
};
src/functional/mvc/control/userAuthConfig.control.ts
View file @
dfed33d2
...
...
@@ -14,7 +14,6 @@ export const resetTotp = async (req: any, authConfigVO: AuthConfigVO) => {
let
func_name
=
"userAuthConfigCtrl.resetTotp"
;
let
cmd
=
req
.
path
;
try
{
ApiAssert
.
notNull
(
ErrorCode
.
PARAM_MISS
,
authConfigVO
.
user_id
);
let
res
=
await
userAuthConfigService
.
resetTotp
(
authConfigVO
.
user_id
);
return
Res3Utils
.
result
(
res
);
}
...
...
src/functional/mvc/service/aclRoleAuth.service.ts
View file @
dfed33d2
...
...
@@ -165,7 +165,7 @@ export const saveAuth = async (aclAuthVO: AclAuthVO, session_id: any) => {
}
else
{
await
_checkUrl
(
aclAuthVO
.
url
);
if
(
!
aclAuthVO
.
opt_type
){
if
(
!
aclAuthVO
.
opt_type
)
{
aclAuthVO
.
opt_type
=
4
;
}
aclAuth
.
prototype
.
create
(
aclAuthVO
);
...
...
@@ -329,7 +329,7 @@ export const delRole = async (id: number | any, currentUserId: number) => {
throw
ErrorCode
.
ROLE_NOT_EXIST
}
let
isSuperUser
=
await
_isSuper
(
currentUserId
);
if
(
isSuperUser
||
Number
(
exist
.
creator
)
===
Number
(
currentUserId
)
)
{
if
(
!
isSuperUser
)
{
throw
ErrorCode
.
NO_PERMISSION
}
let
roleUser
=
await
aclUserRole
.
prototype
.
find
({
...
...
src/functional/mvc/service/contractMarketMaker.service.ts
0 → 100644
View file @
dfed33d2
import
{
userApikeyStrict
,
}
from
"@madex/ex-ts-dao"
;
import
{
ErrorCode
}
from
"../../../constant/errorCode"
;
import
{
addOptLog
}
from
"./userOptLog.service"
;
let
_
=
require
(
'lodash'
);
let
{
logger
}
=
require
(
'@madex/ex-js-public'
);
let
{
authCommon
:
AuthCommon
,
redisUtilsCommon
:
RedisClient
,
}
=
require
(
'@madex/ex-js-common'
);
export
interface
MakerPairVO
{
id
?:
number
,
pair
?:
string
;
user_id
?:
number
;
enable
?:
number
;
data
?:
string
createdAt
?:
Date
|
any
,
updatedAt
?:
Date
|
any
,
}
export
interface
MakerPairPageVO
extends
MakerPairVO
{
page
?:
number
,
size
?:
number
,
}
export
async
function
list
(
pageVO
:
MakerPairPageVO
)
{
let
key
=
'contractMarketMaker.service.list'
;
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
let
list
=
await
RedisClient
.
getSync
(
key
);
let
res
=
{
count
:
list
?
list
.
length
:
0
,
rows
:
list
?
list
:
[]
}
return
res
;
}
export
async
function
set
(
makerPairVO
:
MakerPairVO
,
currentUserId
:
any
,
ip
:
string
|
undefined
)
{
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
makerPairVO
.
createdAt
=
new
Date
();
makerPairVO
.
updatedAt
=
new
Date
();
let
key
=
'contractMarketMaker.service.list'
;
let
list
=
await
RedisClient
.
getSync
(
key
);
if
(
list
)
{
makerPairVO
.
id
=
list
.
length
+
1
;
list
.
push
(
makerPairVO
);
}
else
{
makerPairVO
.
id
=
1
;
list
=
[];
list
.
push
(
makerPairVO
);
}
await
RedisClient
.
writeSync
(
key
,
list
);
//管理后台操作日志
addOptLog
(
currentUserId
,
0
,
'合约做市参数配置-交易对新增'
,
ip
,
JSON
.
stringify
(
makerPairVO
),
'合约做市参数配置'
);
return
'success'
;
}
export
async
function
paramGet
(
pair
:
string
)
{
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
let
key
=
'contractMarketMaker.service.paramGet'
;
let
map
=
await
RedisClient
.
getSync
(
key
);
let
res
=
map
?
map
[
pair
]
:
""
return
res
;
}
export
async
function
paramSet
(
pair
:
string
,
data_json
:
string
,
currentUserId
:
any
,
ip
:
any
)
{
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
let
key
=
'contractMarketMaker.service.paramGet'
;
let
map
=
await
RedisClient
.
getSync
(
key
);
if
(
!
map
)
{
map
=
{}
}
map
[
pair
]
=
JSON
.
parse
(
data_json
);
await
RedisClient
.
writeSync
(
key
,
map
);
//管理后台操作日志
addOptLog
(
currentUserId
,
0
,
'合约做市参数配置-做市参数设置'
,
ip
,
`pair:
${
pair
}
,data:
${
data_json
}
`
,
'合约做市参数配置'
);
return
"ok"
;
}
src/functional/mvc/service/spotMarketMaker.service.ts
0 → 100644
View file @
dfed33d2
import
{
userApikeyStrict
,
}
from
"@madex/ex-ts-dao"
;
import
{
ErrorCode
}
from
"../../../constant/errorCode"
;
import
{
addOptLog
}
from
"./userOptLog.service"
;
let
_
=
require
(
'lodash'
);
let
{
logger
}
=
require
(
'@madex/ex-js-public'
);
let
{
authCommon
:
AuthCommon
,
redisUtilsCommon
:
RedisClient
,
}
=
require
(
'@madex/ex-js-common'
);
export
interface
MakerPairVO
{
id
?:
number
,
pair
?:
string
;
user_id
?:
number
;
enable
?:
number
;
data
?:
string
createdAt
?:
Date
|
any
,
updatedAt
?:
Date
|
any
,
}
export
interface
MakerPairPageVO
extends
MakerPairVO
{
page
?:
number
,
size
?:
number
,
}
export
async
function
list
(
pageVO
:
MakerPairPageVO
)
{
let
key
=
'spotMarketMaker.service.list'
;
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
let
list
=
await
RedisClient
.
getSync
(
key
);
let
res
=
{
count
:
list
?
list
.
length
:
0
,
rows
:
list
?
list
:
[]
}
return
res
;
}
export
async
function
set
(
makerPairVO
:
MakerPairVO
,
currentUserId
:
any
,
ip
:
string
|
undefined
)
{
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
makerPairVO
.
createdAt
=
new
Date
();
makerPairVO
.
updatedAt
=
new
Date
();
let
key
=
'spotMarketMaker.service.list'
;
let
list
=
await
RedisClient
.
getSync
(
key
);
if
(
list
)
{
makerPairVO
.
id
=
list
.
length
+
1
;
list
.
push
(
makerPairVO
);
}
else
{
makerPairVO
.
id
=
1
;
list
=
[];
list
.
push
(
makerPairVO
);
}
await
RedisClient
.
writeSync
(
key
,
list
);
//管理后台操作日志
addOptLog
(
currentUserId
,
0
,
'现货做市参数配置-交易对新增'
,
ip
,
JSON
.
stringify
(
makerPairVO
),
'现货做市参数配置'
);
return
'success'
;
}
export
async
function
paramGet
(
pair
:
string
)
{
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
let
key
=
'spotMarketMaker.service.paramGet'
;
let
map
=
await
RedisClient
.
getSync
(
key
);
let
res
=
map
?
map
[
pair
]
:
""
return
res
;
}
export
async
function
paramSet
(
pair
:
string
,
data
:
string
,
currentUserId
:
any
,
ip
:
any
)
{
//TODO:目前在缓存里 方便调试 后期撮合搞定之后再修改
let
key
=
'spotMarketMaker.service.paramGet'
;
let
map
=
await
RedisClient
.
getSync
(
key
);
if
(
!
map
)
{
map
=
{}
}
map
[
pair
]
=
JSON
.
parse
(
data
);
await
RedisClient
.
writeSync
(
key
,
map
);
//管理后台操作日志
addOptLog
(
currentUserId
,
0
,
'现货做市参数配置-做市参数设置'
,
ip
,
`pair:
${
pair
}
,data:
${
data
}
`
,
'现货做市参数配置'
);
return
"ok"
;
}
src/functional/mvc/service/userAuthConfig.service.ts
View file @
dfed33d2
...
...
@@ -44,12 +44,13 @@ export interface AuthConfigPageVO extends AuthConfigVO {
export
async
function
resetTotp
(
userId
:
number
|
undefined
)
{
if
(
userId
)
{
let
userInfo
=
await
getOneAclUserByUid
(
Number
(
userId
));
ApiAssert
.
isNotEmpty
(
ErrorCode
.
USER_NOT_EXIST
,
userInfo
);
}
//生成新的密钥
let
totpEncrypt
=
Otplib
.
authenticator
.
generateSecret
();
let
email
=
userId
+
'-'
+
totpEncrypt
.
slice
(
0
,
3
)
let
email
=
userId
?
userId
:
0
+
'-'
+
totpEncrypt
.
slice
(
0
,
3
)
let
uri
=
'otpauth://totp/'
+
email
+
'?secret='
+
totpEncrypt
+
'&issuer=team888'
;
return
{
uri
:
uri
,
totpEncrypt
:
totpEncrypt
};
}
...
...
src/functional/router/v1/index.ts
View file @
dfed33d2
...
...
@@ -37,6 +37,9 @@ import * as appFeatureCtrl from "../../mvc/control/appFeature.control";
import
*
as
systemTriggerCtrl
from
"../../mvc/control/systemTrigger.control"
;
import
*
as
apikeyStrictCtrl
from
"../../mvc/control/apikeyStrict.control"
;
import
*
as
contractPairCtrl
from
"../../mvc/control/contractPair.control"
;
import
*
as
spotMarketMakerCtrl
from
"../../mvc/control/spotMarketMaker.control"
;
import
*
as
contractMarketMakerCtrl
from
"../../mvc/control/contractMarketMaker.control"
;
import
*
as
contractLimitTradeCtrl
from
"../../mvc/control/contractLimitTrade.control"
;
const
getFunc
=
{
'user/info'
:
userController
.
getUserInfo
,
...
...
@@ -190,7 +193,20 @@ const postFunc = {
//金融部-交易管理-合约代码配置
'finance/trade/contract/pair/set'
:
contractPairCtrl
.
set
,
'finance/trade/contract/pair/update'
:
contractPairCtrl
.
update
,
'finance/trade/contract/pair/query'
:
contractPairCtrl
.
query
'finance/trade/contract/pair/query'
:
contractPairCtrl
.
query
,
//金融部-其他管理-现货做市参数配置
'fiance/other/spot/market/maker/set'
:
spotMarketMakerCtrl
.
set
,
'fiance/other/spot/market/maker/list'
:
spotMarketMakerCtrl
.
list
,
'fiance/other/spot/market/maker/param/get'
:
spotMarketMakerCtrl
.
paramGet
,
'fiance/other/spot/market/maker/param/set'
:
spotMarketMakerCtrl
.
paramSet
,
//金融部-其他管理-合约做市参数配置
'fiance/other/contract/market/maker/set'
:
contractMarketMakerCtrl
.
set
,
'fiance/other/contract/market/maker/list'
:
contractMarketMakerCtrl
.
list
,
'fiance/other/contract/market/maker/param/get'
:
contractMarketMakerCtrl
.
paramGet
,
'fiance/other/contract/market/maker/param/set'
:
contractMarketMakerCtrl
.
paramSet
,
//金融部-其他管理-合约限制交易配置
'fiance/other/contract/limit/trade/set'
:
contractLimitTradeCtrl
.
set
,
'fiance/other/contract/limit/trade/list'
:
contractLimitTradeCtrl
.
list
,
};
// TODO 这里先和 nodejs 的注册路由方式保持一样,后面在调整。
...
...
src/setting/access-limit.ts
View file @
dfed33d2
...
...
@@ -147,6 +147,19 @@ let cmdWhiteList = {
'finance/trade/contract/pair/set'
:
1
,
'finance/trade/contract/pair/update'
:
1
,
'finance/trade/contract/pair/query'
:
1
,
//金融部-其他管理-现货做市参数配置
'fiance/other/spot/market/maker/set'
:
1
,
'fiance/other/spot/market/maker/list'
:
1
,
'fiance/other/spot/market/maker/param/get'
:
1
,
'fiance/other/spot/market/maker/param/set'
:
1
,
//金融部-其他管理-合约做市参数配置
'fiance/other/contract/market/maker/set'
:
1
,
'fiance/other/contract/market/maker/list'
:
1
,
'fiance/other/contract/market/maker/param/get'
:
1
,
'fiance/other/contract/market/maker/param/set'
:
1
,
//金融部-其他管理-合约限制交易配置
'fiance/other/contract/limit/trade/set'
:
1
,
'fiance/other/contract/limit/trade/list'
:
1
,
};
...
...
src/setting/login-filter.ts
View file @
dfed33d2
...
...
@@ -16,6 +16,9 @@ const ExcludeApi = {
"user/login/confirm"
:
1
,
"mUser/fee/vip/level/list"
:
1
,
"spotPair/getAllSubmitSuccess"
:
1
,
'acl/role/getAll'
:
1
,
'position/allList'
:
1
,
'department/allList'
:
1
,
};
//管理员需要强制绑定,该位置做特殊处理
const
AdminExcludeApi
=
{
...
...
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