Преглед изворни кода

[智价云] 采集确实省市数据回填处理

tangyuanwang пре 2 дана
родитељ
комит
2242527af2

+ 141 - 7
app/Jobs/Manager/Process/LowPriceGoodsDataJobs.php

@@ -136,6 +136,7 @@ class LowPriceGoodsDataJobs implements ShouldQueue
             return true;
         }
         foreach ($product_datas as $product_data) {
+            //-------------------------------------- 处理营业执照地区信息(开始) --------------------------------------
             $province_name = $product_data['province_name'];
             $city_name = $product_data['city_name'];
             //特殊地区1级移除市
@@ -162,16 +163,148 @@ class LowPriceGoodsDataJobs implements ShouldQueue
                         break;
                 }
             } else if ($province_name && in_array($province_name, ['内蒙古自治区', '广西壮族自治区', '西藏自治区', '新疆维吾尔自治区', '宁夏回族自治区'])) {
-            } else if (strpos($province_name, '省') === false) {
+                //完整匹配不做处理
+            } else if (trim($province_name) != '' && strpos($province_name, '省') === false) {
                 //是否存在市省,如果不存在则补全
-                if (trim($province_name) != '' && strpos($province_name, '省') === false) {
-                    $province_name = $province_name . '省';
+                $province_name = $province_name . '省';
+            }
+            if (trim($province_name) != '') {
+                //根据最新处理后的省份名称获取省份ID
+                $db_province_id = $CitysModel->where([['name', '=', $province_name], ['level', '=', '1']])->value('id');
+                if (!empty($db_province_id)) {
+                    $product_data['province_id'] = $db_province_id;
+                }
+            } else {
+                //尝试从地区详情里面匹配省份名称
+                $db_province_name_list = $CitysModel->where([['level', '=', '1']])->pluck('name')->toarray();
+                foreach ($db_province_name_list as $db_province_name) {
+                    if (strpos($product_data['area_info'], $db_province_name) !== false) {
+                        $province_name = $db_province_name;
+                        break;
+                    }
+                }
+            }
+            if (trim($city_name) != '') {
+                //校验是否存在县这个字眼
+                if (strpos($city_name, '县') !== false) {
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                } elseif (trim($city_name) != '' && strpos($city_name, '市') === false) {
+                    //是否存在市
+                    $city_name = $city_name . '市';
+                    //根据最新处理后的市名称获取市ID
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                } else {
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                }
+            } else {
+                //尝试从地区详情里面匹配市名称
+                $db_city_name_list = $CitysModel->where([['level', '=', '2']])->pluck('name')->toarray();
+                foreach ($db_city_name_list as $db_city_name) {
+                    if (strpos($product_data['area_info'], $db_city_name) !== false) {
+                        $db_city_id = $CitysModel->where([['name', '=', $db_city_name], ['level', '=', '2']])->value('id');
+                        $product_data['city_id'] = $db_city_id;
+                        $product_data['city_name'] = $db_city_name;
+                        $city_name = $db_city_name;
+                        break;
+                    }
                 }
             }
-            // if ($city_name != '') {
-            //     $city_name_value = $CitysModel->where([['id', '=', $product_data['city_id']], ['level', '=', '2']])->value('name');
-            //     $city_name = !empty($city_name_value) ? $city_name_value : '';
-            // }
+            //如果存在市区city_id 则逆推省份ID以及名称
+            if (!empty($product_data['city_id']) && empty($product_data['province_id'])) {
+                $db_province_id = $CitysModel->where([['id', '=', $product_data['city_id']], ['level', '=', '2']])->value('pid');
+                $db_province_name = $CitysModel->where([['id', '=', $db_province_id], ['level', '=', '1']])->value('name');
+                $product_data['province_id'] = $db_province_id;
+                $product_data['province_name'] = $db_province_name;
+                $province_name = $db_province_name;
+            }
+            if (trim($product_data['area_info']) == '' && trim($city_name) != '' && trim($province_name) != '') {
+                $product_data['area_info'] = $province_name . $city_name;
+            }
+            //-------------------------------------- 处理营业执照地区信息(结束) --------------------------------------
+
+            //-------------------------------------- 处理发货省份地区信息(开始) --------------------------------------
+            $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;
+                }
+            }
+            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 {
+                    $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;
+                    }
+                }
+            }
+            //如果存在市区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];
+            }
             if (trim($product_data['link_url']) == '') continue;
             $insert_product_data = [
                 'company_id' => $company_id,
@@ -209,6 +342,7 @@ class LowPriceGoodsDataJobs implements ShouldQueue
                 'shipment_city_id' => $product_data['shipment_city_id'],
                 'shipment_city_name' => $product_data['shipment_city_name'],
             ];
