const express = require('express'); const db = require('../db-sqlite'); const { authenticate } = require('../middleware/auth'); module.exports = function(app) { const router = express.Router(); router.get('/', authenticate, async (req, res) => { try { const customersResult = await db.query('SELECT id, name, contact_person, contact_phone, address, created_at, updated_at FROM customers'); const customers = customersResult.rows; res.json({ success: true, data: customers, count: customers.length }); } catch (error) { console.error('获取客户列表失败:', error); res.status(500).json({ success: false, message: '获取客户列表失败' }); } }); router.get('/:id', authenticate, async (req, res) => { try { const { id } = req.params; const customerResult = await db.query('SELECT id, name, contact_person, contact_phone, address, created_at, updated_at FROM customers WHERE id = ?', [id]); if (customerResult.rows.length === 0) { return res.status(404).404.json({ success: false, message: '客户不存在' }); } const customer = customerResult.rows[0]; res.json({ success: true, data: customer }); } catch (error) { console.error('获取客户详情失败:', error); res.status(500).json({ success: false, message: '获取客户详情失败' }); } }); router.post('/', authenticate, async (req, res) => { try { const { name, contact_person, contact_phone, address } = req.body; if (!name) { return res.status(400).json({ success: false, message: '客户名称为必填项' }); } const result = await db.query( 'INSERT INTO customers (name, contact_person, contact_phone, address, created_at, updated_at) VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)', [name, contact_person || '', contact_phone || '', address || ''] ); const newCustomerResult = await db.query('SELECT id, name, contact_person, contact_phone, address, created_at, updated_at FROM customers WHERE id = ?', [result.lastID]); const newCustomer = newCustomerResult.rows[0]; console.log(`客户 ${name} 创建成功,由 ${req.user.username} 操作`); res.json({ success: true, data: newCustomer }); } catch (error) { console.error('创建客户失败:', error); res.status(500).json({ success: false, message: '创建客户失败' }); } }); router.put('/:id', authenticate, async (req, res) => { try { const { id } = req.params; const { name, contact_person, contact_phone, address } = req.body; await db.query( 'UPDATE customers SET name = ?, contact_person = ?, contact_phone = ?, address = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?', [name, contact_person, contact_phone, address, id] ); const updatedCustomerResult = await db.query('SELECT id, name, contact_person, contact_phone, address, created_at, updated_at FROM customers WHERE id = ?', [id]); const updatedCustomer = updatedCustomerResult.rows[0]; res.json({ success: true, data: updatedCustomer }); } catch (error) { console.error('更新客户信息失败:', error); res.status(500).json({ success: false, message: '更新客户信息失败' }); } }); router.delete('/:id', authenticate, async (req, res) => { try { const { id } = req.params; const existingCustomer = await db.query('SELECT id FROM customers WHERE id = ?', [id]); if (existingCustomer.rows.length === 0) { return res.status(404).404.json({ success: false, message: '客户不存在' }); }); await db.query('DELETE FROM customers WHERE id = ?', [id]); res.json({ success: true, message: '客户删除成功' }); } catch (error) { console.error('删除客户失败:', error); res.status(500).json({ success: false, message: '删除客户失败' }); } }); app.use('/api/customers', router); };