作者 lyh

Merge branch 'master' of http://47.244.231.31:8099/zhl/globalso-v6 into develop

... ... @@ -60,7 +60,7 @@ class ProjectVisit extends Command
$api_type = $task->api_type;
$api_url = $task->api_url;
$page_size = 200;
$page_size = 1000;
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', task_type: ' . $api_type . ', update start' . PHP_EOL;
... ... @@ -76,6 +76,7 @@ class ProjectVisit extends Command
$data = curl_c($url);
if (isset($data['count']) && $data['count'] > 0) {
$count = $data['count'];
$max_id = $data['data'][0]['id'] ?? 0;
$total_page = ceil($count / $page_size);
for ($page = 1; $page <= $total_page; $page++) {
... ... @@ -84,35 +85,40 @@ class ProjectVisit extends Command
if (isset($data_page['data']) && $data_page['data']) {
$items = $data_page['data'];
$model = new Visit();
$insert = [];
foreach ($items as $item) {
if (isset($item['id']) && $item['id']) {
$visit = $model->read(['original_id' => $item['id']], 'id');
if (!$visit) {
try {
$url_arr = parse_url($item['request'] ?? '');
$model->insert([
'url' => $item['request'] ?? '',
'referrer_url' => $item['referrer'] ?? '',
'device_port' => isset($item['is_moblie']) && $item['is_moblie'] == 1 ? 2 : 1,
'country' => $item['ip_area'] ?? '',
'ip' => $item['ip'] ?? '',
'depth' => $item['pv'],
'domain' => $url_arr['host'] ?? '',
'is_inquiry' => $item['is_cf'] ?? 0,
'created_at' => date('Y-m-d H:i:s', isset($item['update']) && $item['update'] ? $item['update'] : time()),
'updated_at' => date('Y-m-d H:i:s', isset($item['update']) && $item['update'] ? $item['update'] : time()),
'updated_date' => date('Y-m-d', isset($item['c_time']) && $item['c_time'] ? strtotime($item['c_time']) : time()),
'original_id' => $item['id'],
]);
} catch (\Exception $e) {
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', error: ' . $e->getMessage() . PHP_EOL;
continue;
}
if ($item['id'] > $task->max_id) {
$url_arr = parse_url($item['request'] ?? '');
$insert[] = [
'url' => $item['request'] ?? '',
'referrer_url' => $item['referrer'] ?? '',
'device_port' => isset($item['is_moblie']) && $item['is_moblie'] == 1 ? 2 : 1,
'country' => $item['ip_area'] ?? '',
'ip' => $item['ip'] ?? '',
'depth' => $item['pv'],
'domain' => $url_arr['host'] ?? '',
'is_inquiry' => $item['is_cf'] ?? 0,
'created_at' => date('Y-m-d H:i:s', isset($item['update']) && $item['update'] ? $item['update'] : time()),
'updated_at' => date('Y-m-d H:i:s', isset($item['update']) && $item['update'] ? $item['update'] : time()),
'updated_date' => date('Y-m-d', isset($item['c_time']) && $item['c_time'] ? strtotime($item['c_time']) : time()),
'original_id' => $item['id'],
];
}
}
}
try {
$model->insert($insert);
} catch (\Exception $e) {
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ',page: ' . $page . ' error: ' . $e->getMessage() . PHP_EOL;
continue;
}
}
}
if ($max_id) {
$task->max_id = $max_id;
$task->save();
}
} else {
return true;
}
... ... @@ -122,6 +128,7 @@ class ProjectVisit extends Command
$data = curl_c($url);
if (isset($data['count']) && $data['count'] > 0) {
$count = $data['count'];
$max_id = $data['data'][0]['id'] ?? 0;
$total_page = ceil($count / $page_size);
for ($page = 1; $page <= $total_page; $page++) {
... ... @@ -131,36 +138,41 @@ class ProjectVisit extends Command
$items = $data_page['data'];
$model = new VisitItem();
$p_model = new Visit();
$insert = [];
foreach ($items as $item) {
if (isset($item['id']) && $item['id']) {
$visit = $model->read(['original_id' => $item['id']], 'id');
if (!$visit) {
try {
$p_info = $p_model->read(['ip' => $item['ip'] ?? '', 'updated_date' => $item['day_at'] ?? '']);
if ($p_info) {
$model->insert([
'customer_visit_id' => $p_info['id'],
'url' => $p_info['url'],
'referrer_url' => $p_info['referrer_url'],
'device_port' => $p_info['device_port'],
'country' => $p_info['country'],
'ip' => $p_info['ip'],
'domain' => $p_info['domain'],
'created_at' => $item['time_str'] ?? $p_info['created_at'],
'updated_at' => $item['time_str'] ?? $p_info['updated_at'],
'updated_date' => $item['day_at'] ?? $p_info['updated_date'],
'original_id' => $item['id'],
]);
}
} catch (\Exception $e) {
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', error: ' . $e->getMessage() . PHP_EOL;
continue;
if ($item['id'] > $task->max_id) {
$p_info = $p_model->read(['ip' => $item['ip'] ?? '', 'updated_date' => $item['day_at'] ?? '']);
if ($p_info) {
$insert[] = [
'customer_visit_id' => $p_info['id'],
'url' => $p_info['url'],
'referrer_url' => $p_info['referrer_url'],
'device_port' => $p_info['device_port'],
'country' => $p_info['country'],
'ip' => $p_info['ip'],
'domain' => $p_info['domain'],
'created_at' => $item['time_str'] ?? $p_info['created_at'],
'updated_at' => $item['time_str'] ?? $p_info['updated_at'],
'updated_date' => $item['day_at'] ?? $p_info['updated_date'],
'original_id' => $item['id'],
];
}
}
}
}
try {
$model->insert($insert);
} catch (\Exception $e) {
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ',page: ' . $page . ' error: ' . $e->getMessage() . PHP_EOL;
continue;
}
}
}
if ($max_id) {
$task->max_id = $max_id;
$task->save();
}
} else {
return true;
}
... ...