From ab3d231e7351bc4fa2938633783a3c8b3ba8a557 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sat, 19 Sep 2026 09:27:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20share-gain=E9=98=B2=E5=88=B7=E6=94=B9?= =?UTF-8?q?=E7=94=A8shareRecords=E7=BB=9F=E8=AE=A1(schema=20strict?= =?UTF-8?q?=E4=B8=A2=E5=BC=83=E4=BA=86=E4=B8=B4=E6=97=B6=E5=AD=97=E6=AE=B5?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/routes/aiChat.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/server/src/routes/aiChat.js b/server/src/routes/aiChat.js index f9a0562..051f3d3 100755 --- a/server/src/routes/aiChat.js +++ b/server/src/routes/aiChat.js @@ -227,16 +227,12 @@ router.post('/share-gain', userAuthMiddleware, async (req, res) => { quota = new AIChatQuota({ openid }) } - // [防刷] 每日分享奖励最多3次 - const today = new Date().toISOString().slice(0, 10) - const shareDate = (quota.shareDate || '').toString().slice(0, 10) - const shareCount = shareDate === today ? (quota.shareCount || 0) : 0 - if (shareCount >= 3) { + // [防刷] 每日分享奖励最多3次(基于 shareRecords 统计) + const dayStart = new Date(); dayStart.setHours(0, 0, 0, 0) + const todayShares = (quota.shareRecords || []).filter(r => new Date(r.sharedAt) >= dayStart).length + if (todayShares >= 3) { return ApiResponse.error(res, '今日分享奖励已领完,明天再来吧', 429) } - quota.shareDate = new Date() - quota.shareCount = shareCount + 1 - await quota.save() const remainingQuota = await quota.addQuotaByShare(5)