From 784d3fd8b1ce698f2911e4e8a7482f33d98d8970 Mon Sep 17 00:00:00 2001 From: zcstatham <578322713@qq.com> Date: Tue, 30 Aug 2022 23:13:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E6=9E=B6=E5=8E=BB=E9=87=8D=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/service/CarInfoHandle.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/extend/service/CarInfoHandle.php b/extend/service/CarInfoHandle.php index 424abb1..2ff7814 100644 --- a/extend/service/CarInfoHandle.php +++ b/extend/service/CarInfoHandle.php @@ -290,9 +290,10 @@ class CarInfoHandle $count = $query->count(); echo '总计:' . $count . PHP_EOL; $current = 0; + $delete_num = 0; $faild_num = 0; cache('shell_process_' . $id, 0, 300); - $query->chunk(1000, function ($infos) use (&$current, &$faild_num, $count, $id) { + $query->chunk(1000, function ($infos) use (&$current, &$delete_num, &$faild_num, $count, $id) { foreach ($infos as $item) { if ($current % 10 == 0) { cache('shell_process_' . $id, round($current / $count * 100, 3), 300); @@ -315,15 +316,14 @@ class CarInfoHandle if (empty($source_a)) { $source_a = $sources[0]; array_shift($sources); - } - Db::startTrans(); try { foreach ($sources as $index => $source) { if (empty(trim($source['car_phone']))) { foreach ($sources as $source_data) { $this->repeatDataHandle($source_data, $id, 'frame'); + $delete_num ++; } RepeatFrameT::where('car_frame_no', $item->car_frame_no)->delete(); $sources = []; @@ -332,22 +332,27 @@ class CarInfoHandle if ($source_a['insurer1_date'] != $source['insurer1_date'] && (trim($source_a['insurer1_date']) == '' || $source_a['insurer1_date'] < $source['insurer1_date'])) { list($source_a, $source) = [$source, $source_a]; $this->repeatDataHandle($source, $id, 'frame'); + $delete_num ++; unset($sources[$index]); } else if ($source_a['insurer2_date'] != $source['insurer2_date'] && (trim($source_a['insurer2_date']) == '' || $source_a['insurer2_date'] < $source['insurer2_date'])) { list($source_a, $source) = [$source, $source_a]; $this->repeatDataHandle($source, $id, 'frame'); + $delete_num ++; unset($sources[$index]); } else if ($source_a['car_no'] != $source['car_no'] && (trim($source_a['car_no']) == '' || !in_array(strlen($source_a['car_no']), [7,8]))) { list($source_a, $source) = [$source, $source_a]; $this->repeatDataHandle($source, $id, 'frame'); + $delete_num ++; unset($sources[$index]); } if (isset($sources[$index])) { $this->repeatDataHandle($source, $id, 'frame'); + $delete_num ++; unset($sources[$index]); } } else if (!preg_match('/^1[3-9][0-9]{9}/', $source['car_phone'])) { $this->repeatDataHandle($source, $id, 'frame'); + $delete_num ++; unset($sources[$index]); } else { $phones = [$source['car_phone']]; @@ -370,6 +375,7 @@ class CarInfoHandle } CarInfoT::where('id', $source_a['id'])->update($source_a); $this->repeatDataHandle($source, $id, 'frame'); + $delete_num ++; CarInfoT::destroy($source['id']); unset($sources[$index]); } @@ -385,7 +391,7 @@ class CarInfoHandle $current++; } }, 'car_frame_no'); - return '处理总数:' . $count . ', 失败总数:' . $faild_num; + return '处理总数:' . $count . ', 删除总数:' . $delete_num . ', 失败总数:' . $faild_num; } public function carInfoUpdate($data, $id)