|
@@ -51,7 +51,7 @@ class FetchTicketProjects extends Command |
|
@@ -51,7 +51,7 @@ class FetchTicketProjects extends Command |
|
51
|
* @return void
|
51
|
* @return void
|
|
52
|
* 请求:https://www.quanqiusou.cn/extend_api/webs/globalso_all.php
|
52
|
* 请求:https://www.quanqiusou.cn/extend_api/webs/globalso_all.php
|
|
53
|
*/
|
53
|
*/
|
|
54
|
- public function fetch_v5()
|
54
|
+ public function fetchV5()
|
|
55
|
{
|
55
|
{
|
|
56
|
# pm 项目经理 assm 售后服务经理
|
56
|
# pm 项目经理 assm 售后服务经理
|
|
57
|
$response = Http::get('https://www.quanqiusou.cn/extend_api/webs/globalso_all.php');
|
57
|
$response = Http::get('https://www.quanqiusou.cn/extend_api/webs/globalso_all.php');
|
|
@@ -72,13 +72,14 @@ class FetchTicketProjects extends Command |
|
@@ -72,13 +72,14 @@ class FetchTicketProjects extends Command |
|
72
|
$engineer_id = (strpos($item['cate'], '推广') !== false) ? $assm_id : Manage::where('name', '杨长远')->value('id') ?? 0;
|
72
|
$engineer_id = (strpos($item['cate'], '推广') !== false) ? $assm_id : Manage::where('name', '杨长远')->value('id') ?? 0;
|
|
73
|
|
73
|
|
|
74
|
$fields = [
|
74
|
$fields = [
|
|
75
|
- 'post_id' => $item['postid'],
|
|
|
|
76
|
- 'company_name' => $item['company'],
|
|
|
|
77
|
- 'title' => $item['title'],
|
|
|
|
78
|
- 'engineer_id' => $engineer_id, // 第一负责人
|
|
|
|
79
|
- 'assm_id' => $assm_id,
|
|
|
|
80
|
- 'seom_id' => $seom_id,
|
|
|
|
81
|
- 'website' => $item['main_url'] ?? '',
|
75
|
+ 'post_id' => $item['postid'],
|
|
|
|
76
|
+ 'company_name' => $item['company'],
|
|
|
|
77
|
+ 'title' => $item['title'],
|
|
|
|
78
|
+ 'engineer_id' => $engineer_id, // 第一负责人
|
|
|
|
79
|
+ 'assm_id' => $assm_id,
|
|
|
|
80
|
+ 'seom_id' => $seom_id,
|
|
|
|
81
|
+ 'website' => $item['main_url'] ?? '',
|
|
|
|
82
|
+ 'is_del' => 0,
|
|
82
|
];
|
83
|
];
|
|
83
|
if (!$project) {
|
84
|
if (!$project) {
|
|
84
|
$new = new TicketProject();
|
85
|
$new = new TicketProject();
|
|
@@ -103,6 +104,12 @@ class FetchTicketProjects extends Command |
|
@@ -103,6 +104,12 @@ class FetchTicketProjects extends Command |
|
103
|
}
|
104
|
}
|
|
104
|
echo "V5: {$item['postid']} - {$item['title']} - {$item['company']} - {$item['main_url']}\n";
|
105
|
echo "V5: {$item['postid']} - {$item['title']} - {$item['company']} - {$item['main_url']}\n";
|
|
105
|
}
|
106
|
}
|
|
|
|
107
|
+ $postids = collect($items)->pluck('postid')->toArray();
|
|
|
|
108
|
+ // 软删除 gl_ticket_projects 中不存在的项目
|
|
|
|
109
|
+ TicketProject::where('version', 5)
|
|
|
|
110
|
+ ->whereNotIn('post_id', $postids)
|
|
|
|
111
|
+ ->update(['is_del' => 1]);
|
|
|
|
112
|
+ echo "V5: fetch completed, total " . count($items) . " items\n";
|
|
106
|
}
|
113
|
}
|
|
107
|
}
|
114
|
}
|
|
108
|
|
115
|
|
|
@@ -111,12 +118,15 @@ class FetchTicketProjects extends Command |
|
@@ -111,12 +118,15 @@ class FetchTicketProjects extends Command |
|
111
|
* 1. 按照ID升序查询 gl_project 表 limit 10
|
118
|
* 1. 按照ID升序查询 gl_project 表 limit 10
|
|
112
|
* 2。同步到 TicketProject 后,redis 缓存 ID
|
119
|
* 2。同步到 TicketProject 后,redis 缓存 ID
|
|
113
|
*/
|
120
|
*/
|
|
114
|
- public function fetch_v6()
|
121
|
+ public function fetchV6()
|
|
115
|
{
|
122
|
{
|
|
116
|
$lastid = 0;
|
123
|
$lastid = 0;
|
|
117
|
while (true) {
|
124
|
while (true) {
|
|
118
|
try {
|
125
|
try {
|
|
119
|
$items = Project::where('id', '>', intval($lastid))
|
126
|
$items = Project::where('id', '>', intval($lastid))
|
|
|
|
127
|
+// ->where('delete_status', 0)
|
|
|
|
128
|
+// ->where('extend_type', '!=', 5) // 排除归档项目
|
|
|
|
129
|
+// ->where('type', '!=', 8) // 排除归档项目
|
|
120
|
->orderBy('id', 'asc')
|
130
|
->orderBy('id', 'asc')
|
|
121
|
->limit(10)
|
131
|
->limit(10)
|
|
122
|
->get();
|
132
|
->get();
|
|
@@ -143,22 +153,29 @@ class FetchTicketProjects extends Command |
|
@@ -143,22 +153,29 @@ class FetchTicketProjects extends Command |
|
143
|
if (in_array($item->type, [Project::TYPE_TWO, Project::TYPE_FOUR, Project::TYPE_SIX])) {
|
153
|
if (in_array($item->type, [Project::TYPE_TWO, Project::TYPE_FOUR, Project::TYPE_SIX])) {
|
|
144
|
// 优化推广项目
|
154
|
// 优化推广项目
|
|
145
|
$engineer_id = $assm_id;
|
155
|
$engineer_id = $assm_id;
|
|
146
|
- }elseif ($item->type == Project::TYPE_THREE) {
|
156
|
+ } elseif ($item->type == Project::TYPE_THREE) {
|
|
147
|
$engineer_id = Manage::where('name', '杨长远')->value('id') ?? 0; // 建站类项目找杨长远
|
157
|
$engineer_id = Manage::where('name', '杨长远')->value('id') ?? 0; // 建站类项目找杨长远
|
|
148
|
- }else{
|
158
|
+ } else {
|
|
149
|
$engineer_id = collect([
|
159
|
$engineer_id = collect([
|
|
150
|
$item->deploy_build->manager_mid ?? 0,
|
160
|
$item->deploy_build->manager_mid ?? 0,
|
|
151
|
$item->deploy_build->leader_mid ?? 0,
|
161
|
$item->deploy_build->leader_mid ?? 0,
|
|
152
|
0
|
162
|
0
|
|
153
|
])->first(fn($v) => $v !== null && $v !== 0, 0);
|
163
|
])->first(fn($v) => $v !== null && $v !== 0, 0);
|
|
154
|
}
|
164
|
}
|
|
|
|
165
|
+ $is_del = (
|
|
|
|
166
|
+ $item->extend_type == 5
|
|
|
|
167
|
+ || $item->type == 8
|
|
|
|
168
|
+ || $item->delete_status == 1
|
|
|
|
169
|
+ || $item->site_status == 1
|
|
|
|
170
|
+ ) ? 1 : 0;
|
|
155
|
|
171
|
|
|
156
|
$fields = [
|
172
|
$fields = [
|
|
157
|
- 'company_name' => $item->company,
|
|
|
|
158
|
- 'title' => $item->title,
|
173
|
+ 'company_name' => $item->company,
|
|
|
|
174
|
+ 'title' => $item->title,
|
|
159
|
'assm_id' => $assm_id,
|
175
|
'assm_id' => $assm_id,
|
|
160
|
'seom_id' => $seom_id,
|
176
|
'seom_id' => $seom_id,
|
|
161
|
- 'engineer_id' => $engineer_id
|
177
|
+ 'engineer_id' => $engineer_id,
|
|
|
|
178
|
+ 'is_del' => $is_del
|
|
162
|
];
|
179
|
];
|
|
163
|
if (!$project) {
|
180
|
if (!$project) {
|
|
164
|
$project = new TicketProject();
|
181
|
$project = new TicketProject();
|
|
@@ -170,7 +187,7 @@ class FetchTicketProjects extends Command |
|
@@ -170,7 +187,7 @@ class FetchTicketProjects extends Command |
|
170
|
$project->$k = $v;
|
187
|
$project->$k = $v;
|
|
171
|
}
|
188
|
}
|
|
172
|
$project->save();
|
189
|
$project->save();
|
|
173
|
- }else{
|
190
|
+ } else {
|
|
174
|
$changed = false;
|
191
|
$changed = false;
|
|
175
|
foreach ($fields as $k => $v) {
|
192
|
foreach ($fields as $k => $v) {
|
|
176
|
if ($project->$k != $v) {
|
193
|
if ($project->$k != $v) {
|
|
@@ -185,7 +202,7 @@ class FetchTicketProjects extends Command |
|
@@ -185,7 +202,7 @@ class FetchTicketProjects extends Command |
|
185
|
$lastid = $item->id;
|
202
|
$lastid = $item->id;
|
|
186
|
echo date('Y-m-d H:i:s') . " V6: $item->id {$item->company} fetch ok \n";
|
203
|
echo date('Y-m-d H:i:s') . " V6: $item->id {$item->company} fetch ok \n";
|
|
187
|
}
|
204
|
}
|
|
188
|
- }catch (\Exception $exception) {
|
205
|
+ } catch (\Exception $exception) {
|
|
189
|
echo $exception;
|
206
|
echo $exception;
|
|
190
|
break;
|
207
|
break;
|
|
191
|
}
|
208
|
}
|
|
@@ -213,7 +230,7 @@ class FetchTicketProjects extends Command |
|
@@ -213,7 +230,7 @@ class FetchTicketProjects extends Command |
|
213
|
$lastid = $item->id;
|
230
|
$lastid = $item->id;
|
|
214
|
echo date('Y-m-d H:i:s') . " V6: $item->id fetch ok \n";
|
231
|
echo date('Y-m-d H:i:s') . " V6: $item->id fetch ok \n";
|
|
215
|
}
|
232
|
}
|
|
216
|
- }catch (\Exception $exception) {
|
233
|
+ } catch (\Exception $exception) {
|
|
217
|
echo $exception;
|
234
|
echo $exception;
|
|
218
|
break;
|
235
|
break;
|
|
219
|
}
|
236
|
}
|