Gitlab@Informatics

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

order.js

Blame
  • 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]
            );