|
...
|
...
|
@@ -57,8 +57,11 @@ class SyncInquiryProject extends Command |
|
|
|
*/
|
|
|
|
public function handle()
|
|
|
|
{
|
|
|
|
echo '开始同步v5' . PHP_EOL;
|
|
|
|
$this->syncGloV5();
|
|
|
|
echo '开始同步v6' . PHP_EOL;
|
|
|
|
$this->syncGloV6();
|
|
|
|
echo '删除过期数据' . PHP_EOL;
|
|
|
|
$this->deleteExpire();
|
|
|
|
return true;
|
|
|
|
}
|
|
...
|
...
|
@@ -73,12 +76,14 @@ class SyncInquiryProject extends Command |
|
|
|
$channel = Channel::pluck('contact_mobile', 'id')->toArray();
|
|
|
|
foreach ($result as $key=>$val)
|
|
|
|
{
|
|
|
|
echo '同步项目:' . $val['postid'] . ' - ' . $val['company'] . PHP_EOL;
|
|
|
|
// 记录渠道商, 如果渠道有问题, 记录日志, 跳过当前项目, 处理数据后, 第二天再重新同步
|
|
|
|
$channel_flag = false;
|
|
|
|
$channel_tmp = [];
|
|
|
|
foreach ($val['agent'] as $v) {
|
|
|
|
$channel_id = array_search($v, $channel);
|
|
|
|
if (empty($channel_id)) {
|
|
|
|
$this->log('ERROR 代理商找不到不记录当前项目, 代理商手机号码:' . $v);
|
|
|
|
$channel_flag = true;
|
|
|
|
break;
|
|
|
|
}
|
|
...
|
...
|
@@ -106,16 +111,32 @@ class SyncInquiryProject extends Command |
|
|
|
*/
|
|
|
|
public function syncGloV5Route($project_id, $route_domain)
|
|
|
|
{
|
|
|
|
$result = http_get($route_domain . 'k_u_api.php');
|
|
|
|
try{
|
|
|
|
$result = http_get($route_domain . 'k_u_api.php');
|
|
|
|
if (empty($result)) {
|
|
|
|
$this->log('syncGloV5Route 未获取到路由信息:' . $project_id . ', 路由获取地址:' . $route_domain . 'k_u_api.php');
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
$this->log('syncGloV5Route 未获取到路由信息:' . $project_id . ', 路由获取地址:' . $route_domain . 'k_u_api.php' . ', 错误信息:' . $e->getMessage());
|
|
|
|
echo 'syncGloV5Route 未获取到路由信息:' . $project_id . ', 路由获取地址:' . $route_domain . 'k_u_api.php' . ', 错误信息:' . $e->getMessage() . PHP_EOL;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach ($result as $key=>$val) {
|
|
|
|
try {
|
|
|
|
$tmp = explode('|', $val);
|
|
|
|
$url_tmp = parse_url($tmp[0]);
|
|
|
|
$route = trim($url_tmp['path'], '/');
|
|
|
|
$title = str_replace('+', ' ', $tmp[1]);
|
|
|
|
if (strlen($title) > 200 || strlen($route) > 200) {
|
|
|
|
$this->log('syncGloV5Route 路由或标题过长,无效记录');
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
InquiryProjectRoute::saveProjectRoute($project_id, $title, $route);
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
$this->log('syncGloV5Route 解析路径:' . $val . ', 错误信息:' . $e->getMessage());
|
|
|
|
echo 'syncGloV5Route 解析路径:' . $val . ', 错误信息:' . $e->getMessage() . PHP_EOL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
...
|
...
|
@@ -140,6 +161,7 @@ class SyncInquiryProject extends Command |
|
|
|
// 获取所有项目域名
|
|
|
|
$domains = DomainInfo::whereIn('project_id', $project->pluck('id')->toArray())->pluck('domain', 'project_id')->toArray();
|
|
|
|
foreach ($project as $key=>$val) {
|
|
|
|
echo '同步项目:' . $val->id . ' - ' . $val->title . PHP_EOL;
|
|
|
|
// 过滤暂停优化项目, 映射类型2, model没有定义常量
|
|
|
|
if (in_array(2, $val->level))
|
|
|
|
continue;
|
|
...
|
...
|
@@ -167,6 +189,7 @@ class SyncInquiryProject extends Command |
|
|
|
// 产品数量会比较多, 所以使用分页 同步数据
|
|
|
|
$id = 0;
|
|
|
|
while (true) {
|
|
|
|
echo '同步项目路由:' . $id . PHP_EOL;
|
|
|
|
$product = Product::where('status', Product::STATUS_ON)->where('id', '>', $id)->orderBy('id', 'asc')->limit(1000)->get(['id', 'title', 'route']);
|
|
|
|
if ($product->isEmpty())
|
|
|
|
break;
|
...
|
...
|
|