public function conversationList($request, $response)
 {
     /*{{{*/
     $options = array();
     $nowPage = $request->page ? $request->page : 1;
     $pageSize = 20;
     $options['conversationId'] = $request->conversationId;
     $options['customerPhoneNumber'] = XString::decodeMobileNo($request->customerPhoneNumber);
     $direction = $request->direction === null ? -1 : $request->direction;
     $fromTime = $request->fromTime;
     $toTime = $request->toTime;
     $type = $request->type;
     $source = $request->source === null ? -1 : $request->source;
     $fromTime = empty($fromTime) ? $type ? XDateTime::today()->addDay(-30)->toShortString() : XDateTime::today()->toShortString() : $request->fromTime;
     $toTime = empty($toTime) ? XDateTime::today()->toShortString() : $request->toTime;
     $response->fromTime = $fromTime;
     $response->toTime = $toTime;
     $response->fromHour = $request->fromHour;
     $response->toHour = $request->toHour;
     $response->source = $source;
     $fromTime = $fromTime . " " . $request->fromHour . ":00:00";
     $toTime = $toTime . " " . $request->toHour . ":59:59";
     $options['fromTime'] = $fromTime;
     $options['toTime'] = $toTime;
     $options['source'] = $source;
     if ($request->minduration) {
         $options['minduration'] = $request->minduration;
     }
     if ($request->maxduration) {
         $options['maxduration'] = $request->maxduration;
     }
     if ($request->satisfaction) {
         $options['satisfaction'] = $request->satisfaction;
     }
     $operator = DAL::get()->find_by_workid('TeleOperator', $request->workId);
     $operatorId = null;
     if ($operator instanceof TeleOperator) {
         $operatorId = $operator->id;
         $options['operatorId'] = $operatorId;
     }
     $serviceQueueIds = array();
     $queueType = $request->queueType;
     if (false == empty($queueType)) {
         $serviceQueue = DAL::get()->find_by_queueType("ServiceQueue", $queueType);
         if ($serviceQueue instanceof ServiceQueue) {
             $serviceQueueIds = array($serviceQueue->id);
         }
     }
     $response->workId = $request->workId;
     $response->conversationId = $request->conversationId;
     $response->customerPhoneNumber = $type ? '' : XString::decodeMobileNo($request->customerPhoneNumber);
     $response->direction = $request->direction === null ? -1 : $request->direction;
     $response->queueType = $request->queueType;
     $conversationList = TeleConversationClient::getInstance()->getTeleConversationList($direction, $serviceQueueIds, $options, $nowPage, $pageSize);
     $response->conversationList = $conversationList['list'];
     $response->queues = DAL::get()->find_all_by_queuetype('ServiceQueue', array_keys(ServiceQueue::$queueTypeDesc));
     $response->minDuration = trim($request->minduration);
     $response->maxDuration = trim($request->maxduration);
     $response->pageLink = PageNav::getNavLink(PageNav::getPageNavTemplate("/operator/conversationlist?workId=" . $response->workId . "&customerPhoneNumber=" . $response->customerPhoneNumber . "&direction=" . $response->direction . "&fromTime=" . $response->fromTime . "&toTime=" . $response->toTime . "&queueType=" . $response->queueType . "&fromHour={$request->fromHour}&toHour={$request->toHour}&minduration={$request->minduration}&maxduration={$request->maxduration}&source={$source}" . "&satisfaction=" . $request->satisfaction . "&page="), $nowPage, $pageSize, $conversationList['pageInfo']['total']);
 }
 public function letterCountDetail($request, $response)
 {
     /*{{{*/
     $date = $request->getRequest('date', '');
     $tel = $request->getRequest('tel', '');
     $userName = $request->getRequest('userName', '');
     $nowPage = $request->getRequest('p', 1);
     $pageSize = 50;
     $tel = XString::decodeMobileNo($tel);
     $userids = array();
     if (empty($tel) == false && empty($userName) == false) {
         $userids = Dal::get()->find_id_by_name_and_mobile('user', $userName, $tel);
         if (empty($userids) == true) {
             return;
         }
     } else {
         if (empty($tel) == false && empty($userName) == true) {
             $userids = Dal::get()->find_id_by_mobile('user', $tel);
             if (empty($userids) == true) {
                 return;
             }
         } else {
             if (empty($tel) == true && empty($userName) == false) {
                 $userids = Dal::get()->find_id_by_name('user', $userName);
                 if (empty($userids) == true) {
                     return;
                 }
             }
         }
     }
     $res = StationLetterClient::getInstance()->getStationLetterList($date, $userids, $nowPage, $pageSize);
     $messageids = array();
     foreach ($res['ids'] as $value) {
         $messageids[] = $value['messageid'];
     }
     $userids = array();
     foreach ($res['ids'] as $value) {
         $userids[] = $value['userid'];
     }
     $out['list'] = array();
     if (empty($messageids) == false) {
         $out['list'] = DAL::get()->find('message', $messageids);
     }
     $out['userlist'] = array();
     if (empty($messageids) == false) {
         $out['userlist'] = Dal::get()->find('user', $userids);
     }
     $response->ids = $res['ids'];
     $response->messageList = $out['list'];
     $response->userList = $out['userlist'];
     $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("/message/lettercountdetail?date={$date}&tel={$tel}&userName={$userName}&p="), $res['pageInfo']['nowpage'], $res['pageInfo']['pagesize'], $res['pageInfo']['total']);
 }
 public function calldoctor($request, $response)
 {
     /*{{{*/
     $doctorPhone = XString::decodeMobileNo($request->doctorphone);
     $teleconf = DAL::get()->find('phoneconference', $request->teleconfId);
     PhoneConferenceClient::getInstance()->callConsultMember($teleconf, $doctorPhone);
     $response->setRedirect('/doctor/callpanel?username=' . $request->username);
 }