51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
|
|
const express = require('express');
|
||
|
|
const router = express.Router();
|
||
|
|
const { getDB } = require('../database');
|
||
|
|
const { auth } = require('../middleware/auth');
|
||
|
|
|
||
|
|
|
||
|
|
router.get('/', auth, async (req, res) => {
|
||
|
|
try {
|
||
|
|
const db = getDB();
|
||
|
|
const query = `
|
||
|
|
SELECT * FROM coupon_products where remain > 0
|
||
|
|
`
|
||
|
|
const [coupon] = await db.query(query);
|
||
|
|
|
||
|
|
if (coupon.length === 0) {
|
||
|
|
res.json({ error: '暂无优惠券' });
|
||
|
|
}
|
||
|
|
|
||
|
|
res.json({coupon, success: true});
|
||
|
|
} catch (error) {
|
||
|
|
res.status(500).json({ error: '获取优惠券失败' });
|
||
|
|
}
|
||
|
|
});
|
||
|
|
router.get('/:id', auth, async (req, res) => {
|
||
|
|
try {
|
||
|
|
const userId = req.params.id;
|
||
|
|
const db = getDB();
|
||
|
|
const query = `
|
||
|
|
SELECT * FROM coupon_products where remain > 0
|
||
|
|
`
|
||
|
|
const [coupon] = await db.query(query);
|
||
|
|
|
||
|
|
if (coupon.length === 0) {
|
||
|
|
return res.status(404).json({ error: '暂无优惠券' });
|
||
|
|
} else {
|
||
|
|
const query = [`
|
||
|
|
update coupon_products set remain = remain - 1 where id = ?
|
||
|
|
`,`
|
||
|
|
insert into coupon_use (user_id, coupon_id, get_time) values (?, ?, now())
|
||
|
|
`]
|
||
|
|
await db.query(query[0], [coupon[0].id]);
|
||
|
|
await db.query(query[1], [userId, coupon[0].id]);
|
||
|
|
}
|
||
|
|
|
||
|
|
res.json({coupon, success: true});
|
||
|
|
} catch (error) {
|
||
|
|
res.status(500).json({ error: '获取优惠券失败' });
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
module.exports = router;
|