|
...
|
...
|
@@ -34,9 +34,13 @@ class CountAllProject extends Command |
|
|
|
|
|
|
|
|
|
|
|
public function handle(){
|
|
|
|
$countAllModel = new AllProject;
|
|
|
|
AllProject::truncate();
|
|
|
|
// $noSixData = [];
|
|
|
|
// $noSixData = $this->NoSixProject();
|
|
|
|
$noSixData = $this->NoSixProject();
|
|
|
|
$countAllModel->insert($noSixData);
|
|
|
|
$sixData = $this->sixProject();
|
|
|
|
$countAllModel->insert($sixData);
|
|
|
|
$data = array_merge($noSixData ?? [],$sixData ?? []);
|
|
|
|
echo 'success:' .count($data) . PHP_EOL . date('Y-m-d H:i:s');
|
|
|
|
return true;
|
|
...
|
...
|
@@ -53,18 +57,34 @@ class CountAllProject extends Command |
|
|
|
$res_data = [];
|
|
|
|
$i = 1;
|
|
|
|
while (true) {
|
|
|
|
$url = 'https://quanqiusou.cn/extend_api/api/projects.php?page=' . $i . '&pagesize=100';
|
|
|
|
$result = curl_get($url);
|
|
|
|
$url = 'https://quanqiusou.cn/extend_api/api/projects.php?page=' . $i . '&pagesize=50';
|
|
|
|
$result = $this->httpGetProxy($url);
|
|
|
|
// 检查结果是否成功,并且结构符合预期
|
|
|
|
if (isset($result['data']['data']) && is_array($result['data']['data'])) {
|
|
|
|
$data = $result['data']['data'];
|
|
|
|
// 如果当前页没有数据,跳出循环
|
|
|
|
if (empty($data)) {
|
|
|
|
if ($i == 2) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
foreach ($data as $k => $v){
|
|
|
|
if(empty($v['online_date'])){
|
|
|
|
$v['online_date'] = null;
|
|
|
|
}
|
|
|
|
if($v['is_admin5'] == 5){
|
|
|
|
$v['version'] = 2;
|
|
|
|
}else{
|
|
|
|
$v['version'] = 3;
|
|
|
|
}
|
|
|
|
$v['is_upgrade'] = 0;
|
|
|
|
$v['status'] = 0;
|
|
|
|
$v['created_at'] = $v['updated_at'] = date('Y-m-d H:i:s');
|
|
|
|
$data[$k] = $v;
|
|
|
|
}
|
|
|
|
echo '执行页数:' . $i . PHP_EOL . date('Y-m-d H:i:s') . PHP_EOL;
|
|
|
|
$res_data = array_merge($res_data, $data);
|
|
|
|
$i++;
|
|
|
|
// 每次请求后增加 1 秒延迟,防止请求过于频繁
|
|
|
|
sleep(1);
|
|
|
|
} else {
|
|
|
|
// 如果数据结构不符合预期,输出错误信息并跳出循环
|
|
|
|
echo '数据结构不符合预期或请求失败,停止执行。' . PHP_EOL . json_encode($result);
|
|
...
|
...
|
@@ -74,6 +94,26 @@ class CountAllProject extends Command |
|
|
|
return $res_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function httpGetProxy($url){
|
|
|
|
$ch1 = curl_init();
|
|
|
|
$timeout = 0;
|
|
|
|
curl_setopt($ch1, CURLOPT_URL, $url);
|
|
|
|
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
curl_setopt($ch1, CURLOPT_PROXY, 'http://69.90.188.183:51395');
|
|
|
|
curl_setopt($ch1, CURLOPT_ENCODING, '');
|
|
|
|
curl_setopt($ch1, CURLOPT_MAXREDIRS, 10);
|
|
|
|
curl_setopt($ch1, CURLOPT_HTTPHEADER, array());
|
|
|
|
curl_setopt($ch1, CURLOPT_CONNECTTIMEOUT, $timeout);
|
|
|
|
curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
|
|
curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, FALSE);
|
|
|
|
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
|
|
|
|
curl_setopt($ch1, CURLOPT_CUSTOMREQUEST, 'GET');
|
|
|
|
curl_setopt($ch1, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
|
|
|
|
$content = curl_exec($ch1);
|
|
|
|
curl_close($ch1);
|
|
|
|
return json_decode($content, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function sixProject(){
|
|
|
|
$projectModel = new Project();
|
|
|
|
$manageModel = new ManageHr();
|
|
...
|
...
|
@@ -100,9 +140,9 @@ class CountAllProject extends Command |
|
|
|
'online_date'=>$v['uptime'],
|
|
|
|
'keywords_num'=>$v['key'],
|
|
|
|
'service_num'=>$v['day'],
|
|
|
|
'production_num'=>intval(abs(strtotime((empty($v['uptime']) ? date('Y-m-d H:i:s') : $v['uptime'])) - $v['created_at']) / 86400),
|
|
|
|
'production_num'=>intval(abs((empty($v['uptime']) ? time() : strtotime($v['uptime'])) - strtotime($v['created_at'])) / 86400),
|
|
|
|
'plan'=>Project::planMap()[$v['plan']],
|
|
|
|
'status'=>$v['status'],
|
|
|
|
'status'=>0,
|
|
|
|
'test_domain'=>$v['test_domain'],
|
|
|
|
'product_domain'=>!empty($v['domain']) ? (new DomainInfo())->getDomain($v['domain']) : '',
|
|
|
|
'project_manager'=>$manageModel->getName($v['manager_mid'] ?? ''),
|
|
...
|
...
|
@@ -113,6 +153,8 @@ class CountAllProject extends Command |
|
|
|
'service_optimize'=>$manageModel->getName($v['optimize_optimist_mid'] ??''),
|
|
|
|
'service_assistant'=>$manageModel->getName($v['optimize_assist_mid'] ??''),
|
|
|
|
'qa'=>$manageModel->getName($v['quality_mid'] ??''),
|
|
|
|
'created_at'=>date('Y-m-d H:i:s'),
|
|
|
|
'updated_at'=>date('Y-m-d H:i:s'),
|
|
|
|
];
|
|
|
|
}
|
|
|
|
$i++;
|
|
...
|
...
|
@@ -131,6 +173,7 @@ class CountAllProject extends Command |
|
|
|
'gl_project.channel AS channel',
|
|
|
|
'gl_project.company AS company',
|
|
|
|
'gl_project.type AS type',
|
|
|
|
'gl_project.status AS status',
|
|
|
|
'gl_project.extend_type AS extend_type',
|
|
|
|
'gl_project.uptime AS uptime',
|
|
|
|
'gl_project.is_upgrade AS is_upgrade',
|
...
|
...
|
|