41 行
1.2 KiB
PHP
41 行
1.2 KiB
PHP
<?php
|
|
|
|
namespace addons\shopro\job;
|
|
|
|
use think\queue\Job;
|
|
use think\Db;
|
|
use think\exception\HttpResponseException;
|
|
use addons\shopro\service\partner\PartnerRewardService;
|
|
|
|
class PartnerSettle extends BaseJob
|
|
{
|
|
public function order(Job $job, $payload)
|
|
{
|
|
try {
|
|
$orderId = $payload['order_id'] ?? 0;
|
|
if ($orderId) {
|
|
Db::transaction(function () use ($orderId) {
|
|
(new PartnerRewardService())->settleOrder($orderId);
|
|
});
|
|
}
|
|
$job->delete();
|
|
} catch (HttpResponseException $e) {
|
|
$data = $e->getResponse()->getData();
|
|
$message = $data ? ($data['msg'] ?? '') : $e->getMessage();
|
|
format_log_error($e, 'PartnerSettle.HttpResponseException', $message);
|
|
if ($job->attempts() >= 3) {
|
|
$job->delete();
|
|
} else {
|
|
$job->release(5);
|
|
}
|
|
} catch (\Exception $e) {
|
|
format_log_error($e, 'PartnerSettle');
|
|
if ($job->attempts() >= 3) {
|
|
$job->delete();
|
|
} else {
|
|
$job->release(5);
|
|
}
|
|
}
|
|
}
|
|
}
|