private function getPhoneList($request, $response)
 {/*{{{*/
     $diseaseIds_shuffle = self::$diseaseIds;
     shuffle($diseaseIds_shuffle);
     list($directDoctorList, $directSatisfactions) = PaymentClient::getInstance()->getLatestPhoneServiceDoctorAndSatisfactionListByDiseaseId(array_pop($diseaseIds_shuffle), 3); 
     if($request->searchType == CmsTagType::HOSPITAL)
     {
         $phoneDoctorIds = DAL::get()->queryDoctorIdsByHospital('DoctorOutLine', $request->searchParam, 3);
         if (false == empty($phoneDoctorIds))
         {
             $directDoctorList = DAL::get()->find('Doctor', $phoneDoctorIds);
             $directSatisfactions = PaymentClient::getInstance()->getDoctorSatisfactionList($phoneDoctorIds);
         }
     }
     if($request->searchType == CmsTagType::FACULTY)
     {
         $phoneDoctorIds = DAL::get()->queryDoctorIdsByHospitalFaculty('DoctorOutLine', $request->searchParam, 3);
         if (false == empty($phoneDoctorIds))
         {
             $directDoctorList = DAL::get()->find('Doctor', $phoneDoctorIds);
             $directSatisfactions = PaymentClient::getInstance()->getDoctorSatisfactionList($phoneDoctorIds);
         }
     }
     $response->statistics = SpaceClient::getInstance()->getStatistics();
     $response->directDoctorList = $directDoctorList;
     $response->directSatisfactions = $directSatisfactions;
 }/*}}}*/
 public function saveDoctorPhone($request, $response)
 {/*{{{*/
     $serviceid = $request->id;
     $doctorphone = $request->doctorphone;		
     if( empty($serviceid) || empty($doctorphone)){
         echo -1;
         exit;
     }
     PaymentClient::getInstance()->saveTempDoctorPhone4Order($serviceid, $doctorphone);
     echo 1;
     exit;
 }/*}}}*/
 public function index($request, $response)
 {
     /*{{{*/
     if (0 === stripos($_SERVER['HTTP_HOST'], 'www.')) {
         $jumpUrl = substr($_SERVER['HTTP_HOST'], 4);
         $response->exitJump("http://{$jumpUrl}", 301);
     }
     //BIZARC-2810  丰台区妇幼保健院以及其下科室,个人信息页面屏蔽
     $noRecordHospitalIds = array(1867);
     if (in_array($this->space->host->hospitalfaculty->hospital->id, $noRecordHospitalIds)) {
         //DC-335
         //$response->setRedirect('http://www.'.URL_PREFIX.'haodf.com/info/norecordhospitalnotice.php');
         //return;
     }
     $response->module = Space::MODULE_INDEX;
     //wt
     $this->diseaseVote($request, $response);
     $this->getDoctorInfo($request, $response);
     $this->getPatientsList($request, $response);
     $this->getBookingCount($request, $response);
     $this->getArticles($request, $response);
     $this->getFlowInfo($request, $response);
     $this->getReceivedPresentList($request, $response);
     $this->statistics($request, $response);
     $this->oldAsk($request, $response);
     $this->getZhuantis($request, $response);
     //wx 显示医生患者报到补贴信息
     $this->showPatientSigninSubsidy($request, $response);
     if ($this->space->isOpenFollowup()) {
         $method = $this->isSpaceLogin() ? "index4FollowupAdmin" : "index4FollowupUser";
     } else {
         $method = $this->isSpaceLogin() ? "index4Admin" : "index4User";
     }
     $response->bookingContract = $this->space->bookingcontract;
     $response->caseIsFull = $this->isDoctorCaseFull();
     $response->tipstr = $this->getCaseTip();
     $response->showschedule = $request->getRequest('show_schedule', 0);
     $response->boxPresentId = $request->boxPresentId;
     //首页自动打开的fancybox地址
     $response->ajaxReferrer = $request->ajaxReferrer;
     //首页自动打开的fancybox地址
     if ($this->space->isPhoneOpenedForFront($this->user->id)) {
         $telVisitList = PaymentClient::getInstance()->getPatientPhoneServiceList($this->space->user->id, 1, 10);
         $response->telVisitTotalCnt = isset($telVisitList['pageInfo']['total']) ? $telVisitList['pageInfo']['total'] : 0;
         $telVisitInfos = DAL::get()->queryLatestCompleteOrderIdsBySpaceId('TelOrder', $this->space->user->id, $count = 10);
         $response->telVisitInfos = $telVisitInfos;
         $options['status'] = array(TelOrder::STATUS_FINISHED, TelOrder::STATUS_CLOSED);
         $response->telOrderCount = TelOrderClient::getInstance()->getOrderCount4Space($this->space->id, $options);
     }
     return $this->{$method}($request, $response);
 }
 public function doctorIncomeGroupbyDoctorOfDateSpan($request, $response)
 {/*{{{*/
 	if(false == in_array($this->curUser->name,FinancialInterceptor::$userAuditor))
 	{
 		echo "权限不足";
 		exit;
 	}
 	
 	ini_set("memory_limit","1024M");
 	ini_set("max_execution_time", "600");
 	$fromdate = $request->fromdate;
     $todate = $request->todate;
     $response->fromdate = $fromdate;
     $response->todate = $todate;
     $response->fileName = CsvFileGenerator::getDownLoadFileName(array(strtolower(__FUNCTION__)), $fromdate, $todate);
     
     $detailUrlDomain = 'hdfadmin.haodf.com/paymentfront/rpt/';
 	$lines = PaymentClient::getInstance()->getDoctorIncomeRptGroupbyDoctorOfDateSpan(ServiceDef::TYPE_TELORDER, $fromdate, $todate, $detailUrlDomain);
 	$response->lines = $lines;
 }/*}}}*/
 public function askIntentionintro($request, $response)
 {/*{{{*/
     $caseHostUserId = $request->getRequest('spaceid', 0);
     $askSpace = DAL::get()->find('space', $caseHostUserId);
     $message = $request->message;
     $response->statistics = SpaceClient::getInstance()->getStatistics();
     $response->message = $message;
     $response->askSpaceObjectBefore = $askSpace;
     $anserPhoneCount = PaymentClient::getInstance()->getDoctorSatisfactionCntList($askSpace->id);
     $anserPhoneCount = isset($anserPhoneCount[0])?$anserPhoneCount[0]['cnt'] : 0;
     $phoneComments = PaymentClient::getInstance()->getDoctorSatisfactionList($askSpace->host->id);
     $response->phoneComments = isset($phoneComments[$askSpace->host->id]['scorecnt'])?$phoneComments[$askSpace->host->id]['scorecnt'] : 0;
     $response->anserPhoneCount = $anserPhoneCount;
     //dodo::wxy 添加医生一句话
     $owner = DAL::get()->find_by_relatedObjectid_and_relatedobjecttype('telowner', $askSpace->id, TelOwner::TYPE_USER);
     $response->owner = $owner;
     $docWords = (false == $owner->isNull() && $owner->isSpaceOwner())?$owner->getSpaceExt()->getDoctorWords():'';
     $response->wordLen = $docWords?(int)strlen($docWords):'';
     $response->normalWord = $docWords?$docWords:'';
     $response->excessWord = $docWords?XString::strString(array($docWords),0,300)."...":'';
 }/*}}}*/
 public function showOneDetail($request, $response)
 {
     /*{{{*/
     $doctorComment = null;
     $ticket = new NullEntity();
     $doctorComment = DoctorCommentClient::getInstance()->getDoctorCommentSubClass($request->id);
     if ($request->msg == 'delete') {
         echo '此点评已经删除';
         exit;
     }
     if ($doctorComment->isNull()) {
         echo '没有相关的点评数据';
         exit;
     }
     $diseaseDoctorList = array();
     if (!$doctorComment->doctor->isNull()) {
         $diseaseDoctorList = DiseaseDoctorClient::getInstance()->getDoctorExpertDisease($doctorComment->doctor->id, 10);
     }
     $jiaHaoStatus = '';
     $userPhoneThreadList = '';
     $doctor = DAL::get()->find('doctor', $doctorComment->doctor->id);
     if ($doctor->hasSpace()) {
         $spaceId = $doctor->space->id;
         if ($doctorComment->patientId) {
             $jiaHaoStatus = BookingClient::getInstance()->getPatientBookingStatus($doctorComment->patientId, $spaceId);
             $userPhoneThreadList = PaymentClient::getInstance()->getPatientSuccessServiceList($doctorComment->patientId, $spaceId);
         }
     }
     $session = SessionDefault::singleton();
     $privilege = PrivilegeClient::getInstance()->getByUserName($session->UserName);
     $srcException = DAL::get()->queryException4Comment('doctorcomment', $doctorComment);
     $response->srcException = $srcException;
     $response->doctorComment = $doctorComment;
     $response->diseaseDoctorList = $diseaseDoctorList;
     $response->jiaHaoStatus = $jiaHaoStatus;
     $response->userPhoneThreadList = $userPhoneThreadList;
     $response->privilege = $privilege;
     $response->msg = $request->msg;
     $response->textInspectResult = DAL::get()->find_by_sourceid_and_sourcetype('DoctorCommentInspectResult', $doctorComment->id, get_class($doctorComment));
     $readonlyContent = $doctorComment->getOriginalContent();
     $sensContentArr = BeanFinder::get('ContentFilter')->getSensitiveWordsRecursive('comment', $readonlyContent);
     foreach ($sensContentArr as $sensContent) {
         $readonlyContent = str_replace($sensContent, "<span class='red'>{$sensContent}</span>", $readonlyContent);
     }
     $response->readonlyContent = $readonlyContent;
     $response->ticket = $ticket;
 }
 public function newIntro($request, $response)
 {
     /*{{{*/
     DBC::requireFalse($this->spaceIsLogin, '不允许自己提交给自己订单!');
     //对没有开通电话咨询医生的链接跳转,没有owner也会跳走.
     if (false == $this->space->isPhoneOpenedForFront($this->user->id)) {
         $response->setRedirect('http://' . URL_PREFIX . '400.haodf.com/index/prompt?doctorName=' . rawurlencode($this->space->host->name) . '&doctorFaculty=' . rawurlencode($this->space->host->hospitalfaculty->faculty->name));
         return;
     }
     $hospitalFacultyDoctorIds = DoctorClient::getInstance()->getHospitalFacultyDoctorLimit3($this->space->host);
     $facultyDoctorIds = DoctorClient::getInstance()->getFacultyDoctorLimit6($this->space->host);
     $facultyDoctorIds = array_diff($facultyDoctorIds, $hospitalFacultyDoctorIds);
     $response->num = count($facultyDoctorIds);
     $facultyDoctorIds = array_slice($facultyDoctorIds, 0, 3);
     $facultyDoctorList = DAL::get()->find('doctor', $facultyDoctorIds);
     $response->facultyDoctorList = $facultyDoctorList;
     $hospitalFacultyDoctorList = DAL::get()->find('doctor', $hospitalFacultyDoctorIds);
     $response->hospitalFacultyDoctorList = $hospitalFacultyDoctorList;
     $response->diseaseList = DiseaseClient::getInstance()->getDiseaseDoctorList(array($this->space->host->primaryId), 50);
     $response->casetotal = PaymentClient::getInstance()->getDoctorVoteCnt($this->space->id);
     $response->satisfactionLists = PaymentClient::getInstance()->getDoctorSatisfactionList($this->space->host->id);
     $serviceCharge = PaymentClient::getInstance()->getServiceChargeList($this->space->id);
     $preg = '#(\\d+.\\d+)(元)#';
     $replace = '<span class="fb orange1">\\1</span>\\2';
     $serviceCharge = preg_replace($preg, $replace, $serviceCharge);
     $response->serviceCharge = $serviceCharge;
     $response->doctor = $this->space->host;
     $owner = DAL::get()->find_by_relatedObjectid_and_relatedobjecttype('telowner', $this->space->id, TelOwner::TYPE_USER);
     $response->doctorWords = $owner->isNull() || $owner->getSpaceExt() == '' ? '' : $owner->getSpaceExt()->getDoctorWords();
     $response->wordLength = $owner->isNull() || $owner->getSpaceExt() == '' ? '' : strlen($owner->getSpaceExt()->getDoctorWords());
     $response->latestOpenCallServiceTitle = doctorOutline::getLatestOpenCallServiceTitle($owner->spaceExt->starttime4tel->toString());
     $response->owner = $owner;
     $goodCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($this->space->id, TelVisit::SCORE_GOOD);
     $normalCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($this->space->id, TelVisit::SCORE_SOSO);
     $badCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($this->space->id, TelVisit::SCORE_BAD);
     $allCnt = $goodCnt + $normalCnt + $badCnt;
     $response->allCnt = $allCnt;
     $response->goodCnt = $allCnt > 0 ? floor($goodCnt / $allCnt * 100) : 0;
     $response->normalCnt = $allCnt > 0 ? ceil($normalCnt / $allCnt * 100) : 0;
     $response->badCnt = $response->goodCnt + $response->normalCnt != 0 ? 100 - $response->goodCnt - $response->normalCnt : 0;
     // 常见问题
     $response->commonQuestions = $owner->isNull() || $owner->getSpaceExt() == '' ? '' : $owner->getSpaceExt()->commonquestions;
     $options['status'] = array(TelOrder::STATUS_FINISHED, TelOrder::STATUS_CLOSED);
     $response->telOrderCount = TelOrderClient::getInstance()->getOrderCount4Space($this->space->id, $options);
     $response->productList = ProductClient::getInstance()->getProducts($this->space, array(serviceDef::TYPE_TELORDER));
 }
 public function ajaxForChangeFeedBack($request, $response)
 {
     /*{{{*/
     $product = $request->product;
     $purposeAction = array();
     //根据不同的ajax传值传入不同"用户目的"的参数
     if ($product == "operation") {
         $purposeAction = array(TelOrder::ORDER_OPERATION, TelOrder::IF_SURGERY);
     } else {
         if ($product == "preperation") {
             $purposeAction = array(TelOrder::OUTPATIENT_TIME, TelOrder::ATTENDANCE_FLOW, TelOrder::ATTENDANCE_BEFORE_MATTER, TelOrder::ATTENDANCE_MONEY);
         } else {
             if ($product == "referral") {
                 $purposeAction = array(TelOrder::RETURN_VISIT_TIME, TelOrder::RETURN_VISIT_CHANGE_DISEASE, TelOrder::FOLLOW_UP);
             } else {
                 $purposeAction = array(TelOrder::TREAT_WAY, TelOrder::IF_SURGERY);
             }
         }
     }
     $owner = DAL::get()->find_by_relatedObject('telowner', $this->space->user);
     $visitorderIds = PaymentClient::getInstance()->getDoctorSatisfactionRankLimit($owner->id, $purposeAction);
     //回访订单ID
     $visitorders = DAL::get()->find('telvisit', $visitorderIds);
     //回访订单
     $orderids = array();
     //返回的反馈订单ids
     $orderpatientids = array();
     //订单上的患者ids
     $feedbackforone = array();
     //拿到反馈rank为1的列表
     $feedbackfortwothree = array();
     //拿到反馈rank为2和3的列表
     foreach ($visitorders as $visitkey => $visitvalue) {
         $orderids[] = $visitvalue->orderid;
     }
     $orderlist = DAL::get()->find('telorder', $orderids);
     foreach ($orderlist as $orderkey => $ordervalue) {
         $orderpatientids[] = $ordervalue->patientid;
     }
     $orderpatientlist = DAL::get()->find('patient', $orderpatientids);
     foreach ($visitorders as $visitorderkey => $visitordervalue) {
         foreach ($orderlist as $orderlistkey => $orderlistvalue) {
             foreach ($orderpatientlist as $orderpatientkey => $orderpatientvalue) {
                 if ($visitordervalue->orderid == $orderlistkey && $orderlistvalue->patientid == $orderpatientkey && $visitordervalue->content != "") {
                     $userName = XString::truncate($orderpatientvalue->userName, 1, '***');
                     if ($visitordervalue->rank == 2 || $visitordervalue->rank == 3) {
                         $feedbackfortwothree[][$orderlistkey . "_" . $orderlistvalue->getOrderTitleOrThreadTitle()] = $userName . "," . $visitordervalue->content . " " . $visitordervalue->ctime;
                     } else {
                         $feedbackforone[][$orderlistkey . "_" . $orderlistvalue->getOrderTitleOrThreadTitle()] = $userName . "," . $visitordervalue->content . " " . $visitordervalue->ctime;
                     }
                 }
             }
         }
     }
     $response->feedBackTwoThree = $feedbackfortwothree;
     $response->feedBackOne = $feedbackforone;
     $response->product = $product;
     $response->telOwner = $owner;
 }
    public function ajaxCheckInviteMobile($request, $response)
    {/*{{{*/
        $ownerId = $request->ownerid;
        $mobile = $request->mobile;
        $inviteLog1 = DAL::get()->find_by_ownerid_and_mobile('invitelog', $ownerId, $mobile);
        $inviteLog2 = DAL::get()->find_by_mobile('invitelog', $mobile);
        $isSelf = PaymentClient::getInstance()->checkMobileIsSelf($this->user->id, $mobile);
        $isUsedMobile = PaymentClient::getInstance()->checkMobileIsUsedMobile($mobile);

        if(false == $inviteLog1->isNull() && $inviteLog1->cnt < InviteLog::MAXCNT)
        {
            echo 1;//提示:该号码已经被您邀请过,请使用下方的重发邀请功能 
            return parent::DIRECT_OUTPUT;                                                                       
        }
        else if(false == $inviteLog2->isNull())
        {
            echo 2;//提示:该号码已接到其他人的邀请
            return parent::DIRECT_OUTPUT;                                                                       
        }
        else if($isSelf)
        {
            echo 3;//提示:不能发送给您自己
            return parent::DIRECT_OUTPUT;                                                                       
        }
        else if($isUsedMobile)
        {
            echo 4;//该号码已经使用过电话咨询服务,不能参加活动
            return parent::DIRECT_OUTPUT;                                                                       
        }
        else
        {
            echo 0;
        }
        return parent::DIRECT_OUTPUT;                                                                       
    }/*}}}*/
 /**
  * @brief 第三方视角的流详情展示
  * @author lhl
  * @version branches/v2.14.23
  * @date 2013-07-25
  */
 private function detailForBrowser($response, $request, $ref)
 {
     /*{{{*/
     $this->doctorInfo($response);
     $response->nowPage = $nowPage = $request->getRequest('p', 1);
     $pageSize = 20;
     $pagelink = '';
     $res = FlowClient::getInstance()->getFlowInfos($ref->id, $nowPage, $pageSize, array('isBrowser' => true), $isSens = true);
     $firstPost = $res['objects'][0];
     $response->isFirstProposalPost = $this->checkFirstProposal($ref);
     if (false == empty($res['pageInfo'])) {
         $pageInfo = $res['pageInfo'];
         $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace($ref->url . '?p='), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
     }
     $response->flowList = $res['objects'];
     $response->pagelink = $pagelink;
     $response->abnormalStatus = $this->getAbnormalStatus($res['objects']);
     //准备相关搜索信息
     $this->getRelationSearchForBrowser($ref, $firstPost, $request, $response);
     $response->lastestDoctorList = array();
     $response->moreFlowList = FlowClient::getInstance()->getFlowList4SEO($num = 10, $ref->id);
     $response->flows = array();
     if ($this->space->host->isDayBirthday()) {
         $response->flows = FlowClient::getInstance()->getFlowListByUser($this->user->id, array('status' => DoctorPatientRef::STATUS_INIT));
     }
     //医生开通服务
     $doctorServices = SpaceClient::getInstance()->getServiceInfo($this->space->id, $this->user->id);
     $response->doctorServices = $doctorServices;
     $response->presentCnts = PresentClient::getInstance()->getCntOfPresent($this->space->id);
     if ($this->space->isPhoneOpenedForFront($this->user->id)) {
         $telVisitList = PaymentClient::getInstance()->getPatientPhoneServiceList($this->space->user->id, 1, 10);
         $response->telVisitTotalCnt = isset($telVisitList['pageInfo']['total']) ? $telVisitList['pageInfo']['total'] : 0;
         $telVisitInfos = DAL::get()->queryLatestCompleteOrderIdsBySpaceId('TelOrder', $this->space->user->id, $count = 10);
         $response->telVisitInfos = $telVisitInfos;
         $response->ScoreDesc = TelVisit::$scoreDesc;
         $response->callingLogs = PaymentClient::getInstance()->getDoctorRecentPhoneRecords($this->space);
     }
     $response->spaceRelatedFacultyName = $this->space->host->hospitalfaculty->faculty->name;
     $facultyDoctorIds = array();
     if ($this->space->host instanceof Doctor) {
         $facultyDoctorIds = DoctorClient::getInstance()->getFacultyDoctor($this->space->host);
     }
     $facultyDoctorList = DAL::get()->find('doctor', $facultyDoctorIds);
     $response->facultyDoctorList = $facultyDoctorList;
     $response->doctorSatisfactionList = PaymentClient::getInstance()->getDoctorSatisfactionList($facultyDoctorIds);
 }
 public function saveReasonAndStar($request, $response)
 {/*{{{*/
     $id = $request->id;
     $reason = XString::convertToGbk($request->reason);
     $star = XString::convertToGbk($request->star);
     $isRecommend = $request->isrecommend;
     PaymentClient::getInstance()->saveReasonAndStar($id, $reason, $star, $isRecommend);
     echo true;
     return parent::DIRECT_OUTPUT;
 }/*}}}*/
        echo $hfname;
        ?>
