coupon/cron_sync.php

31 lines
991 B
PHP

<?php
/**
* 定时任务:同步兑换码使用状态
* crontab: 0 2 * * * php /path/to/cron_sync.php
*/
require_once __DIR__ . '/config/db.php';
require_once __DIR__ . '/includes/functions.php';
require_once __DIR__ . '/includes/coupon_sync.php';
$stmt = $pdo->query("SELECT id, code, name, api_url, token FROM products WHERE status = 1 AND api_url IS NOT NULL AND api_url != ''");
$products = $stmt->fetchAll();
if (empty($products)) {
echo date('Y-m-d H:i:s') . " 没有可同步的产品\n";
exit;
}
// 同步前一天的记录
$endTime = strtotime('today') - 1;
$startTime = strtotime('-1 day', $endTime);
foreach ($products as $p) {
echo date('Y-m-d H:i:s') . " 同步产品 [{$p['code']}] {$p['name']} ... ";
$ret = syncCouponStatus($pdo, $p, $startTime, $endTime);
if ($ret['success']) {
echo "API返回{$ret['total']}条, 匹配{$ret['matched']}条, 更新{$ret['updated']}\n";
} else {
echo "失败: {$ret['message']}\n";
}
}