Explorar o código

[智价云] 店铺合并省份城市补充

tangyuanwang hai 1 día
pai
achega
814f9d7612

+ 98 - 0
app/Jobs/Manager/Process/ViolationCompanyDataJobs.php

@@ -211,11 +211,105 @@ class ViolationCompanyDataJobs implements ShouldQueue
         }
         //-------------------------------------- 处理营业执照地区信息(结束) --------------------------------------
 
+//-------------------------------------- 处理发货省份地区信息(开始) --------------------------------------
+        $shipment_province_name = $product_data['shipment_province_name'];
+        $shipment_city_name = $product_data['shipment_city_name'];
+        //特殊地区1级移除市
+        if ($shipment_province_name && in_array($shipment_province_name, ['北京市', '天津市', '上海市', '重庆市'])) {
+            //移除市这个字符
+            $shipment_province_name = trim(str_replace('市', '', $shipment_province_name));
+        } else if ($shipment_province_name && in_array($shipment_province_name, ['北京', '天津', '上海', '重庆'])) {
+        } else if ($shipment_province_name && in_array($shipment_province_name, ['内蒙古', '广西', '西藏', '新疆', '宁夏'])) {
+            switch ($shipment_province_name) {
+                case '内蒙古':
+                    $shipment_province_name = '内蒙古自治区';
+                    break;
+                case '广西':
+                    $shipment_province_name = '广西壮族自治区';
+                    break;
+                case '西藏':
+                    $shipment_province_name = '西藏自治区';
+                    break;
+                case '新疆':
+                    $shipment_province_name = '新疆维吾尔自治区';
+                    break;
+                case '宁夏':
+                    $shipment_province_name = '宁夏回族自治区';
+                    break;
+            }
+        } else if ($shipment_province_name && in_array($shipment_province_name, ['内蒙古自治区', '广西壮族自治区', '西藏自治区', '新疆维吾尔自治区', '宁夏回族自治区'])) {
+            //完整匹配不做处理
+        } else if (trim($shipment_province_name) != '' && strpos($shipment_province_name, '省') === false) {
+            //是否存在市省,如果不存在则补全
+            $shipment_province_name = $shipment_province_name . '省';
+        }
+        if (trim($shipment_province_name) != '') {
+            //根据最新处理后的省份名称获取省份ID
+            $db_shipment_province_id = $CitysModel->where([['name', '=', $shipment_province_name], ['level', '=', '1']])->value('id');
+            if (!empty($db_shipment_province_id)) {
+                $product_data['shipment_province_id'] = $db_shipment_province_id;
+            } else {
+                //逆推省份ID失败,则修改为未知名称
+                $shipment_province_name = '未知';
+            }
+        }
+        if (trim($shipment_city_name) != '') {
+            //校验是否存在县这个字眼
+            if (strpos($shipment_city_name, '县') !== false) {
+                $db_shipment_city_id = $CitysModel->where([['name', '=', $shipment_city_name], ['level', '=', '2']])->value('id');
+                if (!empty($db_shipment_city_id)) {
+                    $product_data['shipment_city_id'] = $db_shipment_city_id;
+                }
+            } elseif (trim($shipment_city_name) != '' && strpos($shipment_city_name, '市') === false) {
+                //是否存在市
+                $shipment_city_name = $shipment_city_name . '市';
+                //根据最新处理后的市名称获取市ID
+                $db_shipment_city_id = $CitysModel->where([['name', '=', $shipment_city_name], ['level', '=', '2']])->value('id');
+                if (!empty($db_shipment_city_id)) {
+                    $product_data['shipment_city_id'] = $db_shipment_city_id;
+                } else {
+                    //逆推市ID失败,则修改为未知名称
+                    $shipment_city_name = '未知';
+                }
+            } else {
+                $db_shipment_city_id = $CitysModel->where([['name', '=', $shipment_city_name], ['level', '=', '2']])->value('id');
+                if (!empty($db_shipment_city_id)) {
+                    $product_data['shipment_city_id'] = $db_shipment_city_id;
+                } else {
+                    //逆推市ID失败,则修改为未知名称
+                    $shipment_city_name = '未知';
+                }
+            }
+        }
+        //如果存在市区shipment_city_id 则逆推省份ID以及名称
+        if (!empty($product_data['shipment_city_id']) && empty($product_data['shipment_province_id'])) {
+            $db_shipment_province_id = $CitysModel->where([['id', '=', $product_data['shipment_city_id']], ['level', '=', '2']])->value('pid');
+            $db_shipment_province_name = $CitysModel->where([['id', '=', $db_shipment_province_id], ['level', '=', '1']])->value('name');
+            $product_data['shipment_province_id'] = $db_shipment_province_id;
+            $product_data['shipment_province_name'] = $db_shipment_province_name;
+        }
+        //-------------------------------------- 处理发货省份地区信息(结束) --------------------------------------
         //处理链接信息
         preg_match('/https?:\/\/[^\s\'"<>]+/i', $product_data['link_url'], $matches);
         if (!empty($matches)) {
             $product_data['link_url'] = $matches[0];
         }
