From 94038d314e8720f4475fc1473566541d8a4ef509 Mon Sep 17 00:00:00 2001 From: dzl <786316265@qq.com> Date: Sun, 28 Sep 2025 17:28:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/couponproducts.js | 92 ++++++++++++++++++++++++++++++++++++++++ server.js | 2 + 2 files changed, 94 insertions(+) create mode 100644 routes/couponproducts.js diff --git a/routes/couponproducts.js b/routes/couponproducts.js new file mode 100644 index 0000000..d3cc167 --- /dev/null +++ b/routes/couponproducts.js @@ -0,0 +1,92 @@ +const express = require('express'); +const router = express.Router(); +const { auth } = require('../middleware/auth'); +const { getDB } = require('../database'); + +router.get('/', auth, async (req, res) => { + try { + const { page = 1, limit = 10 } = req.query; + const pageNum = parseInt(page) || 1; + const limitNum = parseInt(limit) || 10; + const offset = (pageNum - 1) * limitNum; + + let whereClause = 'WHERE 1=1'; + const params = []; + + + const countQuery = ` + SELECT COUNT(*) as total + FROM coupon_products as c + ${whereClause} + `; + console.log(countQuery, params); + + const [countResult] = await getDB().execute(countQuery, params); + const total = countResult[0].total; + console.log(total, '数量'); + + // 获取订单列表 + const query = ` + SELECT + c.id, c.products_id, price, count, type, discount, for_a_amount + FROM coupon_products as c + ${whereClause} + ORDER BY c.id DESC + LIMIT ${limitNum} OFFSET ${offset} + `; + const couponProducts = await getDB().execute(query, [...params]); + for(let item of couponProducts[0]){ + const product_name = [] + for(id of item.products_id){ + const query = ` + SELECT id, name, price, category, description, stock, image_url + FROM products + WHERE id = ? + `; + const product = await getDB().execute(query, [id]); + product_name.push(product[0][0].name) + } + item.products_name = product_name; + } + res.json({ success: true, data: couponProducts[0] }); + } catch (error) { + res.status(500).json({ success: false, error: error.message }); + } +}); + +router.post('/', auth, async (req, res) => { + try { + const db = getDB(); + const couponProduct = await db.query( + `INSERT INTO coupon_products ( + products_id, + price, + count, + type, + discount, + for_a_amount + ) VALUES (?,?,?,?,?,?)`, + [JSON.stringify(req.body.products_id), req.body.price, req.body.count, req.body.type, req.body.discount, req.body.for_a_amount] + ); + res.json({ success: true, data: couponProduct[0] }); + } catch (error) { + res.status(500).json({ success: false, error: error.message }); + } +}); + +router.delete('/:id', auth, async (req, res) => { + try { + const db = getDB(); + const couponProduct = await db.query( + `DELETE FROM coupon_products WHERE id = ?`, + [req.params.id] + ); + res.json({ success: true, data: couponProduct[0] }); + } catch (error) { + res.status(500).json({ success: false, error: error.message }); + } +}); + + + +module.exports = router; diff --git a/server.js b/server.js index fe047e7..60c8362 100644 --- a/server.js +++ b/server.js @@ -102,6 +102,8 @@ app.use('/products', require('./routes/products')) app.use('/supplier',require('./routes/supplier')) //规格处理 app.use('/specifications', require('./routes/specifications')); +// 优惠券商品接口 +app.use('/couponproducts', require('./routes/couponproducts')); // 404处理 app.use(notFound);