Select Git revision
order.js 5.29 KiB
const express = require('express');
const router = express.Router();
const pool = require('../config/database');
// Middleware ตรวจสอบการ Login
function isAuthenticated(req, res, next) {
if (req.session && req.session.user) {
return next(); // ถ้า Login แล้วให้ไปต่อ
} else {
res.redirect('/login'); // ถ้ายังไม่ได้ Login ให้ Redirect ไปที่หน้า Login
}
}
// แสดงประวัติออเดอร์ (เฉพาะผู้ที่ Login)
router.get('/history', isAuthenticated, async (req, res) => {
try {
const [orders] = await pool.query(
`SELECT
orders.id,
orders.total_amount,
orders.status,
orders.shipping_address,
orders.created_at,
GROUP_CONCAT(
CONCAT(
products.name, ' x ', order_items.quantity, ' (฿', order_items.price, ')'
) SEPARATOR ', '
) as items_detail
FROM orders
JOIN order_items ON orders.id = order_items.order_id
JOIN products ON order_items.product_id = products.id
WHERE orders.session_id = ?
GROUP BY orders.id
ORDER BY orders.created_at DESC`,
[req.session.id]
);
res.render('order-history', { orders });
} catch (error) {
console.error(error);
res.status(500).send('Error fetching order history');
}
});
// ดูรายละเอียดออเดอร์ (เฉพาะผู้ที่ Login)
router.get('/detail/:orderId', async (req, res) => { // ปิด isAuthenticated ชั่วคราว
console.log("Session ID:", req.session.id); // Debug Session ID
try {
const [orders] = await pool.query(
'SELECT * FROM orders WHERE id = ? AND session_id = ?',
[req.params.orderId, req.session.id]
);
console.log("Orders:", orders); // Debug Orders Query
if (orders.length === 0) {
return res.status(404).send('Order not found');
}
const order = orders[0];
const [items] = await pool.query(
`SELECT order_items.*, products.name, products.image_url
FROM order_items
JOIN products ON order_items.product_id = products.id
WHERE order_items.order_id = ?`,
[req.params.orderId]
);