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); }