Commit 1f43154d authored by 1486327116's avatar 1486327116

Merge remote-tracking branch 'origin/master'

parents 87dfa466 838a9666
...@@ -45,7 +45,6 @@ let checkPair = async function (pair: string, type: number) { ...@@ -45,7 +45,6 @@ let checkPair = async function (pair: string, type: number) {
let dbPair: any; let dbPair: any;
if (type == 1) {//现货 if (type == 1) {//现货
dbPair = await spotPairs.prototype.findOne({ dbPair = await spotPairs.prototype.findOne({
attributes: ['id'],
where: { where: {
symbol: String(pair), symbol: String(pair),
status: 2,//提交成功 status: 2,//提交成功
...@@ -55,7 +54,6 @@ let checkPair = async function (pair: string, type: number) { ...@@ -55,7 +54,6 @@ let checkPair = async function (pair: string, type: number) {
} }
else {//U、币本位合约 else {//U、币本位合约
dbPair = await contractPairs.prototype.findOne({ dbPair = await contractPairs.prototype.findOne({
attributes: ['id'],
where: { where: {
symbol: String(pair), symbol: String(pair),
status: 2,//提交成功 status: 2,//提交成功
...@@ -142,16 +140,25 @@ export const changeUserSpotFee = async function (user_id, symbol, fee_model, mak ...@@ -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}`); logger.warn(' task.fee.rate.log.model.changeUserSpotFee ', ` taker_fee fee_rate error ${taker_fee}`);
throw '3000'; throw '3000';
} }
//初始费率
let init_maker_fee = 0.001, init_taker_fee = 0.002;
if (pair) { 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 checkUser(user_id);
await sleep(1000); await sleep(1000);
//要设置的费率
let set_maker_fee = maker_fee;
let set_taker_fee = taker_fee;
//请求撮合 修改费率 maker_fee 和 taker_fee 同时为1 代表初始化费率 //请求撮合 修改费率 maker_fee 和 taker_fee 同时为1 代表初始化费率
let tmp_maker_fee = Number(maker_fee) == 0.001 ? 1 : maker_fee; if (Number(maker_fee) == init_maker_fee && Number(taker_fee) == init_taker_fee) {
let tmp_taker_fee = Number(taker_fee) == 0.002 ? 1 : taker_fee; set_maker_fee = 1;
let res = await changeTradingFee(pair, user_id, tmp_maker_fee, tmp_taker_fee, "spot", opt_market); set_taker_fee = 1;
}
let res = await changeTradingFee(pair, user_id, set_maker_fee, set_taker_fee, "spot", opt_market);
return res.is_success; return res.is_success;
}; };
...@@ -167,8 +174,12 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model, ...@@ -167,8 +174,12 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model,
if (feeExist) { if (feeExist) {
return is_success; return is_success;
} }
//初始费率
let init_maker_fee = 0.0004, init_taker_fee = 0.0006;
if (pair) { 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; let asset: any;
...@@ -195,10 +206,14 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model, ...@@ -195,10 +206,14 @@ export const changeUserContractFee = async function (user_id, symbol, fee_model,
await checkUser(user_id); await checkUser(user_id);
await sleep(1000); await sleep(1000);
let set_maker_fee = maker_fee;
let set_taker_fee = taker_fee;
//请求撮合 修改费率 maker_fee 和 taker_fee 同时为1 代表初始化费率 //请求撮合 修改费率 maker_fee 和 taker_fee 同时为1 代表初始化费率
let tmp_maker_fee = Number(maker_fee) == 0.0004 ? 1 : maker_fee; if (Number(maker_fee) == init_maker_fee && Number(taker_fee) == init_taker_fee) {
let tmp_taker_fee = Number(taker_fee) == 0.0006 ? 1 : taker_fee; set_maker_fee = 1;
let res = await changeTradingFee(pair, user_id, tmp_maker_fee, tmp_taker_fee, "lpc", opt_market); set_taker_fee = 1;
}
let res = await changeTradingFee(pair, user_id, set_maker_fee, set_taker_fee, "lpc", opt_market);
return res.is_success; return res.is_success;
}; };
...@@ -235,15 +250,6 @@ async function cancelIfFeeExist(user_id, product_type, pair, maker_fee, taker_fe ...@@ -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) { if (dbFee && dbFee.maker_fee == maker_fee && dbFee.taker_fee == taker_fee) {
return true; 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; return false;
} }
...@@ -208,16 +208,27 @@ async function setExpiredDefault() { ...@@ -208,16 +208,27 @@ async function setExpiredDefault() {
}, },
raw: true, 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 newFeeArr: any = [];
let beginAt = new Date(); let beginAt = new Date();
let expiredPairs: any = [];
for (let i = 0; i < expirdFees.length; i++) { 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)) { if (await isWhiteListUser(user_id)) {
continue; continue;
} }
if (!activePairs.includes(pair)) {
expiredPairs.push(pair);
continue;
}
if (unCheckCountObj[user_id] > 0) { // 已经存在 if (unCheckCountObj[user_id] > 0) { // 已经存在
continue; continue;
} }
...@@ -225,15 +236,23 @@ async function setExpiredDefault() { ...@@ -225,15 +236,23 @@ async function setExpiredDefault() {
user_id, user_id,
pair: pair, pair: pair,
fee_model, fee_model,
maker_fee: init_maker_rate, maker_fee: defaultFeeObj[pair] ? defaultFeeObj[pair].maker_fee : init_maker_rate,
taker_fee: init_taker_rate, taker_fee: defaultFeeObj[pair] ? defaultFeeObj[pair].taker_fee : init_taker_rate,
beginAt: beginAt, beginAt: beginAt,
expireAt: new Date(beginAt.getTime() + oneMonth), expireAt: new Date(beginAt.getTime() + oneMonth),
is_check: feeRateCheckStatus.CHECK_STATUS_UNCHECK, is_check: feeRateCheckStatus.CHECK_STATUS_UNCHECK,
comment, 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) { if (newFeeArr.length > 0) {
let trans: any; let trans: any;
try { try {
......
...@@ -2,7 +2,7 @@ import { ...@@ -2,7 +2,7 @@ import {
ormDB, ormDB,
userInfoSon, userInfoSon,
feeRateContractLog, feeRateContractLog,
contractPairs contractPairs, spotPairs
} 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 { changeUserContractFee, isWhiteListUser } from "../model/task.fee.rate.log.model"; import { changeUserContractFee, isWhiteListUser } from "../model/task.fee.rate.log.model";
...@@ -205,33 +205,60 @@ async function setExpiredDefault() { ...@@ -205,33 +205,60 @@ async function setExpiredDefault() {
let { user_id, amount } = uncheckCounts[i]; let { user_id, amount } = uncheckCounts[i];
unCheckCountObj[user_id] = amount; 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 newFeeArr: any = [];
let beginAt = new Date(); let beginAt = new Date();
let expiredPairs: any = [];
for (let i = 0; i < expirdFees.length; i++) { 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)) { if (await isWhiteListUser(user_id)) {
continue; continue;
} }
if (!activePairs.includes(pair)) {
expiredPairs.push(pair);
continue;
}
if (unCheckCountObj[user_id] > 0) { // 已经存在 if (unCheckCountObj[user_id] > 0) { // 已经存在
continue; continue;
} }
newFeeArr.push({ newFeeArr.push({
user_id, user_id,
pair: pair, pair: pair,
fee_model, fee_model,
maker_fee: init_maker_rate, maker_fee: defaultFeeObj[pair] ? defaultFeeObj[pair].maker_fee : init_maker_rate,
taker_fee: init_taker_rate, taker_fee: defaultFeeObj[pair] ? defaultFeeObj[pair].taker_fee : init_taker_rate,
beginAt: beginAt, beginAt: beginAt,
expireAt: new Date(beginAt.getTime() + oneMonth), expireAt: new Date(beginAt.getTime() + oneMonth),
is_check: feeRateCheckStatus.CHECK_STATUS_UNCHECK, is_check: feeRateCheckStatus.CHECK_STATUS_UNCHECK,
comment, 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) { if (newFeeArr.length > 0) {
let trans: any; let trans: any;
try { try {
...@@ -259,3 +286,5 @@ async function setExpiredDefault() { ...@@ -259,3 +286,5 @@ async function setExpiredDefault() {
} }
} }
} }
// setFeeRateJob.invoke();
// setExpiredDefaultJob.invoke();
\ No newline at end of file
...@@ -23,7 +23,6 @@ let inJob = false; ...@@ -23,7 +23,6 @@ let inJob = false;
let limit = 3000; let limit = 3000;
let setFeeRateJob = schedule.scheduleJob('*/30 * * * * *', function () { let setFeeRateJob = schedule.scheduleJob('*/30 * * * * *', function () {
if (inJob) { if (inJob) {
return; return;
...@@ -225,24 +224,25 @@ async function setExpiredDefault() { ...@@ -225,24 +224,25 @@ async function setExpiredDefault() {
} }
let defaultPairFee = await spotPairs.prototype.findAll({ let defaultPairFee = await spotPairs.prototype.findAll({
attributes: ['maker_rate', 'taker_rate', 'symbol'], attributes: ['maker_fee', 'taker_fee', 'symbol'],
where: { where: {
status: 2 status: 2
}, },
raw: true, 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']; let activePairs: any = ['all'];
for (let i = 0; i < defaultPairFee.length; i++) { for (let i = 0; i < defaultPairFee.length; i++) {
let { symbol} = defaultPairFee[i]; let { symbol } = defaultPairFee[i];
activePairs.push(symbol); activePairs.push(symbol);
defaultFeeObj[symbol] = defaultPairFee[i];
} }
let newFeeArr: any = []; let newFeeArr: any = [];
let beginAt = new Date(); let beginAt = new Date();
let expiredPairs: any = []; let expiredPairs: any = [];
for (let i = 0; i < expirdFees.length; i++) { 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)) { if (await isWhiteListUser(user_id)) {
continue; continue;
...@@ -258,8 +258,8 @@ async function setExpiredDefault() { ...@@ -258,8 +258,8 @@ async function setExpiredDefault() {
user_id, user_id,
pair: pair, pair: pair,
fee_model, fee_model,
maker_fee: init_maker_rate, maker_fee: defaultFeeObj[pair] ? defaultFeeObj[pair].maker_fee : init_maker_rate,
taker_fee: init_taker_rate, taker_fee: defaultFeeObj[pair] ? defaultFeeObj[pair].taker_fee : init_taker_rate,
beginAt: beginAt, beginAt: beginAt,
expireAt: new Date(beginAt.getTime() + oneMonth), expireAt: new Date(beginAt.getTime() + oneMonth),
is_check: feeRateCheckStatus.CHECK_STATUS_UNCHECK, is_check: feeRateCheckStatus.CHECK_STATUS_UNCHECK,
...@@ -302,3 +302,6 @@ async function setExpiredDefault() { ...@@ -302,3 +302,6 @@ async function setExpiredDefault() {
} }
} }
} }
//setFeeRateJob.invoke();
//setExpiredDefaultJob.invoke();
\ No newline at end of file
...@@ -27,4 +27,6 @@ let userSettingStatusUpdate = schedule.scheduleJob('0 */10 * * * *', async funct ...@@ -27,4 +27,6 @@ let userSettingStatusUpdate = schedule.scheduleJob('0 */10 * * * *', async funct
userSettingUpdateRunning = false; userSettingUpdateRunning = false;
logger.warn('task_fee_setting_status_update userSettingStatusUpdate error', error); logger.warn('task_fee_setting_status_update userSettingStatusUpdate error', error);
} }
}); });
\ No newline at end of file
// userSettingStatusUpdate.invoke();
\ No newline at end of file
...@@ -9,6 +9,7 @@ import { DEVICE_ARR, PLATFORM_ARR, STATUS_ARR } from "../../../constant/appVersi ...@@ -9,6 +9,7 @@ import { DEVICE_ARR, PLATFORM_ARR, STATUS_ARR } from "../../../constant/appVersi
import { appFeatureManage, arbitrageOrmDB } from "@madex/ex-ts-dao"; import { appFeatureManage, arbitrageOrmDB } from "@madex/ex-ts-dao";
let isIp = require('is-ip'); let isIp = require('is-ip');
let _ = require('lodash');
/** /**
* app首页入口列表 * app首页入口列表
* @param req * @param req
...@@ -134,7 +135,7 @@ async function checkIsFixedCount(id: number) { ...@@ -134,7 +135,7 @@ async function checkIsFixedCount(id: number) {
} }
} }
let keys = map.keys; let keys = _.keys(map);
for (let key of keys) { for (let key of keys) {
if (map[key] < 2) { if (map[key] < 2) {
throw ErrorCode.NOT_HIDDEN_TWO throw ErrorCode.NOT_HIDDEN_TWO
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment