接口调整
This commit is contained in:
49
routes/auth.js
Normal file
49
routes/auth.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const express = require('express');
|
||||
const bcrypt = require('bcryptjs');
|
||||
const jwt = require('jsonwebtoken');
|
||||
const {getDB} = require('../database');
|
||||
|
||||
const router = express.Router();
|
||||
const JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key';
|
||||
|
||||
|
||||
// 验证token中间件
|
||||
const authenticateToken = (req, res, next) => {
|
||||
const authHeader = req.headers['authorization'];
|
||||
const token = authHeader && authHeader.split(' ')[1];
|
||||
|
||||
if (!token) {
|
||||
return res.status(401).json({success: false, message: '访问令牌缺失'});
|
||||
}
|
||||
|
||||
jwt.verify(token, JWT_SECRET, (err, user) => {
|
||||
if (err) {
|
||||
return res.status(403).json({success: false, message: '访问令牌无效'});
|
||||
}
|
||||
req.user = user;
|
||||
next();
|
||||
});
|
||||
};
|
||||
|
||||
// 获取当前用户信息
|
||||
router.get('/me', authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const db = getDB();
|
||||
const [users] = await db.execute(
|
||||
'SELECT id, username, role, avatar, points, created_at FROM users WHERE id = ?',
|
||||
[req.user.userId]
|
||||
);
|
||||
|
||||
if (users.length === 0) {
|
||||
return res.status(404).json({success: false, message: '用户不存在'});
|
||||
}
|
||||
|
||||
res.json({success: true, user: users[0]});
|
||||
} catch (error) {
|
||||
console.error('获取用户信息错误:', error);
|
||||
res.status(500).json({success: false, message: '获取用户信息失败'});
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
module.exports.authenticateToken = authenticateToken;
|
||||
@@ -25,10 +25,9 @@ router.get('/', auth, async (req, res) => {
|
||||
const total = countResult[0].total;
|
||||
console.log(total, '数量');
|
||||
|
||||
// 获取订单列表
|
||||
const query = `
|
||||
SELECT
|
||||
c.id, c.products_id, price, count, type, discount, for_a_amount
|
||||
c.id, c.products_id, price, count, type, discount, for_a_amount, precent
|
||||
FROM coupon_products as c
|
||||
${whereClause}
|
||||
ORDER BY c.id DESC
|
||||
@@ -48,9 +47,21 @@ router.get('/', auth, async (req, res) => {
|
||||
}
|
||||
item.products_name = product_name;
|
||||
}
|
||||
res.json({ success: true, data: couponProducts[0] });
|
||||
res.json({
|
||||
success: true,
|
||||
data: couponProducts[0],
|
||||
pagination: {
|
||||
page: pageNum,
|
||||
limit: limitNum,
|
||||
total,
|
||||
pages: Math.ceil(total / limitNum)
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({ success: false, error: error.message });
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -64,9 +75,10 @@ router.post('/', auth, async (req, res) => {
|
||||
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]
|
||||
for_a_amount,
|
||||
precent
|
||||
) VALUES (?,?,?,?,?,?,?)`,
|
||||
[JSON.stringify(req.body.products_id), req.body.price, req.body.count, req.body.type, req.body.discount, req.body.for_a_amount, req.body.precent]
|
||||
);
|
||||
res.json({ success: true, data: couponProduct[0] });
|
||||
} catch (error) {
|
||||
|
||||
@@ -43,7 +43,7 @@ router.get('/', async (req, res) => {
|
||||
|
||||
// 获取商品列表
|
||||
const query = `
|
||||
SELECT id, name, rongdou_price, category, points_price, stock, image_url as image, description, status, payment_methods, created_at, updated_at
|
||||
SELECT id, name, rongdou_price, category, points_price, stock, image_url as image, description, status, payment_methods, created_at, updated_at, sales
|
||||
FROM products
|
||||
${whereClause}
|
||||
ORDER BY created_at DESC
|
||||
|
||||
@@ -80,6 +80,20 @@ router.get('/flash-products', auth, async (req, res) => {
|
||||
const queryParams = [...params];
|
||||
console.log('Query params:', queryParams, 'Query:', query);
|
||||
const [flashProducts] = await getDB().execute(query, queryParams);
|
||||
|
||||
|
||||
// 处理商品详情
|
||||
for (const item of flashProducts) {
|
||||
const productQuery = `
|
||||
SELECT *
|
||||
FROM products
|
||||
WHERE id = ?
|
||||
`;
|
||||
const [product] = await getDB().execute(productQuery, [item.products_id]);
|
||||
item.product_name = product[0].name
|
||||
item.product_price = product[0].price
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
@@ -209,8 +223,9 @@ router.get('/recommend-products', auth, async (req, res) => {
|
||||
}
|
||||
|
||||
// 获取总数
|
||||
const countQuery = `SELECT COUNT(*) as total FROM flash_product ${whereClause}`;
|
||||
const countQuery = `SELECT COUNT(*) as total FROM recommend_product ${whereClause}`;
|
||||
const [countResult] = await getDB().execute(countQuery, params);
|
||||
console.log('countResult:', countResult);
|
||||
const total = countResult[0].total;
|
||||
|
||||
// 获取商品列表
|
||||
@@ -224,8 +239,19 @@ router.get('/recommend-products', auth, async (req, res) => {
|
||||
|
||||
// 确保参数数组正确传递
|
||||
const queryParams = [...params];
|
||||
console.log('Query params:', queryParams, 'Query:', query);
|
||||
const [recommendProducts] = await getDB().execute(query, queryParams);
|
||||
|
||||
// 处理商品详情
|
||||
for (const item of recommendProducts) {
|
||||
const productQuery = `
|
||||
SELECT *
|
||||
FROM products
|
||||
WHERE id = ?
|
||||
`;
|
||||
const [product] = await getDB().execute(productQuery, [item.products_id]);
|
||||
item.product_detail = product[0];
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
|
||||
Reference in New Issue
Block a user