ActivityAutoOper.php
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
namespace addons\shopro\job;
use addons\shopro\library\traits\ActivityCache;
use addons\shopro\model\Activity;
use think\queue\Job;
/**
* 订单自动操作
*/
class ActivityAutoOper extends BaseJob
{
use ActivityCache;
/**
* 活动自动删除
*/
public function autoClose(Job $job, $data){
try {
$activity = $data['activity'];
$activity = Activity::get($activity['id']);
// 一个活动会存在多个队列,要排重
if ($activity) {
// 如果活动还没被删除
// 规则
$rules = $activity['rules'];
// 当前配置应该自动结束的时间
$laterTime = $activity['endtime'];
if (isset($rules['activity_auto_close']) && $rules['activity_auto_close'] > 0) {
$laterTime += ($rules['activity_auto_close'] * 60);
}
// 如果当前时间大于 laterTime,可以执行删除
if (time() >= $laterTime) {
// 删除活动 【软删】
$activity->delete();
// 删除活动缓存
$this->delActivity($activity);
}
}
// 删除 job
$job->delete();
} catch (\Exception $e) {
// 队列执行失败
\think\Log::write('queue-' . get_class() . '-autoClose' . ':执行失败,错误信息:' . $e->getMessage());
}
}
}