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
838a9666
Commit
838a9666
authored
Jan 10, 2025
by
ml
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
费率失效 调整为基础费率 以及 子账户继承母账户 费率修改
parent
1db15a60
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
100 additions
and
40 deletions
+100
-40
task.fee.rate.log.model.ts
cron/model/task.fee.rate.log.model.ts
+25
-19
task_fee_rate_base_coin_contract_log.ts
cron/task/task_fee_rate_base_coin_contract_log.ts
+25
-6
task_fee_rate_contract_log.ts
cron/task/task_fee_rate_contract_log.ts
+35
-6
task_fee_rate_spot_log.ts
cron/task/task_fee_rate_spot_log.ts
+10
-7
task_fee_setting_status_update.ts
cron/task/task_fee_setting_status_update.ts
+3
-1
appFeature.control.ts
src/functional/mvc/control/appFeature.control.ts
+2
-1
No files found.
cron/model/task.fee.rate.log.model.ts
View file @
838a9666
...
...
@@ -45,7 +45,6 @@ let checkPair = async function (pair: string, type: number) {
let
dbPair
:
any
;
if
(
type
==
1
)
{
//现货
dbPair
=
await
spotPairs
.
prototype
.
findOne
({
attributes
:
[
'id'
],
where
:
{
symbol
:
String
(
pair
),
status
:
2
,
//提交成功
...
...
@@ -55,7 +54,6 @@ let checkPair = async function (pair: string, type: number) {
}
else
{
//U、币本位合约
dbPair
=
await
contractPairs
.
prototype
.
findOne
({
attributes
:
[
'id'
],
where
:
{
symbol
:
String
(
pair
),
status
:
2
,
//提交成功
...
...
@@ -142,16 +140,25 @@ 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
}
`
);
throw
'3000'
;
}
//初始费率
let
init_maker_fee
=
0.001
,
init_taker_fee
=
0.002
;
if
(
pair
)
{
await
checkPair
(
symbol
,
1
);
let
dbPair
=
await
checkPair
(
symbol
,
1
);
init_maker_fee
=
dbPair
.
maker_fee
;
init_taker_fee
=
dbPair
.
taker_fee
;
}
await
checkUser
(
user_id
);
await
sleep
(
1000
);
//要设置的费率
let
set_maker_fee
=
maker_fee
;
let
set_taker_fee
=
taker_fee
;
//请求撮合 修改费率 maker_fee 和 taker_fee 同时为1 代表初始化费率
let
tmp_maker_fee
=
Number
(
maker_fee
)
==
0.001
?
1
:
maker_fee
;
let
tmp_taker_fee
=
Number
(
taker_fee
)
==
0.002
?
1
:
taker_fee
;
let
res
=
await
changeTradingFee
(
pair
,
user_id
,
tmp_maker_fee
,
tmp_taker_fee
,
"spot"
,
opt_market
);
if
(
Number
(
maker_fee
)
==
init_maker_fee
&&
Number
(
taker_fee
)
==
init_taker_fee
)
{
set_maker_fee
=
1
;
set_taker_fee
=
1
;
}
let
res
=
await
changeTradingFee
(
pair
,
user_id
,
set_maker_fee
,
set_taker_fee
,
"spot"
,
opt_market
);
return
res
.
is_success
;
};
...
...
@@ -167,8 +174,12 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model,
if
(
feeExist
)
{
return
is_success
;
}
//初始费率
let
init_maker_fee
=
0.0004
,
init_taker_fee
=
0.0006
;
if
(
pair
)
{
await
checkPair
(
symbol
,
2
);
let
dbPair
=
await
checkPair
(
symbol
,
2
);
init_maker_fee
=
dbPair
.
maker_fee
;
init_taker_fee
=
dbPair
.
taker_fee
;
}
//查询交易账户资产
let
asset
:
any
;
...
...
@@ -195,10 +206,14 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model,
await
checkUser
(
user_id
);
await
sleep
(
1000
);
let
set_maker_fee
=
maker_fee
;
let
set_taker_fee
=
taker_fee
;
//请求撮合 修改费率 maker_fee 和 taker_fee 同时为1 代表初始化费率
let
tmp_maker_fee
=
Number
(
maker_fee
)
==
0.0004
?
1
:
maker_fee
;
let
tmp_taker_fee
=
Number
(
taker_fee
)
==
0.0006
?
1
:
taker_fee
;
let
res
=
await
changeTradingFee
(
pair
,
user_id
,
tmp_maker_fee
,
tmp_taker_fee
,
"lpc"
,
opt_market
);
if
(
Number
(
maker_fee
)
==
init_maker_fee
&&
Number
(
taker_fee
)
==
init_taker_fee
)
{
set_maker_fee
=
1
;
set_taker_fee
=
1
;
}
let
res
=
await
changeTradingFee
(
pair
,
user_id
,
set_maker_fee
,
set_taker_fee
,
"lpc"
,
opt_market
);
return
res
.
is_success
;
};
...
...
@@ -235,15 +250,6 @@ async function cancelIfFeeExist(user_id, product_type, pair, maker_fee, taker_fe
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 @
838a9666
...
...
@@ -208,16 +208,27 @@ async function setExpiredDefault() {
},
raw
:
true
,
});
let
init_maker_rate
=
0.0004
,
init_taker_rate
=
0.0006
;
// 初始用户费率
let
defaultFeeObj
=
{},
init_maker_rate
=
0.0004
,
init_taker_rate
=
0.0006
;
// 初始用户费率
let
activePairs
:
any
=
[
'all'
];
for
(
let
i
=
0
;
i
<
defaultPairFee
.
length
;
i
++
)
{
let
{
symbol
}
=
defaultPairFee
[
i
];
activePairs
.
push
(
symbol
);
defaultFeeObj
[
symbol
]
=
defaultPairFee
[
i
];
}
let
newFeeArr
:
any
=
[];
let
beginAt
=
new
Date
();
let
expiredPairs
:
any
=
[];
for
(
let
i
=
0
;
i
<
expirdFees
.
length
;
i
++
)
{
let
{
pair
,
fee_model
,
user_id
,
maker_fee
:
before_maker_fee
,
taker_fee
:
before_taker_fee
}
=
expirdFees
[
i
];
let
{
pair
,
fee_model
,
user_id
}
=
expirdFees
[
i
];
if
(
await
isWhiteListUser
(
user_id
))
{
continue
;
}
if
(
!
activePairs
.
includes
(
pair
))
{
expiredPairs
.
push
(
pair
);
continue
;
}
if
(
unCheckCountObj
[
user_id
]
>
0
)
{
// 已经存在
continue
;
}
...
...
@@ -225,15 +236,23 @@ async function setExpiredDefault() {
user_id
,
pair
:
pair
,
fee_model
,
maker_fee
:
init_maker_rate
,
taker_fee
:
init_taker_rate
,
maker_fee
:
defaultFeeObj
[
pair
]
?
defaultFeeObj
[
pair
].
maker_fee
:
init_maker_rate
,
taker_fee
:
defaultFeeObj
[
pair
]
?
defaultFeeObj
[
pair
].
taker_fee
:
init_taker_rate
,
beginAt
:
beginAt
,
expireAt
:
new
Date
(
beginAt
.
getTime
()
+
oneMonth
),
is_check
:
feeRateCheckStatus
.
CHECK_STATUS_UNCHECK
,
comment
,
});
}
// 如果有活动,采用活动的费率
if
(
expiredPairs
.
length
>
0
)
{
// 下线交易对处理
await
fee_rate_base_coin_contract_log
.
update
({
is_check
:
feeRateCheckStatus
.
CHECK_STATUS_ACTIVE_OVER
,
},
{
where
:
{
pair
:
expiredPairs
,
}
})
}
if
(
newFeeArr
.
length
>
0
)
{
let
trans
:
any
;
try
{
...
...
cron/task/task_fee_rate_contract_log.ts
View file @
838a9666
...
...
@@ -2,7 +2,7 @@ import {
ormDB
,
userInfoSon
,
feeRateContractLog
,
contractPairs
contractPairs
,
spotPairs
}
from
"@madex/ex-ts-dao"
;
import
{
FEE_RATE_LOG_STATUS
}
from
"../../src/constant/feeRateLogConst"
;
import
{
changeUserContractFee
,
isWhiteListUser
}
from
"../model/task.fee.rate.log.model"
;
...
...
@@ -205,33 +205,60 @@ async function setExpiredDefault() {
let
{
user_id
,
amount
}
=
uncheckCounts
[
i
];
unCheckCountObj
[
user_id
]
=
amount
;
}
let
defaultPairFee
=
await
contractPairs
.
prototype
.
findAll
({
attributes
:
[
'maker_fee'
,
'taker_fee'
,
'symbol'
],
where
:
{
status
:
2
},
raw
:
true
,
});
let
defaultFeeObj
=
{},
init_maker_rate
=
0.0004
,
init_taker_rate
=
0.0006
;
// 初始用户费率
let
init_maker_rate
=
0.0004
,
init_taker_rate
=
0.0006
;
// 初始用户费率
let
activePairs
:
any
=
[
'all'
];
for
(
let
i
=
0
;
i
<
defaultPairFee
.
length
;
i
++
)
{
let
{
symbol
}
=
defaultPairFee
[
i
];
activePairs
.
push
(
symbol
);
defaultFeeObj
[
symbol
]
=
defaultPairFee
[
i
];
}
let
newFeeArr
:
any
=
[];
let
beginAt
=
new
Date
();
let
expiredPairs
:
any
=
[];
for
(
let
i
=
0
;
i
<
expirdFees
.
length
;
i
++
)
{
let
{
pair
,
fee_model
,
user_id
,
maker_fee
:
before_maker_fee
,
taker_fee
:
before_taker_fee
}
=
expirdFees
[
i
];
let
{
pair
,
fee_model
,
user_id
}
=
expirdFees
[
i
];
if
(
await
isWhiteListUser
(
user_id
))
{
continue
;
}
if
(
!
activePairs
.
includes
(
pair
))
{
expiredPairs
.
push
(
pair
);
continue
;
}
if
(
unCheckCountObj
[
user_id
]
>
0
)
{
// 已经存在
continue
;
}
newFeeArr
.
push
({
user_id
,
pair
:
pair
,
fee_model
,
maker_fee
:
init_maker_rate
,
taker_fee
:
init_taker_rate
,
maker_fee
:
defaultFeeObj
[
pair
]
?
defaultFeeObj
[
pair
].
maker_fee
:
init_maker_rate
,
taker_fee
:
defaultFeeObj
[
pair
]
?
defaultFeeObj
[
pair
].
taker_fee
:
init_taker_rate
,
beginAt
:
beginAt
,
expireAt
:
new
Date
(
beginAt
.
getTime
()
+
oneMonth
),
is_check
:
feeRateCheckStatus
.
CHECK_STATUS_UNCHECK
,
comment
,
});
}
// 如果有活动,采用活动的费率
if
(
expiredPairs
.
length
>
0
)
{
// 下线交易对处理
await
fee_rate_contract_log
.
update
({
is_check
:
feeRateCheckStatus
.
CHECK_STATUS_ACTIVE_OVER
,
},
{
where
:
{
pair
:
expiredPairs
,
}
})
}
if
(
newFeeArr
.
length
>
0
)
{
let
trans
:
any
;
try
{
...
...
@@ -259,3 +286,5 @@ async function setExpiredDefault() {
}
}
}
// setFeeRateJob.invoke();
// setExpiredDefaultJob.invoke();
\ No newline at end of file
cron/task/task_fee_rate_spot_log.ts
View file @
838a9666
...
...
@@ -23,7 +23,6 @@ let inJob = false;
let
limit
=
3000
;
let
setFeeRateJob
=
schedule
.
scheduleJob
(
'*/30 * * * * *'
,
function
()
{
if
(
inJob
)
{
return
;
...
...
@@ -225,24 +224,25 @@ async function setExpiredDefault() {
}
let
defaultPairFee
=
await
spotPairs
.
prototype
.
findAll
({
attributes
:
[
'maker_
rate'
,
'taker_rat
e'
,
'symbol'
],
attributes
:
[
'maker_
fee'
,
'taker_fe
e'
,
'symbol'
],
where
:
{
status
:
2
},
raw
:
true
,
});
let
init_maker_rate
=
0.001
,
init_taker_rate
=
0.002
;
// 初始用户费率
let
defaultFeeObj
=
{},
init_maker_rate
=
0.001
,
init_taker_rate
=
0.002
;
// 初始用户费率
let
activePairs
:
any
=
[
'all'
];
for
(
let
i
=
0
;
i
<
defaultPairFee
.
length
;
i
++
)
{
let
{
symbol
}
=
defaultPairFee
[
i
];
let
{
symbol
}
=
defaultPairFee
[
i
];
activePairs
.
push
(
symbol
);
defaultFeeObj
[
symbol
]
=
defaultPairFee
[
i
];
}
let
newFeeArr
:
any
=
[];
let
beginAt
=
new
Date
();
let
expiredPairs
:
any
=
[];
for
(
let
i
=
0
;
i
<
expirdFees
.
length
;
i
++
)
{
let
{
pair
,
fee_model
,
user_id
}
=
expirdFees
[
i
];
let
{
pair
,
fee_model
,
user_id
}
=
expirdFees
[
i
];
if
(
await
isWhiteListUser
(
user_id
))
{
continue
;
...
...
@@ -258,8 +258,8 @@ async function setExpiredDefault() {
user_id
,
pair
:
pair
,
fee_model
,
maker_fee
:
init_maker_rate
,
taker_fee
:
init_taker_rate
,
maker_fee
:
defaultFeeObj
[
pair
]
?
defaultFeeObj
[
pair
].
maker_fee
:
init_maker_rate
,
taker_fee
:
defaultFeeObj
[
pair
]
?
defaultFeeObj
[
pair
].
taker_fee
:
init_taker_rate
,
beginAt
:
beginAt
,
expireAt
:
new
Date
(
beginAt
.
getTime
()
+
oneMonth
),
is_check
:
feeRateCheckStatus
.
CHECK_STATUS_UNCHECK
,
...
...
@@ -302,3 +302,6 @@ async function setExpiredDefault() {
}
}
}
//setFeeRateJob.invoke();
//setExpiredDefaultJob.invoke();
\ No newline at end of file
cron/task/task_fee_setting_status_update.ts
View file @
838a9666
...
...
@@ -28,3 +28,5 @@ let userSettingStatusUpdate = schedule.scheduleJob('0 */10 * * * *', async funct
logger
.
warn
(
'task_fee_setting_status_update userSettingStatusUpdate error'
,
error
);
}
});
// userSettingStatusUpdate.invoke();
\ No newline at end of file
src/functional/mvc/control/appFeature.control.ts
View file @
838a9666
...
...
@@ -9,6 +9,7 @@ import { DEVICE_ARR, PLATFORM_ARR, STATUS_ARR } from "../../../constant/appVersi
import
{
appFeatureManage
,
arbitrageOrmDB
}
from
"@madex/ex-ts-dao"
;
let
isIp
=
require
(
'is-ip'
);
let
_
=
require
(
'lodash'
);
/**
* app首页入口列表
* @param req
...
...
@@ -134,7 +135,7 @@ async function checkIsFixedCount(id: number) {
}
}
let
keys
=
map
.
keys
;
let
keys
=
_
.
keys
(
map
)
;
for
(
let
key
of
keys
)
{
if
(
map
[
key
]
<
2
)
{
throw
ErrorCode
.
NOT_HIDDEN_TWO
...
...
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