Improve SQL queries

This commit is contained in:
sairajzero 2023-03-11 05:08:11 +05:30
parent 4a0b71d3d7
commit 586c2375fd
3 changed files with 10 additions and 8 deletions

View File

@ -219,11 +219,11 @@ function cancelOrder(type, id, floID) {
function getAccountDetails(floID) {
return new Promise((resolve, reject) => {
let select = [];
select.push(["token, quantity", "UserBalance"]);
select.push(["id, asset, quantity, minPrice, time_placed", "SellOrder"]);
select.push(["id, asset, quantity, maxPrice, time_placed", "BuyOrder"]);
let promises = select.map(a => DB.query(`SELECT ${a[0]} FROM ${a[1]} WHERE floID=? ${a[2] || ""}`, [floID]));
let promises = [
DB.query("SELECT token, quantity FROM UserBalance WHERE floID=?", [floID]),
DB.query("SELECT id, asset, quantity, minPrice, time_placed FROM SellOrder WHERE floID=?", [floID]),
DB.query("SELECT id, asset, quantity, maxPrice, time_placed FROM BuyOrder WHERE floID=?", [floID])
];
Promise.allSettled(promises).then(results => {
let response = {
floID: floID,

View File

@ -48,7 +48,7 @@ function getPastRate(asset, hrs = 24) {
});
}
function getHistory(asset, duration) {
function getHistory(asset, duration = '') {
return new Promise((resolve, reject) => {
duration = getHistory.validateDuration(duration);
let statement = "SELECT " +
@ -56,7 +56,7 @@ function getHistory(asset, duration) {
" FROM PriceHistory WHERE asset=?" + (duration ? " AND rec_time >= NOW() - INTERVAL " + duration : "") +
(!duration || duration.endsWith("month") || duration.endsWith("year") ? " GROUP BY time" : "") +
" ORDER BY time";
DB.query(statement, asset)
DB.query(statement, [asset])
.then(result => resolve(result))
.catch(error => reject(error))
});

View File

@ -221,7 +221,9 @@ function refreshBlockchainData(nodeList = []) {
let values = [fund_id, fund.start_date, fund.BTC_base, fund.USD_base, fund.fee, fund.duration];
if (fund.tapoutInterval)
values.push(fund.topoutWindow, fund.tapoutInterval.join(','));
txQueries.push([`INSERT INTO BobsFund(fund_id, begin_date, btc_base, usd_base, fee, duration ${fund.tapoutInterval ? ", tapout_window, tapout_interval" : ""}) VALUE (?) ON DUPLICATE KEY UPDATE fund_id=fund_id`, [values]])
else
values.push(null, null);
txQueries.push(["INSERT INTO BobsFund(fund_id, begin_date, btc_base, usd_base, fee, duration, tapout_window, tapout_interval) VALUE (?) ON DUPLICATE KEY UPDATE fund_id=fund_id", [values]])
} else
fund_id = fund_id.pop().match(/[a-z0-9]{64}/).pop();
let investments = Object.entries(fund.investments).map(a => [fund_id, a[0], a[1].amount]);