const express = require('express'); const router = express.Router(); const { getDB } = require('../database'); router.get('/', async (req, res) => { try { const useId = req.query.user_id; const db = getDB(); const query = ` SELECT * FROM coupon_products ` const [coupon] = await db.query(query); if (coupon.length === 0) { res.json({ message: '暂无优惠券' }); } for(const item of coupon) { const query = ` SELECT * FROM coupon_use WHERE user_id = ? AND coupon_id = ? ` const [couponExist] = await db.query(query, [useId, item.id]); if (couponExist.length === 0) { item.got = false; } else { item.got = true; } } res.json({coupon, success: true}); } catch (error) { res.status(500).json({ error: '获取优惠券失败' }); } }); router.get('/:id', async (req, res) => { try { const db = getDB(); const userId = req.params.id; const receiveCouponId = req.query.coupon_id; const query = ` SELECT * FROM coupon_use WHERE user_id = ? AND coupon_id = ? ` const [couponExist] = await db.query(query, [userId, receiveCouponId]); if (couponExist.length === 0) { const insertQuery = ` INSERT INTO coupon_use (user_id, coupon_id, get_time) VALUES (?, ?, now()) ` await db.query(insertQuery, [userId, receiveCouponId]); const updateQuery = ` UPDATE coupon_products SET remain = remain - 1 WHERE id = ? ` await db.query(updateQuery, [receiveCouponId]); } else { return res.status(500).json({ error: '已有该优惠券' }); } res.json({success: true}); } catch (error) { console.log(error); res.status(500).json({ error: '获取优惠券失败' }); } }); router.get('/user/:id', async (req, res) => { try { const db = getDB(); const userId = req.params.id; const query = ` SELECT * FROM coupon_use WHERE user_id = ? ` const [coupon] = await db.query(query, [userId]); for (const item of coupon) { const query = ` SELECT * FROM coupon_products WHERE id = ? ` const [couponInfo] = await db.query(query, [item.coupon_id]); item.couponInfo = couponInfo[0]; item.couponInfo.products = []; for (const product of item.couponInfo.products_id) { const query = ` SELECT name FROM products WHERE id = ? ` const [productInfo] = await db.query(query, [product]); item.couponInfo.products.push(productInfo[0]); } } res.json({success: true, coupon}); } catch (error) { console.log(error); res.status(500).json({ error: '加载优惠券失败' }); } }) module.exports = router;