const { query } = require('../config/database') async function getSuppliers(ctx) { let sql = 'SELECT * FROM suppliers WHERE 1=1' const params = [] if (ctx.query.keyword) { sql += ' AND (name LIKE ? OR contact LIKE ? OR phone LIKE ?)' params.push(`%${ctx.query.keyword}%`, `%${ctx.query.keyword}%`, `%${ctx.query.keyword}%`) } sql += ' ORDER BY id DESC' const suppliers = await query(sql, params) ctx.body = { code: 200, data: suppliers } } async function getSupplierById(ctx) { const id = parseInt(ctx.params.id) const suppliers = await query('SELECT * FROM suppliers WHERE id = ?', [id]) if (suppliers.length > 0) { ctx.body = { code: 200, data: suppliers[0] } } else { ctx.body = { code: 404, message: '供应商不存在' } } } async function createSupplier(ctx) { const { name, contact, phone, address } = ctx.request.body if (!name) { ctx.body = { code: 400, message: '请输入供应商名称' } return } const result = await query( 'INSERT INTO suppliers (name, contact, phone, address) VALUES (?, ?, ?, ?)', [name, contact || '', phone || '', address || ''] ) ctx.body = { code: 200, message: '添加成功', data: { id: result.insertId } } } async function updateSupplier(ctx) { const id = parseInt(ctx.params.id) const { name, contact, phone, address } = ctx.request.body if (!name) { ctx.body = { code: 400, message: '请输入供应商名称' } return } const result = await query( 'UPDATE suppliers SET name = ?, contact = ?, phone = ?, address = ? WHERE id = ?', [name, contact || '', phone || '', address || '', id] ) if (result.affectedRows > 0) { ctx.body = { code: 200, message: '更新成功' } } else { ctx.body = { code: 404, message: '供应商不存在' } } } async function deleteSupplier(ctx) { const id = parseInt(ctx.params.id) try { const result = await query('DELETE FROM suppliers WHERE id = ?', [id]) if (result.affectedRows > 0) { ctx.body = { code: 200, message: '删除成功' } } else { ctx.body = { code: 404, message: '供应商不存在' } } } catch (error) { console.error('删除供应商失败:', error) ctx.body = { code: 500, message: '删除失败' } } } module.exports = { getSuppliers, getSupplierById, createSupplier, updateSupplier, deleteSupplier }