Select Git revision
order.js 9.04 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
}
}
router.use((req, res, next) => {
console.log("🔹 Session ID:", req.session.id);
console.log("🔹 Session Data:", req.session);
next();
});
// แสดงประวัติออเดอร์ (เฉพาะผู้ที่ Login)
router.get('/history', isAuthenticated, async (req, res) => {
if (!req.session.id) {
return res.status(400).json({ message: "Session ID not found. Please login again." });
}
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('/order-details/:orderId', isAuthenticated, async (req, res) => {
try {
if (!req.session.id) {
return res.status(400).json({ message: "Session ID not found. Please login again." });
}
const { orderId } = req.params;
console.log(`🔹 Fetching order ID: ${orderId}, Session ID: ${req.session.id}`);
// ดึงข้อมูลคำสั่งซื้อ
const [orderResults] = await pool.query(
`SELECT id, total_amount, status, shipping_address, created_at
FROM orders WHERE id = ? AND session_id = ?`,
[orderId, req.session.id]
);
if (orderResults.length === 0) {