简单的定时任务--ok

This commit is contained in:
yml2213
2026-05-14 17:59:45 +08:00
parent b6c493d5e7
commit f7f3289d04
19 changed files with 954 additions and 5 deletions
@@ -12,6 +12,7 @@ import {
getAdminCloudtentaclesBindUrl,
getAdminCloudtentaclesCategories,
getAdminNotificationConfig,
getAdminScheduledJobsConfig,
getAdminKuaishouCloudFulfillmentConfig,
getAdminKuaishouEticketSourceConfig,
getAdminCloudtentaclesKnapsack,
@@ -29,6 +30,7 @@ import {
queryAdminKuaishouEticketDetail,
retryAdminNinetyoneOrder,
runAdminCloudtentaclesFullFlow,
runAdminScheduledJobNow,
sendAdminCloudtentaclesSmsCode,
testAdminNotification,
testAdminCloudtentaclesLogin,
@@ -36,6 +38,7 @@ import {
updateAdminKuaishouEticketSourceConfig,
updateAdminCloudtentaclesSourceConfig,
updateAdminNotificationConfig,
updateAdminScheduledJobsConfig,
updateAdminAgisoShopConfigs,
updateAdminFulfillmentBindingConfigs,
verifyAdminCloudtentaclesLoginCode,
@@ -50,6 +53,7 @@ import { createJsonHandler, requireAdminRoles } from './shared.js'
/** @typedef {import('../../types/admin-route-inputs.js').AdminKuaishouEticketSourceConfigRouteBody} AdminKuaishouEticketSourceConfigRouteBody */
/** @typedef {import('../../types/admin-route-inputs.js').AdminNotificationConfigRouteBody} AdminNotificationConfigRouteBody */
/** @typedef {import('../../types/admin-route-inputs.js').AdminNotificationTestRouteBody} AdminNotificationTestRouteBody */
/** @typedef {import('../../types/admin-route-inputs.js').AdminScheduledJobsConfigRouteBody} AdminScheduledJobsConfigRouteBody */
/** @typedef {import('../../types/admin-route-inputs.js').AdminKuaishouEticketDetailQueryRouteBody} AdminKuaishouEticketDetailQueryRouteBody */
/** @typedef {import('../../types/admin-route-inputs.js').AdminKuaishouEticketConsumeRouteBody} AdminKuaishouEticketConsumeRouteBody */
/** @typedef {import('../../types/admin-route-inputs.js').AdminKuaishouEticketShopInfoRouteBody} AdminKuaishouEticketShopInfoRouteBody */
@@ -154,6 +158,58 @@ router.post('/platform-config/notifications/test', createJsonHandler(
},
))
router.get('/platform-config/scheduled-jobs', createJsonHandler(
() => getAdminScheduledJobsConfig(),
{
successMessage: 'ok',
errorMessage: '读取定时任务配置失败',
scope: '[admin/platform-config/scheduled-jobs]',
},
))
router.post('/platform-config/scheduled-jobs', createJsonHandler(
(req) => updateAdminScheduledJobsConfig(/** @type {AdminScheduledJobsConfigRouteBody} */ (req.body)),
{
successMessage: '定时任务配置已保存',
errorMessage: '保存定时任务配置失败',
scope: '[admin/platform-config/scheduled-jobs]',
audit: (_req, data) => {
const result = /** @type {{ filePath?: string, source?: { enabled?: boolean, jobs?: unknown[] } }} */ (data)
return {
action: 'platform_scheduled_jobs_updated',
targetType: 'platform_config',
targetId: 'scheduled_jobs',
data: {
filePath: String(result.filePath || '').trim(),
enabled: Boolean(result.source?.enabled),
jobCount: Array.isArray(result.source?.jobs) ? result.source.jobs.length : 0,
},
}
},
},
))
router.post('/platform-config/scheduled-jobs/:id/run', createJsonHandler(
(req) => runAdminScheduledJobNow((/** @type {AdminEntityRouteParams} */ (req.params)).id),
{
successMessage: '定时任务已执行',
errorMessage: '执行定时任务失败',
scope: '[admin/platform-config/scheduled-jobs/:id/run]',
audit: (req, data) => {
const result = /** @type {{ result?: { status?: string, message?: string } }} */ (data)
return {
action: 'platform_scheduled_job_run',
targetType: 'platform_config',
targetId: String((/** @type {AdminEntityRouteParams} */ (req.params)).id || '').trim(),
data: {
status: String(result.result?.status || '').trim(),
message: String(result.result?.message || '').trim(),
},
}
},
},
))
router.get('/platform-config/kuaishou-eticket-source', createJsonHandler(
() => getAdminKuaishouEticketSourceConfig(),
{