正在显示
1 个修改的文件
包含
109 行增加
和
64 行删除
| @@ -56,65 +56,99 @@ class FetchTicketProjects extends Command | @@ -56,65 +56,99 @@ class FetchTicketProjects extends Command | ||
| 56 | */ | 56 | */ |
| 57 | public function fetchV5() | 57 | public function fetchV5() |
| 58 | { | 58 | { |
| 59 | - # pm 项目经理 assm 售后服务经理 | ||
| 60 | - $response = Http::get('https://www.quanqiusou.cn/extend_api/webs/globalso_all.php'); | ||
| 61 | - if ($response->status() == 200) { | ||
| 62 | - $items = $response->json(); | ||
| 63 | - foreach ($items as $item) { | ||
| 64 | - # V5: 版本号+postid | ||
| 65 | - $uuid = md5("V5{$item['postid']}"); | ||
| 66 | - $project = TicketProject::where('uuid', $uuid)->first(); | ||
| 67 | - $assm_id = Manage::where('name', $item['assm'])->value('id') ?? Manage::where('name', '张鸿飞')->value('id') ?? 0; //售后服务经理 | ||
| 68 | - $seom_id = Manage::where('name', $item['yhs'])->value('id') ?? Manage::where('name', '陶婵')->value('id') ?? 0; //优化师 | ||
| 69 | - // 如果 $item['cate'] 包含”推广“字符,则 $engineer_name = $item['assm'] | ||
| 70 | - /** | ||
| 71 | - * 第一负责人逻即说明: | ||
| 72 | - * 优化推广项目:找售后服务经理??鸿飞 | ||
| 73 | - * 建站类项目: 找杨长远 | ||
| 74 | - */ | ||
| 75 | - $engineer_id = (strpos($item['cate'], '推广') !== false) ? $assm_id : Manage::where('name', '杨长远')->value('id') ?? 0; | 59 | + $page = 1; |
| 60 | + $postids = []; | ||
| 76 | 61 | ||
| 77 | - $fields = [ | ||
| 78 | - 'post_id' => $item['postid'], | ||
| 79 | - 'company_name' => $item['company'], | ||
| 80 | - 'title' => $item['title'], | ||
| 81 | - 'engineer_id' => $engineer_id, // 第一负责人 | ||
| 82 | - 'assm_id' => $assm_id, | ||
| 83 | - 'seom_id' => $seom_id, | ||
| 84 | - 'website' => $item['main_url'] ?? '', | ||
| 85 | - 'test_website' => $item['test_url'] ?? '', | ||
| 86 | - 'is_del' => 0, | ||
| 87 | - 'plan' => $item['plan'] ?? '', | ||
| 88 | - 'project_cate' => 1, | ||
| 89 | - ]; | ||
| 90 | - if (!$project) { | ||
| 91 | - $new = new TicketProject(); | ||
| 92 | - $new->uuid = $uuid; | ||
| 93 | - $new->version = 5; | ||
| 94 | - $new->table_id = 0; | ||
| 95 | - foreach ($fields as $k => $v) { | ||
| 96 | - $new->$k = $v; | ||
| 97 | - } | ||
| 98 | - $new->save(); | ||
| 99 | - } else { | ||
| 100 | - $changed = false; | ||
| 101 | - foreach ($fields as $k => $v) { | ||
| 102 | - if ($project->$k != $v) { | ||
| 103 | - $project->$k = $v; | ||
| 104 | - $changed = true; | 62 | + while (true) { |
| 63 | + $response = Http::get('https://www.quanqiusou.cn/extend_api/webs/globalso_all.php?page=' . $page); | ||
| 64 | + if ($response->status() == 200) { | ||
| 65 | + $resp_json = $response->json(); | ||
| 66 | + $items = $resp_json['data'] ?? []; | ||
| 67 | + if (empty($items)) | ||
| 68 | + { | ||
| 69 | + echo now() . " | INFO | V5: not found items on page $page \n"; | ||
| 70 | + break; | ||
| 71 | + } | ||
| 72 | + foreach ($items as $item) { | ||
| 73 | + # V5: 版本号+postid | ||
| 74 | + $uuid = md5("V5{$item['postid']}"); | ||
| 75 | + $project = TicketProject::where('uuid', $uuid)->first(); | ||
| 76 | + | ||
| 77 | + // 项目状态, 根据 $item['cate'] 判断,建站中,建站客户,推广 | ||
| 78 | + if (strpos($item['cate'], '推广') !== false) | ||
| 79 | + $status=3; // 推广 | ||
| 80 | + elseif ($item['cate'] == "建站客户") | ||
| 81 | + $status=2; // 建站客户 | ||
| 82 | + elseif ($item['cate'] == "建站中") | ||
| 83 | + $status=1; // 建站中 | ||
| 84 | + | ||
| 85 | + $assm_id = Manage::where('name', $item['assm'])->value('id') ?? Manage::where('name', '张鸿飞')->value('id') ?? 0; //售后服务经理 | ||
| 86 | + $seom_id = Manage::where('name', $item['yhs'])->value('id') ?? Manage::where('name', '陶婵')->value('id') ?? 0; //优化师 | ||
| 87 | + $pm_id = Manage::where('name', $item['pm'])->value('id') ?? Manage::where('name', '李洁玉')->value('id') ?? 0; // 项目经理 | ||
| 88 | + | ||
| 89 | + /** | ||
| 90 | + * 第一负责人逻即说明: | ||
| 91 | + * 优化推广项目:找售后服务经理??鸿飞 | ||
| 92 | + * 建站中:项目经理 | ||
| 93 | + * 建站完成:杨长远 | ||
| 94 | + */ | ||
| 95 | + | ||
| 96 | + if ($status == 3) | ||
| 97 | + $engineer_id = $assm_id; // 推广类项目找售后服务经理 | ||
| 98 | + elseif ($status == 2) | ||
| 99 | + $engineer_id = Manage::where('name', '杨长远')->value('id') ?? 0; //建站完成 | ||
| 100 | + elseif ($status == 1) | ||
| 101 | + $engineer_id = $pm_id; // 建站中找项目经理 | ||
| 102 | + | ||
| 103 | + $fields = [ | ||
| 104 | + 'post_id' => $item['postid'], | ||
| 105 | + 'company_name' => $item['company'], | ||
| 106 | + 'title' => $item['title'], | ||
| 107 | + 'engineer_id' => $engineer_id, // 第一负责人 | ||
| 108 | + 'assm_id' => $assm_id, | ||
| 109 | + 'seom_id' => $seom_id, | ||
| 110 | + 'website' => $item['main_url'] ?? '', | ||
| 111 | + 'test_website' => $item['test_url'] ?? '', | ||
| 112 | + 'is_del' => 0, | ||
| 113 | + 'plan' => $item['plan'] ?? '', | ||
| 114 | + 'project_cate' => 1, | ||
| 115 | + 'pm_id' => $pm_id, | ||
| 116 | + 'status' => $status, // 项目状态 | ||
| 117 | + 'wechat_group_id' => $item['wx_id'] | ||
| 118 | + ]; | ||
| 119 | + if (!$project) { | ||
| 120 | + $new = new TicketProject(); | ||
| 121 | + $new->uuid = $uuid; | ||
| 122 | + $new->version = 5; | ||
| 123 | + $new->table_id = 0; | ||
| 124 | + foreach ($fields as $k => $v) { | ||
| 125 | + $new->$k = $v; | ||
| 126 | + } | ||
| 127 | + $new->save(); | ||
| 128 | + } else { | ||
| 129 | + $changed = false; | ||
| 130 | + foreach ($fields as $k => $v) { | ||
| 131 | + if ($project->$k != $v) { | ||
| 132 | + $project->$k = $v; | ||
| 133 | + $changed = true; | ||
| 134 | + } | ||
| 135 | + } | ||
| 136 | + if ($changed) { | ||
| 137 | + $project->save(); | ||
| 105 | } | 138 | } |
| 106 | } | 139 | } |
| 107 | - if ($changed) { | ||
| 108 | - $project->save(); | ||
| 109 | - } | 140 | + echo now() . " | INFO | V5: {$item['postid']} {$item['company']} fetch ok \n"; |
| 110 | } | 141 | } |
| 142 | + $page++; | ||
| 143 | + $postids = array_merge($postids, collect($items)->pluck('postid')->toArray()); | ||
| 111 | } | 144 | } |
| 112 | - $postids = collect($items)->pluck('postid')->toArray(); | 145 | + } |
| 146 | + if ($postids) | ||
| 147 | + { | ||
| 113 | // 软删除 gl_ticket_projects 中不存在的项目 | 148 | // 软删除 gl_ticket_projects 中不存在的项目 |
| 114 | TicketProject::where('version', 5) | 149 | TicketProject::where('version', 5) |
| 115 | ->whereNotIn('post_id', $postids) | 150 | ->whereNotIn('post_id', $postids) |
| 116 | ->update(['is_del' => 1]); | 151 | ->update(['is_del' => 1]); |
| 117 | - echo date("Y-m-d H:i:s") . " V5: fetch completed, total " . count($items) . " items\n"; | ||
| 118 | } | 152 | } |
| 119 | } | 153 | } |
| 120 | 154 | ||
| @@ -142,26 +176,35 @@ class FetchTicketProjects extends Command | @@ -142,26 +176,35 @@ class FetchTicketProjects extends Command | ||
| 142 | foreach ($items as $item) { | 176 | foreach ($items as $item) { |
| 143 | $uuid = md5("V6{$item->id}"); | 177 | $uuid = md5("V6{$item->id}"); |
| 144 | $project = TicketProject::where('uuid', $uuid)->first(); | 178 | $project = TicketProject::where('uuid', $uuid)->first(); |
| 179 | + // 项目状态 | ||
| 180 | + if ($item->type == Project::TYPE_ONE) | ||
| 181 | + $status = 1; // 建站中 | ||
| 182 | + elseif ($item->type == Project::TYPE_THREE) | ||
| 183 | + $status = 2; // 建站完成 | ||
| 184 | + else | ||
| 185 | + $status = 3; // 推广找售后服务经理 | ||
| 186 | + | ||
| 145 | // 售后服务经理 | 187 | // 售后服务经理 |
| 146 | $assm_id = collect([ | 188 | $assm_id = collect([ |
| 147 | ManageHr::find($item->deploy_optimize->manager_mid)->manage_id ?? 0, | 189 | ManageHr::find($item->deploy_optimize->manager_mid)->manage_id ?? 0, |
| 148 | ManageHr::find($item->deploy_optimize->tech_leader)->manage_id ?? 0, | 190 | ManageHr::find($item->deploy_optimize->tech_leader)->manage_id ?? 0, |
| 149 | 8, //张鸿飞 | 191 | 8, //张鸿飞 |
| 150 | ])->first(fn($v) => $v !== null && $v !== 0, 0); | 192 | ])->first(fn($v) => $v !== null && $v !== 0, 0); |
| 193 | + | ||
| 151 | // 优化师 | 194 | // 优化师 |
| 152 | - $optimist_mid = ManageHr::find($item->deploy_optimize->optimist_mid) ? ManageHr::find($item->deploy_optimize->optimist_mid)->manage_id : 0; | ||
| 153 | - $seom_id = $optimist_mid ? $optimist_mid : $assm_id; | ||
| 154 | - /** | ||
| 155 | - * 第一负责人逻辑 | ||
| 156 | - * 建站类项目:找杨长远 | ||
| 157 | - * 推广类:找售后 | ||
| 158 | - */ | ||
| 159 | - if ($item->type == Project::TYPE_THREE) { | ||
| 160 | - $engineer_id = Manage::where('name', '杨长远')->value('id') ?? 0; // 建站类项目找杨长远 | ||
| 161 | - }else { | ||
| 162 | - // 其他找售后服务经理 | ||
| 163 | - $engineer_id = $assm_id; | ||
| 164 | - } | 195 | + $seom_id = ManageHr::find($item->deploy_optimize->optimist_mid) ? ManageHr::find($item->deploy_optimize->optimist_mid)->manage_id : 0; |
| 196 | + | ||
| 197 | + // 项目经理 | ||
| 198 | + $pm_id = ManageHr::find($item->deploy_build->manager_mid)->manage_id ?? ManageHr::where('name', '李洁玉')->value('manage_id') ?? 0; | ||
| 199 | + | ||
| 200 | + // 第一负责人 | ||
| 201 | + if ($status == 1) | ||
| 202 | + $engineer_id = $pm_id; // 建站中找项目经理 | ||
| 203 | + elseif ($status == 2) | ||
| 204 | + $engineer_id = Manage::where('name', '杨长远')->value('id') ?? 0; // 建站完成找杨长远 | ||
| 205 | + else | ||
| 206 | + $engineer_id = $assm_id; // 推广找售后服务经理 | ||
| 207 | + | ||
| 165 | $is_del = ( | 208 | $is_del = ( |
| 166 | $item->extend_type == 5 | 209 | $item->extend_type == 5 |
| 167 | || $item->type == 8 | 210 | || $item->type == 8 |
| @@ -184,7 +227,9 @@ class FetchTicketProjects extends Command | @@ -184,7 +227,9 @@ class FetchTicketProjects extends Command | ||
| 184 | 'wechat_group_id' => ProjectAssociation::where('project_id', $project->table_id) | 227 | 'wechat_group_id' => ProjectAssociation::where('project_id', $project->table_id) |
| 185 | ->where('status', ProjectAssociation::STATUS_NORMAL) | 228 | ->where('status', ProjectAssociation::STATUS_NORMAL) |
| 186 | ->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT) | 229 | ->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT) |
| 187 | - ->value('friend_id') | 230 | + ->value('friend_id'), |
| 231 | + 'pm_id' => $pm_id, | ||
| 232 | + 'status' => $status, // 项目状态 | ||
| 188 | ]; | 233 | ]; |
| 189 | if (!$project) { | 234 | if (!$project) { |
| 190 | $project = new TicketProject(); | 235 | $project = new TicketProject(); |
-
请 注册 或 登录 后发表评论