Ejemplo n.º 1
0
 function getOrderMessage($starttime, $endtime)
 {
     global $ali_user;
     // echo $ali_user;exit;
     $currentpage = 1;
     //当前页码 默认为一
     $aliorder_obj = new AliOderMessageModel();
     //message数据库处理类
     $roundtimes = 1;
     $pageindex = 1;
     while ($roundtimes++ <= 100) {
         //一次最多抓50次
         echo "\ncurrent page number : {$pageindex}\n";
         $data = array('access_token' => $this->access_token, 'currentPage' => $pageindex, 'pageSize' => ALI_PAGESIZE, 'startTime' => $starttime, 'endTime' => $endtime);
         //print_r($data);
         $url = "{$this->server}/{$this->rootpath}/{$this->protocol}/{$this->version}/{$this->ns}/api.queryOrderMsgList/{$this->appKey}";
         $result = $this->Curl($url, $data);
         $List = json_decode($result, true);
         //             print_r($List);exit();
         if ($List === FALSE) {
             //返回数据个格式错误 则跳出重来 <防止网络故障>
             writeLog(ALIREPLYERR, '返回数据格式错误 --- ' . $result . "\n" . var_export($data));
             continue;
         }
         if (isset($List['error_code'])) {
             //返回报错信息
             writeLog(ALI_LOGPATH, '返回数据格式错误 --- ' . $result . "\n" . var_export($data, TRUE));
             continue;
         }
         $data = array();
         $msg_list = $List['msgList'];
         if (empty($msg_list)) {
             //抓取的消息为空 则说明该时间段的数据已经抓取完成了 则跳出
             break;
         }
         foreach ($msg_list as $msgval) {
             $data['message_id'] = $msgval['id'];
             $exists = $aliorder_obj->checkIfExistsByMsgId($data['message_id']);
             if ($exists) {
                 // 改消息已经抓取过了 <防止重复抓取>
                 echo "message has exists! --- ID : {$data['message_id']}\n";
                 continue;
             }
             $data['senderid'] = $msgval['senderLoginId'];
             // 发送人id
             $data['orderid'] = $msgval['orderId'];
             // 订单号
             $data['receiverid'] = $msgval['receiverLoginId'];
             // 接收人id
             $data['recievername'] = $msgval['receiverName'];
             // 接收人名字
             $data['sendername'] = $msgval['senderName'];
             // 发送人名称
             //                 echo "sender => ", $data['senderid'],"\n";
             if ($this->isWorker($data['senderid'])) {
                 $data['role'] = 0;
                 //0表示工作人员回复的
             } else {
                 $data['role'] = 1;
                 //1表示客户回复的
             }
             //                 print_r($data);continue;
             $data['orderurl'] = $msgval['orderUrl'];
             // 订单地址
             $data['content'] = $msgval['content'];
             // 留言内容
             $data['piclink'] = $msgval['fileUrl'];
             // 图片文件内容
             $data['createtimestr'] = $msgval['gmtCreate'];
             // 留言生成时间
             $data['createtimestamp'] = aliTranslateTime($msgval['gmtCreate']);
             //转换时间戳
             $data['addtime'] = time();
             // 抓单时间
             $data['havefile'] = $msgval['haveFile'];
             // 是否有附件
             $data['isread'] = $msgval['read'];
             // 是否已经
             //                 echo 'role => ',$data['role'], "+\n";
             if ($data['role'] == 1) {
                 //客户留言则分配文件夹 工作人员回复不分配文件夹
                 $data['fieldid'] = $this->getFiledId($data['senderid'], $data['receiverid']);
                 //获得分类id信息
             } else {
                 $data['fieldid'] = 0;
             }
             //                 echo $data['fieldid'], "\n\n";continue;
             $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->insertNewRecords($data);
             // 存入数据库
             if ($insert_result == FALSE) {
                 // 插入失败 写日志
                 writeLog(ALIREPLYERR, AliOderMessageModel::$errMsg);
                 continue;
             } else {
                 echo 'add success !  ', $data['message_id'], "\n";
             }
         }
         $pageindex++;
         //$roundtimes++;
     }
     unset($List);
     return TRUE;
 }