+        //合并省份市区ID
+        $merge_city_id = 0;
+        $merge_province_id = 0;
+        $merge_city_name = '';
+        $merge_province_name = '';
+        if (!empty($product_data['city_id']) && !empty($product_data['province_id'])) {
+            $merge_city_id = $product_data['city_id'];
+            $merge_province_id = $product_data['province_id'];
+            $merge_city_name = $city_name;
+            $merge_province_name = $province_name;
+        } else if (!empty($product_data['shipment_city_id']) && !empty($product_data['shipment_province_id'])) {
+            $merge_city_id = $product_data['shipment_city_id'];
+            $merge_province_id = $product_data['shipment_province_id'];
+            $merge_city_name = $shipment_city_name;
+            $merge_province_name = $shipment_province_name;
+        }
         $insert_product_data = [
             'company_id' => $company_id,
             'source_id' => $product_data['id'],
@@ -235,6 +329,10 @@ class ViolationCompanyDataJobs implements ShouldQueue
             'source_responsible_person' => '',
             'scrape_date' => $product_data['scrape_date'],
             'collection_time' => strtotime($product_data['insert_time']),
+            'merge_city_id' => $merge_city_id,
+            'merge_province_id' => $merge_province_id,
+            'merge_city_name' => $merge_city_name,
+            'merge_province_name' => $merge_province_name,
         ];
         //获取指定人员信息
         if ($specify_responsible_person == 0) {

+ 8 - 0
app/Models/Manager/Process/ViolationStore.php

@@ -58,6 +58,10 @@ class ViolationStore extends Model
             'insert_time' => time(),
             'scrape_date' => isset($data['scrape_date']) ? $data['scrape_date'] : '',
             'collection_time' => isset($data['collection_time']) ? $data['collection_time'] : '',
+            'merge_city_id' => $data['merge_city_id'],
+            'merge_province_id' => $data['merge_province_id'],
+            'merge_city_name' => $data['merge_city_name'],
+            'merge_province_name' => $data['merge_province_name'],
         ];
         $ViolationStore_id = $this->insertGetId($insert_data);
         return $ViolationStore_id;
@@ -105,6 +109,10 @@ class ViolationStore extends Model
                 'insert_time' => time(),
                 'scrape_date' => isset($data['scrape_date']) ? $data['scrape_date'] : '',
                 'collection_time' => isset($data['collection_time']) ? $data['collection_time'] : '',
+                'merge_city_id' => $data['merge_city_id'],
+                'merge_province_id' => $data['merge_province_id'],
+                'merge_city_name' => $data['merge_city_name'],
+                'merge_province_name' => $data['merge_province_name'],
             ];
             $ViolationStore_id = $this->insertGetId($insert_data);
             $first_responsible_persons = $data['first_responsible_person'] != '' ? explode(',', $data['first_responsible_person']) : [];