import express from 'express'; const router = express.Router(); // GET /api/store — 获取门店列表 router.get('/', async (_req, res) => { try { const Parse = (globalThis as any).Parse; const q = new Parse.Query('StoreConfig'); q.ascending('code'); q.limit(100); const list = await q.find({ useMasterKey: true }); const data = list.map((s: any) => ({ id: s.id, name: s.get('name'), code: s.get('code'), })); res.json(data); } catch (e: any) { // 如果 StoreConfig 表还不存在,返回默认列表 res.json([ { id: 's01', name: '真北北馆一队', code: 'ZB1' }, { id: 's02', name: '真北北馆二队', code: 'ZB2' }, { id: 's03', name: '真北南馆一队', code: 'ZN1' }, { id: 's04', name: '真北南馆二队', code: 'ZN2' }, { id: 's05', name: '浦东一队', code: 'PD1' }, { id: 's06', name: '浦东二队', code: 'PD2' }, { id: 's07', name: '徐汇一队', code: 'XH1' }, { id: 's08', name: '徐汇二队', code: 'XH2' }, { id: 's09', name: '闵行一队', code: 'MH1' }, { id: 's10', name: '闵行二队', code: 'MH2' }, { id: 's11', name: '杨浦一队', code: 'YP1' }, { id: 's12', name: '杨浦二队', code: 'YP2' }, { id: 's13', name: '长宁一队', code: 'CN1' }, { id: 's14', name: '长宁二队', code: 'CN2' }, { id: 's15', name: '虹口一队', code: 'HK1' }, { id: 's16', name: '虹口二队', code: 'HK2' }, { id: 's17', name: '松江一队', code: 'SJ1' }, { id: 's18', name: '松江二队', code: 'SJ2' }, { id: 's19', name: '家装渠道部', code: 'JZ1' }, ]); } }); // POST /api/store — 新增门店 router.post('/', async (req, res) => { try { const Parse = (globalThis as any).Parse; const { name, code } = req.body; if (!name || !code) { return res.status(400).json({ success: false, error: 'name 和 code 不能为空' }); } const StoreConfig = Parse.Object.extend('StoreConfig'); const obj = new StoreConfig(); obj.set('name', name); obj.set('code', code); const saved = await obj.save(null, { useMasterKey: true }); res.json({ success: true, data: { id: saved.id, name, code } }); } catch (e: any) { res.status(500).json({ success: false, error: e.message }); } }); // PUT /api/store/:id — 更新门店 router.put('/:id', async (req, res) => { try { const Parse = (globalThis as any).Parse; const q = new Parse.Query('StoreConfig'); const obj = await q.get(req.params.id, { useMasterKey: true }); const { name, code } = req.body; if (name) obj.set('name', name); if (code) obj.set('code', code); await obj.save(null, { useMasterKey: true }); res.json({ success: true }); } catch (e: any) { res.status(500).json({ success: false, error: e.message }); } }); // DELETE /api/store/:id — 删除门店 router.delete('/:id', async (req, res) => { try { const Parse = (globalThis as any).Parse; const q = new Parse.Query('StoreConfig'); const obj = await q.get(req.params.id, { useMasterKey: true }); await obj.destroy({ useMasterKey: true }); res.json({ success: true }); } catch (e: any) { res.status(500).json({ success: false, error: e.message }); } }); export default router;