备份:修复前完整项目快照 2026-04-19
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
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);
|
||||
};
|
||||
Reference in New Issue
Block a user