| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import express from 'express';
- const router = express.Router();
- // GET /api/order — 查询订单列表
- router.get('/', async (req, res) => {
- try {
- const Parse = (globalThis as any).Parse;
- const q = new Parse.Query('Order');
- q.notEqualTo('isDeleted', true);
- q.descending('createdAt');
- q.limit(100);
- const { status, search } = req.query;
- if (status && status !== 'all') {
- q.equalTo('status', status);
- }
- if (search) {
- q.contains('customerName', search as string);
- }
- const list = await q.find({ useMasterKey: true });
- const data = list.map((o: any) => o.toJSON());
- res.json({ success: true, data });
- } catch (e: any) {
- res.status(500).json({ success: false, error: e.message });
- }
- });
- // GET /api/order/:id — 查询单个订单
- router.get('/:id', async (req, res) => {
- try {
- const Parse = (globalThis as any).Parse;
- const q = new Parse.Query('Order');
- q.equalTo('objectId', req.params.id);
- const order = await q.first({ useMasterKey: true });
- if (!order) {
- return res.status(404).json({ success: false, error: '订单不存在' });
- }
- res.json({ success: true, data: order.toJSON() });
- } catch (e: any) {
- res.status(500).json({ success: false, error: e.message });
- }
- });
- // POST /api/order — 创建/更新订单
- router.post('/', async (req, res) => {
- try {
- const Parse = (globalThis as any).Parse;
- const { objectId, ...fields } = req.body;
- let obj: any;
- if (objectId) {
- // 更新已有订单
- const q = new Parse.Query('Order');
- obj = await q.get(objectId, { useMasterKey: true });
- } else {
- // 创建新订单
- const Order = Parse.Object.extend('Order');
- obj = new Order();
- }
- // 设置字段
- Object.entries(fields).forEach(([key, value]) => {
- obj.set(key, value);
- });
- if (!objectId) {
- obj.set('isDeleted', false);
- }
- const saved = await obj.save(null, { useMasterKey: true });
- res.json({ success: true, data: saved.toJSON() });
- } catch (e: any) {
- res.status(500).json({ success: false, error: e.message });
- }
- });
- export default router;
|