Exemplo n.º 1
0
 /**
  * TrackWarnInfoAct::act_getTrackNumberInfo()
  * 列出某个跟踪号的详细追踪信息
  * @param integer $tid 分表ID
  * @param string $trackNumber 跟踪号
  * @return array
  */
 public function act_getTrackNumberInfo()
 {
     $tid = isset($_POST["tid"]) ? intval($_POST["tid"]) : 0;
     $trackNumber = isset($_POST["trackNumber"]) ? post_check($_POST["trackNumber"]) : "";
     $act = isset($_REQUEST["act"]) ? post_check($_REQUEST["act"]) : "";
     $mod = isset($_REQUEST["mod"]) ? post_check($_REQUEST["mod"]) : "";
     if (!AuthUser::checkLogin($mod, $act)) {
         self::$errCode = 10002;
         self::$errMsg = "对不起,您无跟踪号详细数据查看权限!";
         return false;
     }
     if (empty($tid) || !is_numeric($tid)) {
         self::$errCode = "ID有误";
         self::$errMsg = 10000;
         return false;
     }
     if (empty($trackNumber)) {
         self::$errCode = "跟踪号有误!";
         self::$errMsg = 10001;
         return false;
     }
     $res['trackInfo'] = TrackWarnInfoModel::listTrackNumberInfo($tid, $trackNumber);
     self::$errCode = TrackWarnInfoModel::$errCode;
     self::$errMsg = TrackWarnInfoModel::$errMsg;
     if (in_array($tid, array(2, 6, 79, 88, 89))) {
         $res['countryInfo'] = TrackWarnInfoModel::listTrackNumberInfoForCountry($tid, $trackNumber);
     } else {
         $res['countryInfo'] = array();
     }
     return $res;
 }
Exemplo n.º 2
0
print_r($nodes);
if (empty($nodes)) {
    exit("未设置运德物流预警节点,暂没法分析数据!\n");
}
foreach ($countrys as $c) {
    $country = $c['countryNameEn'];
    $postion = empty($where) ? "toCountry = '{$country}'" : $where . " AND toCountry = '{$country}'";
    $numberList = TransOpenApiModel::getTrackNumberList($page, $pagenum, $carrierId, $postion, $hours, 'DESC');
    //获取符合条件的跟踪号列表
    $total = count($numberList);
    echo date('Y-m-d H:i:s', time()) . "===" . $c['countryNameEn'] . "===" . $total . "条数据分析开始!" . "\n\n";
    //得到原始数据
    foreach ($numberList as $v) {
        $timestr = date('Y-m-d H:i:s', time());
        $times = $v['scanTime'];
        $details = TrackWarnInfoModel::listTrackNumberInfo($carrierId, $v['trackNumber']);
        $details = json_decode($details, true);
        foreach ($details as $detail) {
            foreach ($nodes as $node) {
                if (strpos($detail['event'], $node['nodeName']) !== false) {
                    $trackTime = strtotime($detail['trackTime']);
                    if ($trackTime !== false) {
                        $aging = $trackTime - $times;
                        $aging = $aging <= 0 ? 0 : $aging;
                        $data[$v['toCountry']][$node['nodeName']][] = $aging;
                        //$data[$v['toCountry']]['trackNumbers'][]	= $v['trackNumber'];
                        $times = $trackTime;
                        break;
                    }
                }
            }