Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • f778f2cfa1cfb2541ae96e4dfb5e85f8b07f6895
  • main default protected
  • master
3 results

order.js

Blame
  • 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) {