+            dd($insert_product_data);
             //获取公司绑定责任人信息
             $company_data = $ViolationCompanyModel->leftjoin('washconfig_company_category', 'washconfig_company_category.id', '=', 'washconfig_violation_company.category_id')
                 ->where('washconfig_violation_company.social_credit_code', $product_data['qualification_number'])

+ 140 - 7
app/Jobs/Manager/Process/ViolationProductDataJobs.php

@@ -130,6 +130,7 @@ class ViolationProductDataJobs implements ShouldQueue
             return true;
         }
         foreach ($product_datas as $product_data) {
+            //-------------------------------------- 处理营业执照地区信息(开始) --------------------------------------
             $province_name = $product_data['province_name'];
             $city_name = $product_data['city_name'];
             //特殊地区1级移除市
@@ -156,16 +157,148 @@ class ViolationProductDataJobs implements ShouldQueue
                         break;
                 }
             } else if ($province_name && in_array($province_name, ['内蒙古自治区', '广西壮族自治区', '西藏自治区', '新疆维吾尔自治区', '宁夏回族自治区'])) {
-            } else if (strpos($province_name, '省') === false) {
+                //完整匹配不做处理
+            } else if (trim($province_name) != '' && strpos($province_name, '省') === false) {
                 //是否存在市省,如果不存在则补全
-                if (trim($province_name) != '' &&  strpos($province_name, '省') === false) {
-                    $province_name = $province_name . '省';
+                $province_name = $province_name . '省';
+            }
+            if (trim($province_name) != '') {
+                //根据最新处理后的省份名称获取省份ID
+                $db_province_id = $CitysModel->where([['name', '=', $province_name], ['level', '=', '1']])->value('id');
+                if (!empty($db_province_id)) {
+                    $product_data['province_id'] = $db_province_id;
+                }
+            } else {
+                //尝试从地区详情里面匹配省份名称
+                $db_province_name_list = $CitysModel->where([['level', '=', '1']])->pluck('name')->toarray();
+                foreach ($db_province_name_list as $db_province_name) {
+                    if (strpos($product_data['area_info'], $db_province_name) !== false) {
+                        $province_name = $db_province_name;
+                        break;
+                    }
+                }
+            }
+            if (trim($city_name) != '') {
+                //校验是否存在县这个字眼
+                if (strpos($city_name, '县') !== false) {
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                } elseif (trim($city_name) != '' && strpos($city_name, '市') === false) {
+                    //是否存在市
+                    $city_name = $city_name . '市';
+                    //根据最新处理后的市名称获取市ID
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                } else {
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                }
+            } else {
+                //尝试从地区详情里面匹配市名称
+                $db_city_name_list = $CitysModel->where([['level', '=', '2']])->pluck('name')->toarray();
+                foreach ($db_city_name_list as $db_city_name) {
+                    if (strpos($product_data['area_info'], $db_city_name) !== false) {
+                        $db_city_id = $CitysModel->where([['name', '=', $db_city_name], ['level', '=', '2']])->value('id');
+                        $product_data['city_id'] = $db_city_id;
+                        $product_data['city_name'] = $db_city_name;
+                        $city_name = $db_city_name;
+                        break;
+                    }
                 }
             }
-            // if ($city_name != '') {
-            //     $city_name_value = $CitysModel->where([['id', '=', $product_data['city_id']], ['level', '=', '2']])->value('name');
-            //     $city_name = !empty($city_name_value) ? $city_name_value : '';
-            // }
+            //如果存在市区city_id 则逆推省份ID以及名称
+            if (!empty($product_data['city_id']) && empty($product_data['province_id'])) {
+                $db_province_id = $CitysModel->where([['id', '=', $product_data['city_id']], ['level', '=', '2']])->value('pid');
+                $db_province_name = $CitysModel->where([['id', '=', $db_province_id], ['level', '=', '1']])->value('name');
+                $product_data['province_id'] = $db_province_id;
+                $product_data['province_name'] = $db_province_name;
+                $province_name = $db_province_name;
+            }
+            if (trim($product_data['area_info']) == '' && trim($city_name) != '' && trim($province_name) != '') {
+                $product_data['area_info'] = $province_name . $city_name;
+            }
+            //-------------------------------------- 处理营业执照地区信息(结束) --------------------------------------
+
+            //-------------------------------------- 处理发货省份地区信息(开始) --------------------------------------
+            $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;
+                }
+            }
+            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 {
+                    $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;
+                    }
+                }
+            }
+            //如果存在市区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];
+            }
             if (trim($product_data['link_url']) == '') continue;
             $insert_product_data = [
                 'company_id' => $company_id,

+ 143 - 7
app/Jobs/Manager/Process/ViolationStoreDataJobs.php

@@ -106,6 +106,7 @@ class ViolationStoreDataJobs implements ShouldQueue
             return true;
         }
         foreach ($product_datas as $product_data) {
+             //-------------------------------------- 处理营业执照地区信息(开始) --------------------------------------
             $province_name = $product_data['province_name'];
             $city_name = $product_data['city_name'];
             //特殊地区1级移除市
@@ -132,16 +133,151 @@ class ViolationStoreDataJobs implements ShouldQueue
                         break;
                 }
             } else if ($province_name && in_array($province_name, ['内蒙古自治区', '广西壮族自治区', '西藏自治区', '新疆维吾尔自治区', '宁夏回族自治区'])) {
-            } else if (strpos($province_name, '省') === false) {
+                //完整匹配不做处理
+            } else if (trim($province_name) != '' && strpos($province_name, '省') === false) {
                 //是否存在市省,如果不存在则补全
-                if (strpos($province_name, '省') === false) {
-                    $province_name = $province_name . '省';
+                $province_name = $province_name . '省';
+            }
+            if (trim($province_name) != '') {
+                //根据最新处理后的省份名称获取省份ID
+                $db_province_id = $CitysModel->where([['name', '=', $province_name], ['level', '=', '1']])->value('id');
+                if (!empty($db_province_id)) {
+                    $product_data['province_id'] = $db_province_id;
+                }
+            } else {
+                //尝试从地区详情里面匹配省份名称
+                $db_province_name_list = $CitysModel->where([['level', '=', '1']])->pluck('name')->toarray();
+                foreach ($db_province_name_list as $db_province_name) {
+                    if (strpos($product_data['area_info'], $db_province_name) !== false) {
+                        $province_name = $db_province_name;
+                        break;
+                    }
+                }
+            }
+            if (trim($city_name) != '') {
+                //校验是否存在县这个字眼
+                if (strpos($city_name, '县') !== false) {
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                }elseif (trim($city_name) != '' && strpos($city_name, '市') === false) {
+                    //是否存在市
+                    $city_name = $city_name . '市';
+                    //根据最新处理后的市名称获取市ID
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                } else {
+                    $db_city_id = $CitysModel->where([['name', '=', $city_name], ['level', '=', '2']])->value('id');
+                    if (!empty($db_city_id)) {
+                        $product_data['city_id'] = $db_city_id;
+                    }
+                }
+            } else {
+                //尝试从地区详情里面匹配市名称
+                $db_city_name_list = $CitysModel->where([['level', '=', '2']])->pluck('name')->toarray();
+                foreach ($db_city_name_list as $db_city_name) {
+                    if (strpos($product_data['area_info'], $db_city_name) !== false) {
+                        $db_city_id = $CitysModel->where([['name', '=', $db_city_name], ['level', '=', '2']])->value('id');
+                        $product_data['city_id'] = $db_city_id;
+                        $product_data['city_name'] = $db_city_name;
+                        $city_name = $db_city_name;
+                        break;
+                    }
+                }
+            }
+            //如果存在市区city_id 则逆推省份ID以及名称
+            if (!empty($product_data['city_id']) && empty($product_data['province_id'])) {
+                $db_province_id = $CitysModel->where([['id', '=', $product_data['city_id']], ['level', '=', '2']])->value('pid');
+                $db_province_name = $CitysModel->where([['id', '=', $db_province_id], ['level', '=', '1']])->value('name');
+                $product_data['province_id'] = $db_province_id;
+                $product_data['province_name'] = $db_province_name;
+                $province_name = $db_province_name;
+            }
+            if(trim($product_data['area_info']) == '' && trim($city_name) != '' && trim($province_name) != ''){
+                $product_data['area_info'] = $province_name . $city_name;
+            }
+            //-------------------------------------- 处理营业执照地区信息(结束) --------------------------------------
+
+            //-------------------------------------- 处理发货省份地区信息(开始) --------------------------------------
+            $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;
+                }
+            }
+            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 {
+                    $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;
+                    }
+                }
+            }
+            //如果存在市区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;
             }
-            // if ($city_name != '') {
-            //     $city_name_value = $CitysModel->where([['id', '=', $product_data['city_id']], ['level', '=', '2']])->value('name');
-            //     $city_name = !empty($city_name_value) ? $city_name_value : '';
-            // }
+            //-------------------------------------- 处理发货省份地区信息(结束) --------------------------------------
+            //处理链接信息
+            preg_match('/https?:\/\/[^\s\'"<>]+/i', $product_data['link_url'], $matches);
+            if(!empty($matches)){
+                $product_data['link_url'] = $matches[0];
+            }
+            if (trim($product_data['link_url']) == '') continue;
+
+            //穿透匿名店铺处理
             $store_name = $product_data['store_name'];
             $anonymous_store_name = $product_data['anonymous_store_name'];
             if ($anonymous_store_name != '') {