const express = require('express'); const router = express.Router(); const Customer = require('../models/Customer'); // 获取所有客户 router.get('/', async (req, res) => { try { const customers = await Customer.find(); res.json({ success: true, data: customers }); } catch (error) { res.status(500).json({ success: false, message: error.message }); } }); // 获取单个客户 router.get('/:id', async (req, res) => { try { const customer = await Customer.findById(req.params.id); if (!customer) { return res.status(404).json({ success: false, message: '客户不存在' }); } res.json({ success: true, data: customer }); } catch (error) { res.status(500).json({ success: false, message: error.message }); } }); // 创建客户 router.post('/', async (req, res) => { try { const customer = new Customer(req.body); await customer.save(); res.status(201).json({ success: true, data: customer }); } catch (error) { res.status(400).json({ success: false, message: error.message }); } }); // 更新客户 router.put('/:id', async (req, res) => { try { const customer = await Customer.findByIdAndUpdate( req.params.id, req.body, { new: true, runValidators: true } ); if (!customer) { return res.status(404).json({ success: false, message: '客户不存在' }); } res.json({ success: true, data: customer }); } catch (error) { res.status(400).json({ success: false, message: error.message }); } }); // 删除客户 router.delete('/:id', async (req, res) => { try { const customer = await Customer.findByIdAndDelete(req.params.id); if (!customer) { return res.status(404).json({ success: false, message: '客户不存在' }); } res.json({ success: true, message: '客户已删除' }); } catch (error) { res.status(500).json({ success: false, message: error.message }); } }); // 搜索客户 router.get('/search/:keyword', async (req, res) => { try { const keyword = req.params.keyword; const customers = await Customer.find({ $or: [ { name: { $regex: keyword, $options: 'i' } }, { phone: { $regex: keyword, $options: 'i' } }, { customerId: { $regex: keyword, $options: 'i' } } ] }); res.json({ success: true, data: customers }); } catch (error) { res.status(500).json({ success: false, message: error.message }); } }); // 更新客户信用评分 router.patch('/:id/credit', async (req, res) => { try { const { creditScore } = req.body; let creditLevel = '优秀'; if (creditScore < 60) creditLevel = '较差'; else if (creditScore < 80) creditLevel = '一般'; else if (creditScore < 90) creditLevel = '良好'; const customer = await Customer.findByIdAndUpdate( req.params.id, { creditScore, creditLevel }, { new: true } ); if (!customer) { return res.status(404).json({ success: false, message: '客户不存在' }); } res.json({ success: true, data: customer }); } catch (error) { res.status(400).json({ success: false, message: error.message }); } }); module.exports = router;