Exemple #1
0
 public function getSiteMessage($starttime, $endtime)
 {
     global $ali_user;
     $currentpage = 1;
     //当前页码 默认为一
     $aliorder_obj = new AliOderMessageModel();
     //message数据库处理类
     $roundtimes = 1;
     $pageindex = 1;
     while ($roundtimes++ <= 50) {
         //一次最多抓50次
         echo "\ncurrent page number : {$pageindex}\n";
         $data = array('access_token' => $this->access_token, 'currentPage' => $pageindex, 'pageSize' => ALI_PAGESIZE, 'startTime' => $starttime, 'endTime' => $endtime);
         $url = "{$this->server}/{$this->rootpath}/{$this->protocol}/{$this->version}/{$this->ns}/api.queryMessageList/{$this->appKey}";
         $result = $this->Curl($url, $data);
         $List = json_decode($result, true);
         if ($List === FALSE) {
             //返回数据个格式错误 则跳出重来 <防止网络故障>
             writeLog(ALI_LOGPATH, '返回数据格式错误 --- ' . $result . "\n" . var_export($data, TRUE));
             continue;
         }
         if (isset($List['error_code'])) {
             //返回报错信息
             writeLog(ALI_LOGPATH, '返回数据格式错误 --- ' . $result . "\n" . var_export($data, TRUE));
             continue;
         }
         // print_r($List); exit;
         $msg_list = $List['msgList'];
         if (empty($msg_list)) {
             //抓取的消息为空 则说明该时间段的数据已经抓取完成了 则跳出
             break;
         }
         foreach ($msg_list as $msgval) {
             $data = array();
             $data['message_id'] = $msgval['id'];
             $exists = $aliorder_obj->checkIfExistsBySiteMsgId($data['message_id']);
             if ($exists) {
                 // 改消息已经抓取过了 <防止重复抓取>
                 echo "message has exists! --- ID : {$data['message_id']}\n";
                 continue;
             }
             $data['relationId'] = $msgval['relationId'];
             // 关系id
             $data['senderid'] = $msgval['senderLoginId'];
             // 发送人登陆id
             //                 echo "sender => ", $data['senderid'],"\n";
             if ($this->isWorker($data['senderid'])) {
                 $data['role'] = 0;
                 //0表示工作人员回复的
             } else {
                 $data['role'] = 1;
                 //1表示客户回复的
             }
             //                 print_r($data);continue;
             $data['sendername'] = $msgval['senderName'];
             // 发送人名称
             $data['receiverid'] = $msgval['receiverLoginId'];
             // 接收人登陆id
             $data['receivername'] = $msgval['receiverName'];
             // 接收名称
             $data['productUrl'] = $msgval['productUrl'];
             // 产品url
             $data['productName'] = $msgval['productName'];
             // 产品名称
             $data['productId'] = $msgval['productId'];
             // 产品id
             $data['typeId'] = $msgval['typeId'];
             // 类型id
             $data['addtime'] = time();
             // 抓单时间
             $data['orderUrl'] = trim($msgval['orderUrl']);
             // 订单url
             $data['orderId'] = trim($msgval['orderId']);
             // 订单id
             $data['gmtCreate'] = $msgval['gmtCreate'];
             // message产生时间
             $data['createtimestamp'] = aliTranslateTime($msgval['gmtCreate']);
             //转换时间戳
             $data['content'] = $msgval['content'];
             // 消息内容
             $data['isRead'] = $msgval['isRead'];
             // 是否已读取
             $data['haveFile'] = $msgval['haveFile'];
             // 是否有附件
             $data['fileUrl'] = $msgval['fileUrl'];
             // 附件地址
             if ($data['role'] == 1) {
                 //客户留言则分配文件夹 工作人员回复不分配文件夹
                 $data['fieldid'] = $this->getFiledId($data['senderid'], $data['receiverid']);
                 //获得分类id信息
             } else {
                 $data['fieldid'] = 0;
             }
             //                 echo $data['fieldid'],"\n\n";continue;
             if (!empty($data['orderId']) && !empty($data['orderUrl'])) {
                 //该留言与订单绑定
                 $orderDetail = $this->fetchOrderdetail($data['orderId']);
                 //                 print_r($orderDetail);exit;
                 if (isset($orderDetail['frozenStatus']) && $orderDetail['frozenStatus'] == 'IN_FROZEN') {
                     //冻结中订单
                     $data['orderstatus'] = strtoupper($orderDetail['frozenStatus']);
                 } elseif (isset($orderDetail['issueStatus']) && $orderDetail['issueStatus'] == 'IN_ISSUE') {
                     $data['orderstatus'] = strtoupper($orderDetail['issueStatus']);
                 } elseif (isset($orderDetail['orderStatus'])) {
                     $data['orderstatus'] = strtoupper($orderDetail['orderStatus']);
                 } else {
                     $data['orderstatus'] = '';
                 }
             }
             $insert_result = $aliorder_obj->insertNewSiteMsgRecords($data);
             // 存入数据库
             if ($insert_result == FALSE) {
                 // 插入失败 写日志
                 writeLog(ALI_LOGPATH, AliOderMessageModel::$errMsg);
                 continue;
             } else {
                 echo 'add success !  ', $data['message_id'], "\n";
             }
         }
         $pageindex++;
         //$roundtimes++;
     }
     unset($List);
     return TRUE;
 }