JSFiddle - React, Tailwind, and code Playground
JavaScript
var dbParams = [];
var paramsIndex = 1;
var start = true;
var dbQuery = `SELECT
g.*,
row_to_json(gi.*) as gallery_information,
row_to_json(gl.*) as gallery_limit,
sum(mua_count)
FROM gallery g
LEFT JOIN gallery_information gi ON gi.gallery_id = g.id
LEFT JOIN gallery_limit gl ON gl.gallery_id = g.id
LEFT JOIN "user" u ON u.id = g.create_by_user_id
LEFT JOIN category_gallery cg ON cg.gallery_id = g.id
LEFT JOIN category c ON c.id = cg.category_id`;
if (request.data.query.sort == 'like') {
}
if (request.data.query.sort == 'visit') {
// dbQuery += `
// LEFT JOIN (
// SELECT
// id,
// COUNT(*) as mt_count
// FROM monitor_traffic
// WHERE endpoint_code = 1
// GROUP BY id
// ) mt ON mt.id = g.id`;
// sum media traffic
// dbQuery += `
// LEFT JOIN gallery_media gm ON gm.gallery_id = g.id
// LEFT JOIN (
// SELECT
// id,
// COUNT(*) as mt_count
// FROM monitor_traffic
// WHERE endpoint_code = 2
// GROUP BY id
// ) mt ON mt.id = gm.media_id`;
}
if (typeof request.data.query.keyword != 'undefined') {
dbQuery += `
WHERE gi.name LIKE $` + paramsIndex + `
OR gi.description LIKE $` + paramsIndex;
paramsIndex++;
dbParams.push('%' + request.data.query.keyword + '%');
}
if (typeof request.data.query.status != 'undefined') {
if (!start) { dbQuery += ' AND'; } else { dbQuery += ' WHERE'; }
if (start) { start = false; }
dbQuery += ` g.status = $` + paramsIndex + `
AND u.status = $` + paramsIndex + `
AND c.status = $` + paramsIndex;
paramsIndex++;
dbParams.push(request.data.query.status);
}
if (request.data.query.sort == 'like') {
} else if (request.data.query.sort == 'visit') {
// dbQuery += `
// ORDER BY mt.mt_count`;
dbQuery += `
ORDER BY g.id`;
} else if (request.data.query.sort == 'name') {
dbQuery += `
ORDER BY gi.name`;
} else {
dbQuery += `
ORDER BY g.id`;
}
dbQuery...