feat: add distribution release and recovery controls

This commit is contained in:
巫凤萍
2026-08-12 11:12:23 +08:00
parent ddad4b7659
commit 7ef150e08b
16 changed files with 717 additions and 33 deletions

View File

@@ -30,6 +30,11 @@ import {
createDistributionTask,
createScreenshotTask,
} from "../../../lib/task-service";
import {
DistributionReleaseError,
releaseUnfinishedDistribution,
} from "../../../lib/distribution-release-service";
import { isManagerRequest } from "../../../lib/user-auth";
type ActionBody = {
action?: string;
@@ -135,6 +140,12 @@ export async function POST(request: Request) {
.bind(available.results.length, partnerId),
);
await db.batch(statements);
} else if (body.action === "release_distribution") {
if (!(await isManagerRequest(request))) return adminForbidden();
await releaseUnfinishedDistribution(
db,
String(body.distributionId ?? "").trim(),
);
} else if (body.action === "save_collection_schedule") {
const taskId = String(body.taskId ?? "").trim();
const startDate = String(body.startDate ?? "").trim();
@@ -198,7 +209,7 @@ export async function POST(request: Request) {
AND publish_url != ''`,
)
.bind(
`已安排${days.length}个采集日,每日10:00执行`,
`已安排${days.length}个采集日每日09:00执行`,
taskId,
),
]);
@@ -362,7 +373,13 @@ export async function POST(request: Request) {
} catch (error) {
return Response.json(
{ error: error instanceof Error ? error.message : "操作失败" },
{ status: error instanceof FeishuSourceError ? error.status : 500 },
{
status:
error instanceof FeishuSourceError ||
error instanceof DistributionReleaseError
? error.status
: 500,
},
);
}
}