feat(closed-loop): complete end-to-end closed loops across miniapp, backend, and admin

这个提交包含在:
xcbyy
2026-10-14 10:13:50 +08:00
父节点 f8e81d2df4
当前提交 51c19d6063
共有 14 个文件被更改,包括 996 次插入 和 134 次删除

查看文件

@@ -1330,9 +1330,10 @@ app.post('/api/reports', async (req: Request, res: Response) => {
}
});
app.get('/api/reports', async (_req: Request, res: Response) => {
app.get('/api/reports', async (req: Request, res: Response) => {
try {
const list = await repo.getReports();
const reporterId = req.query.reporterId ? Number(req.query.reporterId) : undefined;
const list = await repo.getReports(reporterId);
res.json({ code: 20000, data: list });
} catch (err: any) {
res.status(500).json({ code: 50000, message: err.message });
@@ -2154,6 +2155,23 @@ app.get('/api/distribution/records', async (req: Request, res: Response) => {
}
});
app.post('/api/distribution/bind', async (req: Request, res: Response) => {
try {
const { userId, inviteCode } = req.body || {};
if (!inviteCode || !String(inviteCode).trim()) {
return res.status(400).json({ code: 40000, message: '邀请码不能为空' });
}
const result = await repo.bindInviteCode(Number(userId || 1001), String(inviteCode).trim());
res.json({
code: 20000,
data: result,
message: result.message || '邀请码绑定成功'
});
} catch (err: any) {
res.status(400).json({ code: 40000, message: err.message });
}
});
// 8. 启动服务器并初始化数据库
async function bootstrap() {
try {