Job.php
2.4 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
namespace Controller;
use Lib\Mail\Mail;
use Model\emailSql;
use Model\sendJobsSql;
/**
* 邮件发送任务
* @author:dc
* @time 2023/4/17 15:56
* Class Job
* @package Controller
*/
class Job extends Base {
/**
* 任务列表
* @author:dc
* @time 2023/4/17 15:57
*/
public function index(){
$page = app()->request('page',1,'intval');
$limit = app()->request('limit',20,'intval');
$where = dbWhere([
'email_id' => $this->getEmails('id')
]);
$lists = db()->all(sendJobsSql::all($where,$page,$limit));
foreach ($lists as &$list){
$list['created_at'] = date('Y-m-d H:i:s',$list['send_time']);
// 检查状态
if($list['status'] === 1){
$total = db()->first(\Model\sendJobStatusSql::countSum($list['id']));
if($total && $total['t'] == $list['total']){
// 更新状态
db()->update(\Model\sendJobsSql::$table,[
'status' => 2,
'success' => $total['s'],
'error' => $total['e'],
],dbWhere(['id'=>$list['id']]));
$list['status'] = 2;
$list['error'] = $total['e'];
$list['success'] = $total['s'];
}
}
}
return listsPage($lists,
db()->count(sendJobsSql::count($where))
,1,20);
}
public function stop(){
$id = app()->request('id',0,'intval');
$ret = db()->update(sendJobsSql::$table,[
'status' => 3
],dbWhere([
'id' => $id,
'email_id' => $this->getEmails('id')
]));
if($ret){
return ['status'=>200];
}
app()->e('send_job_stop_error');
}
/**
* @throws \Lib\Err
* @author:dc
* @time 2023/4/17 17:03
*/
public function start(){
$id = app()->request('id',0,'intval');
$ret = db()->update(sendJobsSql::$table,[
'status' => 0
],dbWhere([
'id' => $id,
'email_id' => $this->getEmails('id')
]));
if($ret){
return ['status'=>200];
}
app()->e('send_job_start_error');
}
}