feat(safety): support full CRUD for approved commercial places and dynamic sync to uniapp

这个提交包含在:
xcbyy
2026-10-10 09:52:42 +08:00
父节点 dc19189bc6
当前提交 e36e80c399
共有 6 个文件被更改,包括 266 次插入 和 6 次删除

查看文件

@@ -1260,6 +1260,14 @@ app.get('/api/safety/places', async (_req: Request, res: Response) => {
app.post('/api/safety/places', async (req: Request, res: Response) => {
try {
const { name, area, category } = req.body;
if (!name || !area) {
return res.status(400).json({ code: 40000, message: '场所名称和商圈不能为空' });
}
const sec = contentSecurityService.checkText(`${name} ${area}`);
if (!sec.pass) {
return res.status(400).json({ code: sec.code, message: sec.message });
}
const place = await repo.createSafetyPlace(req.body);
res.json({
code: 20000,
@@ -1271,6 +1279,41 @@ app.post('/api/safety/places', async (req: Request, res: Response) => {
}
});
// 管理后台: 修改场所信息
app.put('/api/safety/places/:id', async (req: Request, res: Response) => {
try {
const placeId = String(req.params.id);
const { name, area, category, status } = req.body;
if (name || area) {
const sec = contentSecurityService.checkText(`${name || ''} ${area || ''}`);
if (!sec.pass) {
return res.status(400).json({ code: sec.code, message: sec.message });
}
}
const updated = await repo.updateSafetyPlace(placeId, { name, area, category, status });
if (!updated) {
return res.status(404).json({ code: 40400, message: '场所不存在' });
}
res.json({ code: 20000, data: updated, message: '场所信息已更新' });
} catch (err: any) {
res.status(400).json({ code: 40000, message: err.message });
}
});
// 管理后台: 删除场所
app.delete('/api/safety/places/:id', async (req: Request, res: Response) => {
try {
const placeId = String(req.params.id);
const ok = await repo.deleteSafetyPlace(placeId);
if (!ok) {
return res.status(404).json({ code: 40400, message: '场所不存在或已被移除' });
}
res.json({ code: 20000, data: null, message: '场所已移除' });
} catch (err: any) {
res.status(400).json({ code: 40000, message: err.message });
}
});
app.get('/api/safety/audit-logs', async (_req: Request, res: Response) => {
try {
const logs = await repo.getSafetyAuditLogs();