예제 #1
0
 /**
  * TrackEmailStatModel::sendTrackEmail()
  * 发送跟踪邮件
  * @param array $data 邮件内容
  * @return bool
  */
 public static function sendTrackEmail($data)
 {
     require_once WEB_PATH . 'lib/ses/SimpleEmailService.php';
     require_once WEB_PATH . 'lib/ses/SimpleEmailServiceRequest.php';
     require_once WEB_PATH . 'lib/ses/SimpleEmailServiceMessage.php';
     $smtpUser = $data['smtpUser'];
     $smtpPwd = $data['smtpPwd'];
     $smtpHost = $data['smtpHost'];
     $title = $data['title'];
     $content = $data['content'];
     $toUserEmail = $data['toUserEmail'];
     $toUserId = $data['toUserId'];
     $userEmail = $data['userEmail'];
     $userName = $data['userName'];
     $trackNum = $data['trackNumber'];
     $retryCount = $data['retryCount'];
     // print_r($data);
     // exit;
     //初始化邮件发送
     $ses = new SimpleEmailService($smtpUser, $smtpPwd);
     $m = new SimpleEmailServiceMessage();
     $m->addTo(array("{$toUserId} <{$toUserEmail}>"));
     //收件人
     $m->setFrom("{$userName} <{$userEmail}>");
     //发件人
     $m->setSubject($title);
     // 邮件标题
     $m->setMessageFromString(NULL, $content);
     //内容
     //设置标题和内容编码
     $m->setSubjectCharset('UTF-8');
     $m->setMessageCharset('UTF-8');
     $res = $ses->sendEmail($m);
     //发送邮件
     if (!empty($res['MessageId'])) {
         $flag = TransOpenApiModel::updateTrackNumber($trackNum, array("toEmailSend" => 1));
         if ($flag) {
             $res['sendFlag'] = 1;
         } else {
             $res['sendFlag'] = 2;
         }
     } else {
         $where = "trackNumber = '{$trackNum}' AND retryCount>='{$retryCount}' AND is_success = 0";
         $result = self::checkRetryCount($where);
         $counts = isset($result['retryCount']) ? intval($result['retryCount']) : 0;
         if ($counts >= $retryCount) {
             $flag = TransOpenApiModel::updateTrackNumber($trackNum, array("toEmailSend" => 2));
         }
         $res['sendFlag'] = 0;
     }
     return $res;
 }
예제 #2
0
function track_number_detail_country($trackName)
{
    global $trackNumber, $carrierId;
    $detailInfo = TransOpenApiModel::getTrackInfo($trackNumber, $trackName);
    echo $detailInfo, "\n";
    $detailInfo = json_decode($detailInfo, true);
    print_r($detailInfo);
    $data = array();
    if (is_array($detailInfo)) {
        $detailCount = count($detailInfo['trackingEventList']);
        if ($detailCount > 0) {
            //有跟踪数据插入
            foreach ($detailInfo['trackingEventList'] as $key => $val) {
                $postion = post_check($val['place']);
                $event = post_check($val['details']);
                $trackTime = strtotime($val['date']) ? strtotime($val['date']) : strtotime(trim(substr($val['date'], 0, strpos($val['date'], ' '))));
                $addTime = time();
                array_push($data, "('{$trackNumber}','{$postion}','{$event}','{$trackTime}','{$addTime}')");
            }
            array_push($data, $trackNumber);
            print_r($data);
            $sql_data = $data;
            $data = array('status' => $detailInfo['Response_Info']['status']);
            $res_number = TransOpenApiModel::updateTrackNumber($trackNumber, $data);
            //更新跟踪号信息
            $res_detail = TransOpenApiModel::addTrackNumberDetailByCountry($carrierId, $sql_data);
            //详细数据插入
            echo $res_detail, "=====", $res_number, "=====", date('Y-m-d H:i:s'), "\n";
            return $detailInfo['Response_Info']['status'];
        } else {
            if (!isset($detailInfo['errCode'])) {
                $res = TransOpenApiModel::updateTrackNumber($trackNumber, array("trackTime" => time()));
                // check_cancel_order();
                return 0;
            } else {
                return -1;
            }
        }
    } else {
        return -1;
    }
}
            } else {
                $res_number = $v['trackNumber'];
            }
            echo $res_detail, "=====", $res_number, "=====", date('Y-m-d H:i:s', time()), "\n";
            $errnum = 1;
        } else {
            if (isset($detailInfo['errCode'])) {
                if ($errnum >= $errMaxNum) {
                    echo date('Y-m-d H:i:s', time()), "===数据连续抓取失败{$errMaxNum},即将退出数据抓取\n";
                    $message = TransOpenApiModel::sendMessage("{$type}", "{$from}", "{$to}", '物流系统服务器(121.40.69.217)报错,' . $detailInfo['ReturnValue'] . '-cid:' . $carrierId . ',请及时处理下!', '物流系统服务器报错' . $detailInfo['errCode']);
                    echo date('Y-m-d H:i:s', time()), "===信息发送状态:", $message, "\n";
                    break;
                }
                $errnum++;
            } else {
                $res = TransOpenApiModel::updateTrackNumber($trackNumber, array("trackTime" => time()));
                check_cancel_order();
                $errnum = 1;
            }
        }
    }
    $row++;
}
//检查ERP是否有邮局退回
function check_cancel_order()
{
    global $dbConn, $carrierId, $trackNumber;
    echo date('Y-m-d H:i:s', time()), "===检查订单状态开始===\n";
    empty($carrierId) ? $condition = 1 : ($condition = "carrierId={$carrierId}");
    $sql = "SELECT orderSn,lastTime FROM trans_track_number WHERE {$condition} AND trackNumber = '{$trackNumber}'";
    $query = $dbConn->query($sql);