31 lines
991 B
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";
|
|
}
|
|
}
|