const Product = require('../models/Product'); const { Op } = require('sequelize'); // 获取商品列表 const getProductList = async (req, res) => { try { // 从查询参数获取分页信息 const page = parseInt(req.query.page) || 1; const limit = parseInt(req.query.limit) || 10; const offset = (page - 1) * limit; // 查询条件 const whereClause = {}; if (req.query.category) { whereClause.category = req.query.category; } if (req.query.status !== undefined) { whereClause.status = req.query.status; } if (req.query.name) { whereClause.name = { [Op.like]: `%${req.query.name}%` }; } // 查询商品列表 const { count, rows } = await Product.findAndCountAll({ where: whereClause, limit: limit, offset: offset, order: [['created_at', 'DESC']] }); return res.status(200).json({ code: 200, msg: '获取商品列表成功', data: { products: rows, pagination: { currentPage: page, totalPages: Math.ceil(count / limit), totalItems: count, itemsPerPage: limit } } }); } catch (error) { return res.status(500).json({ code: 500, msg: '获取商品列表失败', error: error.message }); } }; // 获取单个商品详情 const getProductDetail = async (req, res) => { try { const { id } = req.params; const product = await Product.findByPk(id); if (!product) { return res.status(404).json({ code: 404, msg: '商品不存在' }); } return res.status(200).json({ code: 200, msg: '获取商品详情成功', data: product }); } catch (error) { return res.status(500).json({ code: 500, msg: '获取商品详情失败', error: error.message }); } }; module.exports = { getProductList, getProductDetail };