const express = require('express'); const router = express.Router(); const Rider = require('../models/Rider'); const Order = require('../models/Order'); // 骑手登录 router.post('/login', async (req, res) => { try { const { phone, password } = req.body; if (!phone || !password) { return res.status(400).json({ success: false, message: '手机号和密码不能为空' }); } const rider = await Rider.findOne({ phone, password }); if (!rider) { return res.status(401).json({ success: false, message: '手机号或密码错误' }); } // 简单生成一个token(实际生产应使用 JWT) const token = Buffer.from(`${rider._id}:${Date.now()}`).toString('base64'); res.json({ success: true, data: { id: rider._id, riderId: rider.riderId, name: rider.name, phone: rider.phone, status: rider.status, rating: rider.rating, totalOrders: rider.totalOrders, totalIncome: rider.totalIncome, token } }); } catch (error) { res.status(500).json({ success: false, message: error.message }); } }); // 获取骑手信息 router.get('/:id', async (req, res) => { try { const rider = await Rider.findById(req.params.id); if (!rider) { return res.status(404).json({ success: false, message: '骑手不存在' }); } res.json({ success: true, data: rider }); } catch (error) { res.status(500).json({ success: false, message: error.message }); } }); // 更新骑手信息(如状态切换) router.put('/:id', async (req, res) => { try { const rider = await Rider.findByIdAndUpdate( req.params.id, req.body, { new: true, runValidators: true } ); if (!rider) { return res.status(404).json({ success: false, message: '骑手不存在' }); } res.json({ success: true, data: rider }); } catch (error) { res.status(400).json({ success: false, message: error.message }); } }); // 获取骑手的订单 router.get('/:id/orders', async (req, res) => { try { const orders = await Order.find({ rider: req.params.id }) .populate('customer', 'name phone') .populate('vehicle', 'vehicleId model color') .sort({ createdAt: -1 }); res.json({ success: true, data: orders }); } catch (error) { res.status(500).json({ success: false, message: error.message }); } }); module.exports = router;