1. PHP / Говнокод #17626

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 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']]);
    			}
    		}

    Комменты доставили, да.

    Запостил: Rijen, 11 Февраля 2015

    Комментарии (4) RSS

    • Ох, почему это на клиенте не делается? Ладно бы если сервис не предоставлял JS API, но у них он есть, вроде. Если же это необходимо для проверки каких-то данных, то тоже не в контроллер (если тут такое вообще есть) же пихать, ну ебаный же ты в рот! А потом сидишь такой, жмешь каждые n секунд F5, и сидишь несколько секунд в ожидании, что уж в этот раз-то оно должно уже наконец пройти.
      Ответить
      • > сидишь такой, жмешь каждые n секунд F5
        А автор то как доволен, что этот самый виалон долбят запросами... Хотя на клиенте лучше было бы, да. Тогда получился бы ддос.
        Ответить
        • У живых человеков нет доступа к выполнению этого файлика, только cron.
          Ответить
    • Зато вполне подлежит рефакторингу / допиливанию, в отличие от другого ГК на пхп, которое проще переписать
      Ответить

    Добавить комментарий