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
d2c4f160
Commit
d2c4f160
authored
Nov 11, 2024
by
ml
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
费率、现货数据折线图
parent
0e5fee07
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
249 additions
and
82 deletions
+249
-82
task.fee.rate.log.model.ts
cron/model/task.fee.rate.log.model.ts
+63
-14
task_fee_rate_base_coin_contract_log.ts
cron/task/task_fee_rate_base_coin_contract_log.ts
+1
-9
task_fee_rate_contract_log.ts
cron/task/task_fee_rate_contract_log.ts
+1
-9
task_fee_rate_spot_log.ts
cron/task/task_fee_rate_spot_log.ts
+2
-10
errorCode.ts
src/constant/errorCode.ts
+1
-0
commonUserFeeSetting.control.ts
src/functional/mvc/control/commonUserFeeSetting.control.ts
+10
-0
depositAndWithdraw.service.ts
src/functional/mvc/service/depositAndWithdraw.service.ts
+1
-1
spotData.service.ts
src/functional/mvc/service/spotData.service.ts
+170
-39
No files found.
cron/model/task.fee.rate.log.model.ts
View file @
d2c4f160
...
@@ -10,10 +10,11 @@ import {
...
@@ -10,10 +10,11 @@ import {
feeRateSpotLog
,
feeRateSpotLog
,
feeRateContractLog
,
feeRateContractLog
,
commonUserFeeSetting
,
commonUserFeeSetting
,
feeRateBaseCoinContractLog
,
spotPairs
,
contractPairs
feeRateBaseCoinContractLog
,
spotPairs
,
contractPairs
,
userProductFee
}
from
"@madex/ex-ts-dao"
;
}
from
"@madex/ex-ts-dao"
;
import
{
FEE_RATE_LOG_STATUS
}
from
"../../src/constant/feeRateLogConst"
;
import
{
FEE_RATE_LOG_STATUS
}
from
"../../src/constant/feeRateLogConst"
;
import
{
changeTradingFee
,
getPairFromCore
}
from
"../../src/utils/coreSystemUtils"
;
import
{
changeTradingFee
,
getPairFromCore
,
getUserAccountFromCore
}
from
"../../src/utils/coreSystemUtils"
;
let
BigNumber
=
require
(
'bignumber.js'
);
let
BigNumber
=
require
(
'bignumber.js'
);
...
@@ -113,10 +114,16 @@ let checkFeeRate = async function (fee_rate) {
...
@@ -113,10 +114,16 @@ let checkFeeRate = async function (fee_rate) {
};
};
export
const
changeUserSpotFee
=
async
function
(
user_id
,
symbol
,
fee_model
,
maker_fee
,
taker_fee
,
logId
)
{
export
const
changeUserSpotFee
=
async
function
(
user_id
,
symbol
,
fee_model
,
maker_fee
,
taker_fee
,
logId
)
{
let
pair
=
symbol
===
'all'
?
''
:
symbol
;
let
is_success
=
true
;
let
is_success
=
true
;
await
checkFeeModel
(
fee_model
);
await
checkFeeModel
(
fee_model
);
let
product_type
=
pair
==
'all'
?
'spot'
:
'single'
;
//生效的费率 与要设置的费率 比对做校验 现在分不开 现货 合约 先不校验 之后分开了 再校验
/* let feeExist = await cancelIfFeeExist(user_id, product_type, symbol, maker_fee, taker_fee);
if (feeExist) {
return is_success;
}*/
let
asset
=
await
mainUserAsset
.
prototype
.
findOne
({
let
asset
=
await
mainUserAsset
.
prototype
.
findOne
({
where
:
{
where
:
{
user_id
user_id
...
@@ -134,28 +141,43 @@ export const changeUserSpotFee = async function (user_id, symbol, fee_model, mak
...
@@ -134,28 +141,43 @@ export const changeUserSpotFee = async function (user_id, symbol, fee_model, mak
logger
.
warn
(
' task.fee.rate.log.model.changeUserSpotFee '
,
` taker_fee fee_rate error
${
taker_fee
}
`
);
logger
.
warn
(
' task.fee.rate.log.model.changeUserSpotFee '
,
` taker_fee fee_rate error
${
taker_fee
}
`
);
throw
'3000'
;
throw
'3000'
;
}
}
if
(
pair
)
{
await
checkPair
(
symbol
,
1
);
await
checkPair
(
symbol
,
1
);
}
await
checkUser
(
user_id
);
await
checkUser
(
user_id
);
await
sleep
(
1000
);
await
sleep
(
1000
);
//请求撮合 修改费率
//请求撮合 修改费率
let
res
=
await
changeTradingFee
(
symbol
,
user_id
,
maker_fee
,
taker_fee
);
let
res
=
await
changeTradingFee
(
pair
,
user_id
,
maker_fee
,
taker_fee
);
return
res
.
is_success
;
return
res
.
is_success
;
};
};
export
const
changeUserContractFee
=
async
function
(
user_id
,
symbol
,
fee_model
,
maker_fee
,
taker_fee
,
logId
)
{
export
const
changeUserContractFee
=
async
function
(
user_id
,
symbol
,
fee_model
,
maker_fee
,
taker_fee
,
logId
)
{
let
_func_name_
=
'task.fee.rate.log.model.changeUserContractFee'
;
let
_func_name_
=
'task.fee.rate.log.model.changeUserContractFee'
;
let
pair
=
symbol
===
'all'
?
''
:
symbol
;
let
is_success
=
true
;
let
is_success
=
true
;
let
product_type
=
pair
==
'all'
?
'lpc'
:
'single'
;
//生效的费率 与要设置的费率 比对做校验 现在分不开 现货 合约 先不校验 之后分开了 再校验
/*let feeExist = await cancelIfFeeExist(user_id, product_type, symbol, maker_fee, taker_fee);
if (feeExist) {
return is_success;
}*/
if
(
pair
)
{
await
checkPair
(
symbol
,
2
);
await
checkPair
(
symbol
,
2
);
let
asset
=
await
mainUserAsset
.
prototype
.
findOne
({
}
where
:
{
//查询交易账户资产
user_id
let
asset
:
any
;
},
try
{
raw
:
true
asset
=
await
getUserAccountFromCore
(
user_id
);
})
}
if
(
!
asset
)
{
catch
(
e
)
{
logger
.
error
(
'changeUserContractFee.getUserAccountFromCore.error:'
+
e
);
}
if
(
!
asset
||
!
asset
.
length
)
{
return
is_success
;
return
is_success
;
}
}
if
(
maker_fee
<
-
0.0003
)
{
// 最大返0.0003
if
(
maker_fee
<
-
0.0003
)
{
// 最大返0.0003
...
@@ -172,7 +194,7 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model,
...
@@ -172,7 +194,7 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model,
await
sleep
(
1000
);
await
sleep
(
1000
);
//请求撮合 修改费率
//请求撮合 修改费率
let
res
=
await
changeTradingFee
(
symbol
,
user_id
,
maker_fee
,
taker_fee
);
let
res
=
await
changeTradingFee
(
pair
,
user_id
,
maker_fee
,
taker_fee
);
return
res
.
is_success
;
return
res
.
is_success
;
};
};
...
@@ -194,3 +216,30 @@ async function getMainAccountUserId(user_id: number) {
...
@@ -194,3 +216,30 @@ async function getMainAccountUserId(user_id: number) {
let
father_id
=
dbSon
?
dbSon
.
father_id
:
user_id
;
let
father_id
=
dbSon
?
dbSon
.
father_id
:
user_id
;
return
father_id
;
return
father_id
;
}
}
async
function
cancelIfFeeExist
(
user_id
,
product_type
,
pair
,
maker_fee
,
taker_fee
)
{
let
condition
=
{
user_id
,
product
:
pair
==
'all'
?
''
:
pair
,
product_type
}
let
dbFee
=
await
userProductFee
.
prototype
.
findOne
({
where
:
condition
,
raw
:
true
});
if
(
dbFee
&&
dbFee
.
maker_fee
==
maker_fee
&&
dbFee
.
taker_fee
==
taker_fee
)
{
return
true
;
}
//现货默认费率
if
(
product_type
==
'spot'
&&
maker_fee
==
0.001
&&
taker_fee
==
0.002
)
{
return
true
;
}
//合约默认费率
if
(
product_type
==
'lpc'
&&
maker_fee
==
0.0004
&&
taker_fee
==
0.0006
)
{
return
true
;
}
return
false
;
}
cron/task/task_fee_rate_base_coin_contract_log.ts
View file @
d2c4f160
...
@@ -21,15 +21,7 @@ const oneMonth = oneDay * 30;
...
@@ -21,15 +21,7 @@ const oneMonth = oneDay * 30;
let
inJob
=
false
;
let
inJob
=
false
;
let
limit
=
3000
;
let
limit
=
3000
;
/**
* 注意:
* fee_rate_spot_log
* fee_rate_contract_log
* fee_rate_base_coin_contract_log
* 相关表中不支持 all 或 ALL 交易对
* 管理后台配置用户费率的 all 交易对也是分多个交易对来处理的
* 即(common_user_fee_setting 中的 all 分多个交易对 设置到 fee_rate_log 表中)
*/
let
setFeeRateJob
=
schedule
.
scheduleJob
(
'*/30 * * * * *'
,
function
()
{
let
setFeeRateJob
=
schedule
.
scheduleJob
(
'*/30 * * * * *'
,
function
()
{
if
(
inJob
)
{
if
(
inJob
)
{
...
...
cron/task/task_fee_rate_contract_log.ts
View file @
d2c4f160
...
@@ -23,15 +23,7 @@ const oneMonth = oneDay * 30;
...
@@ -23,15 +23,7 @@ const oneMonth = oneDay * 30;
let
inJob
=
false
;
let
inJob
=
false
;
let
limit
=
3000
;
let
limit
=
3000
;
/**
* 注意:
* fee_rate_spot_log
* fee_rate_contract_log
* fee_rate_base_coin_contract_log
* 相关表中不支持 all 或 ALL 交易对
* 管理后台配置用户费率的 all 交易对也是分多个交易对来处理的
* 即(common_user_fee_setting 中的 all 分多个交易对 设置到 fee_rate_log 表中)
*/
let
setFeeRateJob
=
schedule
.
scheduleJob
(
'*/30 * * * * *'
,
function
()
{
let
setFeeRateJob
=
schedule
.
scheduleJob
(
'*/30 * * * * *'
,
function
()
{
if
(
inJob
)
{
if
(
inJob
)
{
...
...
cron/task/task_fee_rate_spot_log.ts
View file @
d2c4f160
...
@@ -22,15 +22,7 @@ const oneMonth = oneDay * 30;
...
@@ -22,15 +22,7 @@ const oneMonth = oneDay * 30;
let
inJob
=
false
;
let
inJob
=
false
;
let
limit
=
3000
;
let
limit
=
3000
;
/**
* 注意:
* fee_rate_spot_log
* fee_rate_contract_log
* fee_rate_base_coin_contract_log
* 相关表中不支持all 或 ALL 交易对
* 管理后台配置用户费率的 all 交易对也是分多个交易对来处理的
* 即(common_user_fee_setting 中的 all 分多个交易对 设置到 fee_rate_log 表中)
*/
let
setFeeRateJob
=
schedule
.
scheduleJob
(
'*/30 * * * * *'
,
function
()
{
let
setFeeRateJob
=
schedule
.
scheduleJob
(
'*/30 * * * * *'
,
function
()
{
if
(
inJob
)
{
if
(
inJob
)
{
...
@@ -240,7 +232,7 @@ async function setExpiredDefault() {
...
@@ -240,7 +232,7 @@ async function setExpiredDefault() {
raw
:
true
,
raw
:
true
,
});
});
let
defaultFeeObj
=
{},
max_maker_rate
=
0.001
,
max_taker_rate
=
0.002
;
// 2020.5.9
let
defaultFeeObj
=
{},
max_maker_rate
=
0.001
,
max_taker_rate
=
0.002
;
// 2020.5.9
let
activePairs
:
any
=
[];
let
activePairs
:
any
=
[
'all'
];
for
(
let
i
=
0
;
i
<
defaultPairFee
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
defaultPairFee
.
length
;
i
++
)
{
let
{
symbol
,
maker_fee
,
taker_fee
}
=
defaultPairFee
[
i
];
let
{
symbol
,
maker_fee
,
taker_fee
}
=
defaultPairFee
[
i
];
...
...
src/constant/errorCode.ts
View file @
d2c4f160
...
@@ -77,4 +77,5 @@ export const ErrorCode = {
...
@@ -77,4 +77,5 @@ export const ErrorCode = {
FEE_EX_OR_DEL
:
'30073'
,
//费率设置已过期或已删除,不可以修改
FEE_EX_OR_DEL
:
'30073'
,
//费率设置已过期或已删除,不可以修改
PAIR_FORMAT_ERR
:
'30074'
,
//交易对格式错误
PAIR_FORMAT_ERR
:
'30074'
,
//交易对格式错误
PAIR_NOT_SUPPORT
:
'30075'
,
//暂不支持此交易对
PAIR_NOT_SUPPORT
:
'30075'
,
//暂不支持此交易对
FEE_TOO_LOW_OR_HIGH
:
'30076'
,
//设置的费率过高/过低
}
}
src/functional/mvc/control/commonUserFeeSetting.control.ts
View file @
d2c4f160
...
@@ -140,6 +140,16 @@ async function addParamValid(commonUserFeeVO: CommonUserFeeVO) {
...
@@ -140,6 +140,16 @@ async function addParamValid(commonUserFeeVO: CommonUserFeeVO) {
if
(
pair
!=
'all'
){
if
(
pair
!=
'all'
){
throw
ErrorCode
.
PAIR_NOT_SUPPORT
;
throw
ErrorCode
.
PAIR_NOT_SUPPORT
;
}
}
//校验费率范围
if
(
type
==
FEE_TYPE
.
FEE_TYPE_SPOT
){
if
(
Number
(
makerFee
)
<
0.0002
||
Number
(
takerFee
)
<
0.0005
){
throw
ErrorCode
.
FEE_TOO_LOW_OR_HIGH
;
}
}
else
{
if
(
Number
(
makerFee
)
<
-
0.00015
||
Number
(
takerFee
)
<
0.00035
){
throw
ErrorCode
.
FEE_TOO_LOW_OR_HIGH
;
}
}
await
checkMaker
(
commonUserFeeVO
);
await
checkMaker
(
commonUserFeeVO
);
await
paramCheck
(
beginTime
,
expireTime
,
Number
(
type
),
userId
);
await
paramCheck
(
beginTime
,
expireTime
,
Number
(
type
),
userId
);
...
...
src/functional/mvc/service/depositAndWithdraw.service.ts
View file @
d2c4f160
...
@@ -108,7 +108,7 @@ export async function dealReturnData(resList: any) {
...
@@ -108,7 +108,7 @@ export async function dealReturnData(resList: any) {
for
(
let
item
of
resList
.
rows
)
{
for
(
let
item
of
resList
.
rows
)
{
let
symbol
=
item
.
coin_symbol
;
let
symbol
=
item
.
coin_symbol
;
let
amount
=
item
.
amount
;
let
amount
=
item
.
amount
;
let
usdt
=
usdtTickerMap
[
symbol
]
?
usdtTickerMap
[
symbol
]
:
await
tickerUtils
.
_
rateCoin2USDT
(
symbol
);
let
usdt
=
usdtTickerMap
[
symbol
]
?
usdtTickerMap
[
symbol
]
:
await
tickerUtils
.
rateCoin2USDT
(
symbol
);
usdtTickerMap
[
symbol
]
=
usdt
;
usdtTickerMap
[
symbol
]
=
usdt
;
item
.
equal_usdt
=
new
BigNumber
(
usdt
).
mul
(
amount
);
item
.
equal_usdt
=
new
BigNumber
(
usdt
).
mul
(
amount
);
}
}
...
...
src/functional/mvc/service/spotData.service.ts
View file @
d2c4f160
This diff is collapsed.
Click to expand it.
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