- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
//Получим все пробеги за все периоды
$ps_res = array();
foreach ($crews as $v)
{
foreach ($v['ps'] as $ps)
{
/**
* Отправим горку запросов в виалон на получение километража.
* Можноо, конечно сделать по людски и генерировать массив и
* получить это всё одним запросом, но мне лень,
* буду лучше как мудак грузить систему виалона.
*/
$g = $api->call('gps/get_c_report',
array('car_id' => $v['WI'],
'begin_time' => $ps['begin'],
'end_time' => $ps['end']));
$cnt = (float) str_replace(' km', '', $g[1]->reportResult->stats[0][1]);
if ($cnt > 2)
{
/**
* Если проехали больше 2 км, то упаковать данные на
* выставление пиздюлей
*/
$ps_res[$v['ID']][] = array('id' => $v['ID'], 'cnt' => $cnt, 'ps' => $ps);
}
}
if (!empty($ps_res))
{
/**
* Выполним операции на каждой итерации, ибо виалон - зло.
* отваливается при большом количестве запросов.
* Нет, я не настолько мудак в любом случае у них ограничение на кол-во
* операций варьирующееся от количества нагрузки на сервер.
*/
set_op($ps_res);
unset($ps_res[$v['ID']]);
}
}
superhacker777 12.02.2015 00:09 # +1
bormand 12.02.2015 06:34 # +1
А автор то как доволен, что этот самый виалон долбят запросами... Хотя на клиенте лучше было бы, да. Тогда получился бы ддос.
Rijen 12.02.2015 14:17 # 0
heyzea1 12.02.2015 14:07 # +1