/
Cooolprogrammers
/
web-nodejs-labs
Обзор
Документация
Войти
/
Cooolprogrammers
/
web-nodejs-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
backend/src/services/lab10/task1.service.js
68 строк
1 KB
darkvoid6@mail.ru
ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
18 дек 2025, 07:59
18 дек 2025, 07:59
f2c4f06
Код
Авторство
О чём код?
// backend/src/services/lab10/task1.service.js class Task1Service { async getProductById(db, id) { const query = ` SELECT p.*, c.name AS category_title FROM lab10.products p LEFT JOIN lab10.categories c ON p.category_id = c.id WHERE p.id = $1 `; const { rows } = await db.query(query, [id]); return rows[0] || null; } async getOrderById(db, orderId) { const orderRes = await db.query( `SELECT id, created_at FROM lab10.orders WHERE id = $1`, [orderId] ); if (orderRes.rows.length === 0) return null; const order = orderRes.rows[0]; const itemsRes = await db.query(` SELECT oi.title, oi.price, oi.quantity, oi.total_price FROM lab10.order_items oi WHERE oi.order_id = $1 ORDER BY oi.id `, [orderId]); const totalAmount = itemsRes.rows.reduce((sum, item) => sum + (item.total_price || 0), 0); return { id: order.id, created_at: order.created_at, items: itemsRes.rows, total_amount: totalAmount }; } async getAllOrders(db) { const query = ` SELECT o.id, o.created_at, COALESCE(SUM(oi.total_price), 0) AS total_amount FROM lab10.orders o LEFT JOIN lab10.order_items oi ON o.id = oi.order_id GROUP BY o.id ORDER BY o.created_at DESC `; const { rows } = await db.query(query); return rows; } } export default new Task1Service();