From ecef7718b91f78c02cdfddeb3a13fc39dcc9f647 Mon Sep 17 00:00:00 2001 From: hex2077 Date: Wed, 27 Aug 2025 00:41:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=AE=A1=E8=B4=B9):=20=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=97=B6=E9=95=BF=E8=B0=83=E6=95=B4=E7=A7=AF?= =?UTF-8?q?=E5=88=86=E6=89=A3=E9=99=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在生成播客任务中新增usetime字段记录使用时长,并在积分扣除时根据时长调整扣分倍数。当使用时长为8-15分钟时,积分扣除翻倍。 --- server/main.py | 2 ++ web/src/app/api/points/route.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/main.py b/server/main.py index 6d3db1a..3473746 100644 --- a/server/main.py +++ b/server/main.py @@ -265,6 +265,7 @@ async def _generate_podcast_task( "task_results": task_results[auth_id][task_id], "timestamp": int(time.time()), "status": task_results[auth_id][task_id]["status"], + "usetime": usetime, } MAX_RETRIES = 3 # 定义最大重试次数 @@ -326,6 +327,7 @@ async def generate_podcast_submission( "timestamp": time.time(), "callback_url": callback_url, # 存储回调地址 "auth_id": auth_id, # 存储 auth_id + "usetime": usetime, } background_tasks.add_task( diff --git a/web/src/app/api/points/route.ts b/web/src/app/api/points/route.ts index 1ae7c65..cb0da8a 100644 --- a/web/src/app/api/points/route.ts +++ b/web/src/app/api/points/route.ts @@ -30,7 +30,7 @@ export async function GET(request: NextRequest) { // GET 函数接收 request } export async function PUT(request: NextRequest) { - const { task_id, auth_id, timestamp, status } = await request.json(); + const { task_id, auth_id, timestamp, status, usetime } = await request.json(); const lang = getLanguageFromRequest(request); // 获取语言 const { t } = await getTranslation(lang, 'errors'); // 初始化翻译 try { @@ -63,7 +63,11 @@ export async function PUT(request: NextRequest) { const userId = auth_id; // 这里假设 auth_id 就是 userId // 5. 扣减积分 - const pointsToDeduct = parseInt(process.env.POINTS_PER_PODCAST || '10', 10); // 从环境变量获取,默认10 + let pointsToDeduct = parseInt(process.env.POINTS_PER_PODCAST || '10', 10); // 从环境变量获取,默认10 + if(usetime === '8-15 minutes') { + pointsToDeduct = pointsToDeduct * 2; + } + const reasonCode = "podcast_generation"; const description = `${t("podcast_generation_task")}: ${task_id}`; // 多语言实现