</h3>
					</div>
				</div>
				<div class="p10">
<?php 
        foreach ($doctors as $doctor) {
            $hf = $doctor->hospitalfaculty;
            $h = $hf->hospital;
            //好评投票
            $diseaseList = DiseaseClient::getInstance()->getDiseaseDoctorList(array($doctor->primaryId), 50);
            //服务费
            $serviceCharge = PaymentClient::getInstance()->getServiceChargeList($doctor->space->id);
            //接听点评汇总
            $doctorSatisfactionList = PaymentClient::getInstance()->getDoctorSatisfactionList($doctor->id);
            ?>

					<!--start doctorDetails-->
					<div class="clearfix showResult-cell bb pb10 mt15">
                        <div class="showResult-cell-l fl mr10">
                            <table cellspacing="0" cellpadding="0" border="0">
                                <tbody><tr>
                                    <td align="center" valign="middle" style="padding: 0px; border: 1px solid #DFDFDF; height: 110px; vertical-align: middle; width: 110px;">
                                    <a href="http://<?php 
            echo URL_PREFIX;
            ?>
400.haodf.com/haodf/<?php 
            echo $doctor->space->user->name;
            ?>
?from=<?php 
    public function telServiceEntrance($request, $response)
    {/*{{{*/
        $response->topTitle = "电话咨询";
        $this->loadMoreTelOrderList4Tel($request, $response);
        $this->loadMoreFeedBackList4Tel($request, $response);
        $response->title = $this->doctor->name."电话咨询_好大夫在线";
        if(false == $this->doctor->space->isNull())
        {
            $response->products = ProductClient::getInstance()->getProducts($this->doctor->space, array(ServiceDef::TYPE_TELORDER));
        }
        else
        {
            $response->products = array();
        }
        //患者投票
        $response->diseaseDoctorList = DiseaseClient::getInstance()->getDiseaseDoctorList(array($this->doctor->primaryId));
        //医生擅长信息
        $specialize = $this->doctor->specialize ? $this->doctor->specialize : "暂无医生擅长信息";
        $specialize = str_replace("\n", '', $specialize);
        $specialize = strip_tags(str_replace("\r", '', $specialize));
        $response->specialize = $specialize;
        $shortSpecialize = XString::truncate($specialize, 56);
        $shortSpecialize = str_replace("\n", '', $shortSpecialize);
        $shortSpecialize = strip_tags(str_replace("\r", '', $shortSpecialize));
        $response->shortSpecialize = $shortSpecialize;
        //满意度
        $goodCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($this->doctor->space->id, TelVisit::SCORE_GOOD);
        $normalCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($this->doctor->space->id, TelVisit::SCORE_SOSO);
        $badCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($this->doctor->space->id, TelVisit::SCORE_BAD);
        $allCnt = $goodCnt+$normalCnt+$badCnt;
        $response->goodCnt = ($allCnt>0)?floor($goodCnt / $allCnt * 100) : 0; 

        $statistics = SpaceClient::getInstance()->getStatistics();
        // 开通电话咨询的医生人数
        $response->openCallDoctorNum = $statistics['opentelservicedoctors'];

        $response->from = $request->from;
        if (isset($_SESSION['telOrderInfo']))
        {
            unset($_SESSION['telOrderInfo']);
        }
        if (isset($_SESSION['newAsk']))
        {
            unset($_SESSION['newAsk']);
        }
    }/*}}}*/
	private function getBookingInfo($diseaseFaculty, $response)
	{/*{{{*/
		$faculty = $diseaseFaculty->faculty;
		$response->faculty = $faculty;
        $phoneDoctorIds = DAL::get()->queryDoctorIdsByFaculty('DoctorOutLine', $faculty->id, 3);
        $phoneServices = $topPhoneDoctor = array();
        if (false == empty($phoneDoctorIds))
        {
            $topPhoneDoctor = DAL::get()->find('Doctor', $phoneDoctorIds);
            $phoneServices = PaymentClient::getInstance()->getDoctorSatisfactionList($phoneDoctorIds);
        }

		$phoneDoctorCount = DoctorClient::getInstance()->getIsPhoneServiceOpenedDoctorCount($faculty);
		$response->topPhoneDoctor = $topPhoneDoctor;
        $servicePayInfo = array();
        foreach($phoneServices as $phoneService)
        {
            // 解决 ARK-7955
            $servicePayInfo[] = $phoneService;
        }
		$response->phoneServices = $servicePayInfo;
		$response->phoneDoctorCount = $phoneDoctorCount;
		$faculty = $diseaseFaculty->faculty;
		//预约加号
		$spaceIds = PlussignChannelClient::getInstance()->getDoctorListByFaculty($faculty);
        $successOrderCount = PlussignChannelClient::getInstance()->getOrderCntOfSpaces($spaceIds);
		$bookingContractCount = BookingClient::getInstance()->getDoctorTotalCountByFaculty('bookingorder', $faculty);
		$response->bookingSpaces = DAL::get()->find('Space', $spaceIds);
		$response->successOrderCount = $successOrderCount;
		$response->bookingContractCount = $bookingContractCount;
	}/*}}}*/
    public function getDoctorServiceInfo2ByDoctorId($doctorId)
    {/*{{{*/
        $doctor = DAL::get()->find('doctor', $doctorId);
        if($doctor->isNull())
        {
            $this->setErrorCode(132);
            return 0;
        }

        $caseInfo = array();
        $bookingInfo = array();
        $phoneInfo = array();

        if($doctor->hasSpace())
        {
            //case
            if($doctor->space->isCaseOpen())
            {
                $caseInfo['caseIntro'] = $doctor->space->commonCaseNote == '' ? $doctor->specialize : $doctor->space->commonCaseNote;
                $caseInfo['caseStatus'] = "1";
            }

            //booking
            if($doctor->space->isBookingOpened())
            {
                $spaceBusinessRequirement = $doctor->space->getSpaceBusinessRequirement4Booking();
                $bookingInfo['bookingIntro'] = $spaceBusinessRequirement->isNull()?'':$spaceBusinessRequirement->disease;
            }
            $bookingInfo['bookingStatus'] = $doctor->space->isBookingOpened() ? 1 : 0;

            //phone
            if($doctor->space->isPhoneOpenedForFront())
            {
                $satisfactionLists = PaymentClient::getInstance()->getDoctorSatisfactionList($doctor->primaryId);
                //服务费
                $serviceCharge = PaymentClient::getInstance()->getServiceChargeList($doctor->space->id);
                $serviceChargeList = explode('、', $serviceCharge);
                $str = '';
                foreach($serviceChargeList as $key => $serviceCharge)
                {
                    $str .= $serviceCharge."\n";
                }
                $doctorSatisfaction = $satisfactionLists[$doctor->space->host->id];
                $satisfaction = $doctorSatisfaction['scorecnt'] != 0?(round($doctorSatisfaction['goodscore']/$doctorSatisfaction['scorecnt'],2))*100:0;
                if($doctorSatisfaction['cnt'] != '' && $doctorSatisfaction['cnt'] != 0)
                {
                    $str .= "已成功接听".$doctorSatisfaction['cnt']."例,满意度".$satisfaction."%";
                }
                $phoneInfo['phoneIntro'] = $str;
            }
            $phoneInfo['phoneStatus'] = $doctor->space->isPhoneOpenedForFront() ? 1 : 0;
        }
        $this->content = array('case' => $caseInfo, 'phone' => $phoneInfo, 'booking' => $bookingInfo);
    }/*}}}*/
 public function leaveMessagesApply($request, $response)
 {/*{{{*/
     $space = $this->_newSpace;
     $mobile = $request->buyerPhone;
     $userName = $this->_newUser->name;
     $diseaseDesc = $request->diseaseDescription;
     $conditions = $space->host->hospitalfaculty->hospital->name.$space->name;
     PaymentClient::getInstance()->createPatientIntent($userName, $mobile, $diseaseDesc, $conditions, PatientIntent::INTENTETYPE_CLIENT);
 }/*}}}*/
	private function detailWithSpace($request, $response, Doctor $doctor)
    {/*{{{*/
		$response->newUser = $doctor->space->user;
		$response->scheduleWeek = ScheduleClient::getInstance()->getScheduleWeek($doctor->space->id);
		
		//最新文章
		$articleList = array();
		$articleCount = 0;
		if ($doctor->space->isOpened())
		{
			$articleList = ArticleClient::getInstance()->getList($doctor->space->id, '', 0, 5, array('orderby'=>'fld_ArticleUpdateTime desc'));
			$articleCount = ArticleClient::getInstance()->getStickArticle($doctor->space->id, 0);
		}
		$response->articleList = isset($articleList['articleList']) ? $articleList['articleList'] : array() ;
		$response->articleCount = $articleCount;
		
        //最新回复
        $doctorPatientRefs = array();
        if ($doctor->space->isOpened() && $doctor->space->isCaseAndNewCaseOpen())
        {
            $doctorPatientRefs = DAL::get()->find_all_lastpost_by_space('doctorpatientref', $doctor->space, 5);
        }
        $response->doctorPatientRefs = $doctorPatientRefs;

        $spaceAskedThreadsCount = SpaceClient::getInstance()->getCountOfAskedThreadsCount($doctor->space->id, $this->curUser->id); 
        $spaceAskedFlowsCount = SpaceClient::getInstance()->getCountOfAskedFlowsCount($doctor->space->id, $this->curUser->id);
        $spaceRepliedThreadsCount = SpaceClient::getInstance()->getCountOfRepliedThreadsCount($doctor->space->id, $this->curUser->id);
        $spaceRepliedFlowsCount = SpaceClient::getInstance()->getCountOfRepliedFlowsCount($doctor->space->id, $this->curUser->id);
        $response->spaceAskedCount = $spaceAskedThreadsCount + $spaceAskedFlowsCount;
        $response->spaceRepliedCount = $spaceRepliedThreadsCount + $spaceRepliedFlowsCount;
		
		//最新在线时间
		$activityTimeInfo = SpaceClient::getInstance()->getActivityTime('space', array($doctor->space->id));
		$activityTime = isset($activityTimeInfo[$doctor->space->id]) ? $activityTimeInfo[$doctor->space->id] : 0;
		$response->activityTime = $activityTime;

        $owner = DAL::get()->find_by_relatedobjectid_and_relatedobjecttype('TelOwner', $doctor->space->user->id, 'User');
        $response->productList = ProductClient::getInstance()->getProducts($doctor->space, array(ServiceDef::TYPE_TELORDER));
		$response->owner = $owner;
        $response->presentCnt = PresentClient::getInstance()->getCntOfPresent($doctor->space->id);

		//加号
        $isBooking = $doctor->space->isBookingOpened();
		$contract = $spaceBusinessRequirement = array();
		$successOrderCount = 0;
		if($isBooking)
		{
            $contract = $doctor->space->getBookingContract();
            $spaceBusinessRequirement = $doctor->space->getSpaceBusinessRequirement4Booking();
			//在该医生处成功加号数量
			if($contract->isNull() == false)
				$successOrderCount = PlussignChannelClient::getInstance()->getOrderCount(array($contract->id));
		}
		$response->isBooking = $isBooking;
		$response->spaceBusinessRequirement = $spaceBusinessRequirement;
		$response->successOrderCount = $successOrderCount;
        $response->telVisitInfos = array();
		
        //电话
        if ($doctor->space->isPhoneOpenedForFront()) 
        {
            $telVisitList = PaymentClient::getInstance()->getPatientPhoneServiceList($doctor->space->user->id, 1, 10); 
            $response->telVisitTotalCnt = isset($telVisitList['pageInfo']['total']) ? $telVisitList['pageInfo']['total'] : 0;
            $telVisitInfos = DAL::get()->queryLatestCompleteOrderIdsBySpaceId('TelOrder', $doctor->space->user->id, $count = 10);
            $response->telVisitInfos = $telVisitInfos;

            $response->ScoreDesc = TelVisit::$scoreDesc;
            $response->callingLogs = PaymentClient::getInstance()->getDoctorRecentPhoneRecords($doctor->space);
        }
		
        $response->ref = DAL::get()->find_by_userid_and_spaceid('DoctorPatientRef', $this->curUser->id, $doctor->space->id);

        $this->hasOnlyPatientFlow($request, $response, $doctor);
	}/*}}}*/
Example #18
0
    public function doctordetail($request, $response)
    {/*{{{*/
        if (is_numeric($request->id))
        {
            $this->_exit404();
        }
        $doctorId = (int)Codec::getInstance()->decodeId($request->id);
        if((int)$doctorId <= 0)
        {
            $this->_exit404();
        }

        $doctor = DAL::get()->find('Doctor', $doctorId);
        if($doctor->isNull())
        {
            $this->_exit404();
        }
        $response->doctor = $doctor;
        $space = $doctor->space;
        $response->space = $space;

        $specialize = $doctor->specialize ? $doctor->specialize : "暂无医生擅长信息";
        $specialize = str_replace("\n", '', $specialize);
        $specialize = strip_tags(str_replace("\r", '', $specialize));
        $response->specialize = $specialize;
        $shortSpecialize = XString::truncate($specialize, 84);
        $shortSpecialize = str_replace("\n", '', $shortSpecialize);
        $shortSpecialize = strip_tags(str_replace("\r", '', $shortSpecialize));
        $response->shortSpecialize = $shortSpecialize;

        $response->diseaseDoctorList = DiseaseClient::getInstance()->getDiseaseDoctorList(array($doctor->primaryId));
		$response->thankLetterCount = $doctor->getCureThankLetterCount();
        $response->processCount = $doctor->getCureExpCount();
        $response->commentDoctor = $doctor->commentDoctor;

        $response->title =($doctor->hospitalfaculty->isNull()) ?  $doctor->name."_好大夫在线" : $doctor->name."_".$doctor->hospitalfaculty->hospital->commonName.$doctor->hospitalfaculty->name."_好大夫在线";

        $doctorSpaceIsOpened = $doctor->hasSpace() && $space->isOpened();
        $response->doctorSpaceIsOpened = $doctorSpaceIsOpened;

        //电话咨询订单
        $telOrderCnt = 0;
        if ($doctorSpaceIsOpened)
        {
            $telOwner = DAL::get()->find_by_relatedObject('telowner', $space->user);
            $res = TelOrderClient::getInstance()->getList(TelOrder::SEARCH_FINISHED_CLOSE, 1, 1, $telOwner->id);
            $telOrderCnt = $res['pageInfo']['total'];
            $response->telOrder = array_shift($res['list']);
        }
        $response->telOrderCnt = $telOrderCnt;

        $patientPhoneServiceRes = PaymentClient::getInstance()->getPatientPhoneServiceList($space->user->id, 1, 1, -1); 
        $patientPhoneServiceList = $patientPhoneServiceRes['lists'];
        $ownerIds = array();
        if (false == empty($patientPhoneServiceList))
        {
            $patientPhoneService = reset($patientPhoneServiceList);
            $ownerIds[] = $patientPhoneService['ownerid'];
        }
        $response->phoneService = reset($patientPhoneServiceList);
        $response->ownerList = DAL::get()->find('telowner', $ownerIds);

		$response->goodDiseaseList = DiseaseClient::getInstance()->getDiseaseDoctorList(array($doctor->primaryId), 50);
		$response->VOTE_DISPLAY_LIMIT = self::VOTE_DISPLAY_LIMIT;
    }/*}}}*/
 private function getSidePhoneServiceListByHF(HospitalFaculty $hospitalFaculty, $response, $limit=5)
 {
     $phoneDoctorList = array();
     $phoneDoctorIds = DAL::get()->queryDoctorIdsByHospitalFaculty('DoctorOutLine', $hospitalFaculty->hospital->id, $hospitalFaculty->faculty->id, $limit);
     $doctorSatisfactionList = array();
     if (false == empty($phoneDoctorIds))
     {
         $phoneDoctorList = DAL::get()->find('Doctor', $phoneDoctorIds);
         $doctorSatisfactionList = PaymentClient::getInstance()->getDoctorSatisfactionList($phoneDoctorIds);
     }
     $response->hfHospitalFaculty = $hospitalFaculty;
     $response->hfPhoneDoctorList = $phoneDoctorList;
     $response->hfDoctorSatisfactionList = $doctorSatisfactionList;
 }
                <th width='6%'>看病历</th>
                <th width='6%'>预约难度</th>
                <th width='6%'>接听回复质量</th>
                <th width='6%'>接听时段<br />(一般情况下)</th>
                <th width='6%'>活跃度<br />(网上咨询)</th>
                <th width='6%'>回复质量<br />(网上咨询)</th>
                <th width='17%'>目前提供的服务</th>
                <th width='6%'>操作</th>
             </tr>
         </table>
      </div>
      <table class="detail-table fontcolor">
             
<?php
    foreach($doctors as $doctor) { 
        $serviceCharge = PaymentClient::getInstance()->getServiceChargeList($doctor->space->id);
        $doctormark = DAL::get()->find_by_doctorid('doctormark', $doctor->getPrimaryDoctor()->id);
        $spacemark = DAL::get()->find_by_spaceid('spacemark', $doctor->space->id);
        if(false == $doctormark->isNull())
        {
            $doctorActivity = DoctorMark::$doctorActivityDesc[$doctormark->doctorActivity];
            $doctorReplyQuality = DoctorMark::$doctorReplyQualityDesc[$doctormark->doctorReplyQuality];
            $isUnusual = $doctormark->isOverPublicize() || $doctormark->isReplyQualityBad() || $doctormark->isActivityAbnormal();
            $doctorType = $doctormark->getDoctorType();
            if($doctormark->isProjectTel() || $doctormark->isNewTel() || $doctormark->isPayDoctor())
            {
                $doctorTypeDesc = DoctorMark::$doctorTypeDesc[$doctorType];
            }
            else
            {
                $doctorTypeDesc = ''; 
 public function getAllTelFeedback4Doctor($doctorId, $pageId, $pageSize)
 {/*{{{*/
     $this->_initPageInfo($pageId, $pageSize);
     $doctor = DAL::get()->find('doctor', $doctorId);
     if($doctor->isNull())
     {
         $this->setErrorCode(119);
         return 0;
     }
     $userId = $doctor->hasSpace() == false ? 0 : $doctor->space->user->id;
     //手机端所有评价全部显示
     $score = -1;
     $patientPhoneServiceLists = PaymentClient::getInstance()->getPatientPhoneServiceList($userId, $pageId, $pageSize, $score); 
     $phoneServiceLists = array();
     if(isset($patientPhoneServiceLists['lists']))
     {
         $phoneServiceLists = $patientPhoneServiceLists['lists'];
     }
     $infos = array();
     $ScoreDesc = TelVisit::$scoreDesc;
     foreach($phoneServiceLists as $phoneServiceList)
     {
         $ownerId = $phoneServiceList['ownerid'];
         $owner = DAL::get()->find('telowner', $ownerId); 
         $name = $owner->relatedObject->name;
         if(mb_strlen($name, 'gbk')<=8)
         {
             $name = $name; 
         }
         else
         {
             $name = mb_substr($name, 0, 8, 'gbk')."...";
         } 
         $info['patientName'] = XString::truncate($name, 1, '***');
         $info['score'] = $ScoreDesc[$phoneServiceList['score']];
         $info['title'] = $phoneServiceList['titleForWap'];
         $info['content'] = $phoneServiceList['content'];
         $info['callingdate'] = date('Y-m-d H:i', strtotime($phoneServiceList['starttime']))." - ".date('H:i', strtotime($phoneServiceList['endtime']));
         $infos[] = $info;
     }
     $this->pageInfo = $patientPhoneServiceLists['pageInfo'];
     $this->content = $infos;
 }/*}}}*/
 private function getPhoneList($diseaseId, $response)
 {/*{{{*/
     list($directDoctorList, $directSatisfactions) = PaymentClient::getInstance()->getLatestPhoneServiceDoctorAndSatisfactionListByDiseaseId($diseaseId, 3); 
     $response->statistics = SpaceClient::getInstance()->getStatistics();
     $response->directSatisfactions = $directSatisfactions;
     $response->directDoctorList = $directDoctorList;
 }/*}}}*/
 private function addThread2PhoneService(array $serviceInfos)
 {/*{{{*/
     $phoneServiceDoctorIds = array();
     foreach($serviceInfos as $key => $sInfos)
     {
         foreach($sInfos as $k => $sInfo)
         {
             $phoneServiceDoctorIds[] = $sInfo['doctorid'];
         }
     }
     $telorders = PaymentClient::getInstance()->getLatestServiceList($phoneServiceDoctorIds);
     foreach ($serviceInfos as $key => $sInfos)
     {
         foreach($sInfos as $k => $sInfo)
         {
             if (isset($telorders[$sInfo['doctorid']]))
             {
                 $telorder = $telorders[$sInfo['doctorid']];
                 if (false == $telorder->isNull())
                 {
                     $serviceInfos[$key][$k]['doctorPatientRef'] = DAL::get()->find_by_spaceid_and_patientid('DoctorPatientRef',
                                                                         $telorder->getSpace()->id, $telorder->patient->id);
                 }
             }
         }
     }
     return $serviceInfos;
 }/*}}}*/
 public function addTelCustomer($request, $response)
 {/*{{{*/
     $request->convertToGbk();
     if($request->customerName)
     {
         $customerid = ($request->customerid != 0)?$request->customerid:$request->oldtelcustomerid;
         $telContactIds = DAL::get()->find_id_by_tel('telcustomercontact',$request->tel);
         if(false == empty($telContactIds))
         {
             $telCustomerContacts = DAL::get()->find('telcustomercontact',$telContactIds);
             if(false == empty($telCustomerContacts))
             {
                 foreach($telCustomerContacts as $telcustomercontact)
                 {
                     if($telcustomercontact->customerid != $customerid)
                         PaymentClient::getInstance()->deletetelcustomercontact($telcustomercontact->id);
                 }
             }
         }
         $birthday = "{$request->dateyear}-{$request->datemonth}-{$request->dateday}";
         $customerLocation = ($request->city != '')?"{$request->province}-{$request->city}":$request->province;
         $params = array('id'=>$customerid,'customerName'=>$request->customerName,'sex'=>$request->sex,'type'=>$request->customerType,
             'fromChannel'=>$request->fromchannel,'birthday'=>$birthday,'customerLocation'=>$customerLocation,'level'=>$request->level,
             'remark'=>$request->customerremark,'cname'=>$request->maintenanceuser
         );
         $telCustomerId = PaymentClient::getInstance()->createTelCustomer($params,$this->curUser);
         $params = array('tel'=>$request->tel,'customerid'=>$telCustomerId, 'inComingCallCount'=>1);
         $telCustomerContactId = paymentClient::getInstance()->createTelCustomerContact($params); 
         echo $telCustomerId;
     }
     else
     {
         echo 0;
     }
     return parent::DIRECT_OUTPUT;
 }/*}}}*/
 public function passTelOrderEvent($request, $response)
 {
     /*{{{*/
     PaymentClient::getInstance()->doOrderEvent($request->telorderEventId, $this->curUser);
     $url = $response->router->urlfor('spacebusinessrequirement/showtelordereventdetail', array('id' => $request->telorderEventId));
     $response->setRedirect($url);
 }
    private function sendTelAdMsg(DoctorPatientRef $ref)
    {/*{{{*/
        $isPhoneOpened = $ref->space->isPhoneOpenedForFront($this->_newUser->id);
        if ($isPhoneOpened)
        {
            //这个用户在30天内没有已付费/已退费/已收款的电话咨询订单
            $hasNoRecentlyTelOrder = PaymentClient::getInstance()->hasNORecentlyTelOrder($this->_newUser->id);

            $subject = "电话咨询专家,更及时的服务,更充分的沟通!";
            if ($ref->spacePostCount == 1 && $ref->lastPostUser->id == $ref->space->user->id && $hasNoRecentlyTelOrder)
            {
                $statistics = SpaceClient::getInstance()->getStatistics();
                $nowTime = XDateTime::now()->getDate();
                $messageContent = "
                    <li style='text-indent:2em;'>感谢您使用好大夫在线免费网上咨询服务,由于医生工作的特殊性,往往不能保证及时上网回复您的提问,请您理解,如果您希望尽快得到医生的回复或和医生更充分沟通,可以选择付费电话咨询直接与医生通话。</li>
                    <li style='text-indent:2em;'>电话咨询服务:在您确定咨询医生并下单付费后,工作人员会立即与医生联系预约具体通话时间,90%的患者付费当天即可完成通话。通话中您能就病情,就诊时机、治疗方案等问题和医生充分沟通。目前已有".$statistics['opentelservicedoctors']."位大夫开通电话咨询服务,有".$statistics['successtelserviceorders']."名患者成功通话,满意度99%。</li>
                    <li style='text-indent:2em;'><a href='http://{$ref->space->user->name}.haodf.com/payment/servicelist?from=testmsg&date={$nowTime}' class='red' target='_blank'>&gt;&gt; 立即申请和{$ref->space->name}大夫通话</a></li>
                    <li style='text-indent:2em;'><a href='http://400.haodf.com/index/search?facultyname={$ref->space->host->hospitalfaculty->faculty->name}&from=testmsg&date={$nowTime}' class='red' target='_blank'>&gt;&gt; 立即选择{$ref->space->host->hospitalfaculty->faculty->name}大夫通话</a></li>
                    <li style='text-indent:2em;'>或拨打电话".hdfPhoneNumber::TEL_SERVICE_400."</li>
                    ";
                StationLetterClient::getInstance()->sendMsg(Auditor::ADMIN_USER_ID, array($this->_newUser->id), $subject, $messageContent);
            }
        }
    }/*}}}*/
 public function doAddReserveTaskRemark($request, $response)
 {
     DBC::requireNum($request->eventId, "医生动态id是数字");  
     DBC::requireNotEmptyString($request->adminRemark, "备注不能为空");
     PaymentClient::getInstance()->addRemark($request->eventId, $request->adminRemark, $this->curUser);
     $response->setRedirect($response->router->urlfor('telorder/addreservetaskremark', array('eventId'=>$request->eventId)));
 }
 private function getPosterInfo($comment, $response)
 {
     /*{{{*/
     //加号
     $response->userCommentCnt = '';
     $userName = $comment->getUserName();
     $userPhone = $comment->getPosterMobile();
     $doctor = $comment->doctor;
     $spaceId = $doctor->hasSpace() ? $doctor->space->id : 0;
     $jiaHaoStatus = 0;
     $userPhoneThreadList = array();
     if ($comment->patientId && $spaceId > 0) {
         $jiaHaoStatus = BookingClient::getInstance()->getPatientBookingStatus($comment->patientId, $spaceId);
         $userPhoneThreadList = PaymentClient::getInstance()->getPatientSuccessServiceList($comment->patientId, $spaceId);
     }
     $response->doctor = $doctor;
     $response->jiaHaoStatus = $jiaHaoStatus;
     $response->userPhoneThreadList = $userPhoneThreadList;
 }
 public function showTelOrder($request, $response)
 {
     /*{{{*/
     $phone = $request->getRequest('phone', '');
     $telOrderList = array();
     $pageSize = 20;
     $nowPage = $request->getRequest('pageId', 1);
     $response->pageLink = '';
     $cashCoupons = array();
     if ($phone) {
         $telOrderResult = TelOrderClient::getInstance()->getList(TelOrder::SEARCH_CLOSE, $nowPage, $pageSize, '', array('userPhone' => $phone));
         $telOrderList = $telOrderResult['list'];
         $pageInfo = $telOrderResult['pageInfo'];
         $response->pageLink = PageNav::getNavLink(PageNav::getPageNavTemplate($response->router->urlfor('present/showtelorder', array('showContent' => 1, 'pageId' => ''))), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']);
         if (false == empty($telOrderList)) {
             foreach ($telOrderList as $telOrder) {
                 $arr[] = $telOrder->patient->user->id;
             }
             $arr = array_unique($arr);
             $cashCoupons = PaymentClient::getInstance()->getCouponPriceByStatus('cashcoupon', $arr, CashCoupon::STATUS_CONFIRM);
             foreach ($cashCoupons as $key => $cashCoupon) {
                 $cashCoupons[$cashCoupon['userid']][$cashCoupon['price']] = $cashCoupon['id'];
                 unset($cashCoupons[$key]);
             }
         }
     }
     $response->cashCoupons = $cashCoupons;
     $response->telOrderList = $telOrderList;
     $response->phone = $phone;
     $response->message = $request->getRequest('message', '');
 }
    private function getCounts($ref, $response)
    {/*{{{*/
        $presentOrders = DAL::get()->find_all_by_spaceid_and_patientid_and_status('presentorder', $ref->space->id, $ref->patient->id, PresentOrder::STATUS_PAID_YES);
        $response->presentOrderCnt = count($presentOrders);

        $response->spacePostCnt = $ref->spacePostCount;

        $telOrders = PaymentClient::getInstance()->getPatientSuccessServiceList($ref->patient->id, $ref->space->id);
        $response->telOrderCnt = count($telOrders);

        $bookingOrders = BookingClient::getInstance()->getList4Flow($ref->space->id, $ref->patient->id);
        $response->bookingOrderCnt = count($bookingOrders);

        $patientApply = PatientSigninClient::getInstance()->getList4Flow($ref->space->id, $ref->patient->id);
        $patientSignin = PatientSigninClient::getInstance()->getList4Flow($ref->space->id, $ref->patient->id);
        $response->oldPatientCnt = count($patientApply) + count($patientSignin);
    }/*}}}*/