コード例 #1
0
 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));
 }
コード例 #2
0
    public function serviceList($request, $response)
    {/*{{{*/    	
        //对没有开通电话咨询医生的链接跳转,没有owner也会跳走.
        if(!$this->_newSpace->isPhoneOpenedForFront($this->_newUser->id)) 
        {
            $response->setRedirect('http://'.URL_PREFIX.'400.haodf.com/index/prompt?doctorName='.rawurlencode($this->_newSpace->host->name).'&doctorFaculty='.rawurlencode($this->_newSpace->host->hospitalfaculty->faculty->name));
            return;
        }
        //电话咨询留言模式
        $mode = null;
        $response->mode = $mode;
    	//从电话咨询医生详情页过来的显示精简模板
        $fromDoctorDetail = 0;
        if(1 == $request->fromDoctorDetail)
        {
            $fromDoctorDetail = $request->fromDoctorDetail;
        }
        //医生近期通话记录       
        $callingLogs = array();
        if(0 == $fromDoctorDetail)
        {
            $callingLogs = PaymentClient::getInstance()->getDoctorRecentPhoneRecords($this->_newSpace);
        }
        $response->callingLogs = $callingLogs;
        $response->fromDoctorDetail = $fromDoctorDetail;
        
        //不允许自己给自己提订单
        $this->isAllowAsk();
        
        //医生部分的信息--beg--
        $owner = DAL::get()->find_by_relatedObject('telowner', $this->_newSpace->user);
        $response->owner = $owner;
        //新近开通
        $latestOpenCallServiceTitle = doctorOutline::getLatestOpenCallServiceTitle($owner->spaceExt->starttime4tel->toString()); 
        $response->latestOpenCallServiceTitle = $latestOpenCallServiceTitle;

        //取头像
        $response->headImageUrl = TuClient::getInstance()->getThumbnailUrl($this->_newSpace->user->headImage, 96, 96, TuClient::TYPE_ZOOM);
        if(empty($this->_newSpace->user->headImage))
        {
            $response->headImageUrl = "http://i1.hdfimg.com/my/img/doctor_default_96.gif";
        }

        //合同列表
        $serviceList = array(); 
        $serviceList = $owner->getActiveContractInfos();

        //满意度和评价
        $doctorSatisfactionList = PaymentClient::getInstance()->getDoctorSatisfactionList($this->_newSpace->host->id);
        $doctorSatisfaction = null;
        if(false == empty($doctorSatisfactionList))
        {
            $doctorSatisfaction = $doctorSatisfactionList[$this->_newSpace->host->id];
        }
        $response->doctorSatisfaction = $doctorSatisfaction;
        $response->serviceList = $serviceList;

        //固定接听时间
        $doctorPhoneSchedules = TelOwnerClient::getInstance()->getDcotorPhoneSchedule('phoneschedule', $owner->id);
        $response->doctorPhoneSchedules = $doctorPhoneSchedules;

        //未完成且已付费的订单数量,在固定接听时间那
        $OrderIdsOfUnfinishedAndPayed = TelOwnerClient::getInstance()->getOrderOfUnfinishedAndPayed('telorder', $owner->id);
        $OrderCntOfUnfinishedAndPayed = count($OrderIdsOfUnfinishedAndPayed);
        $response->OrderCntOfUnfinishedAndPayed = $OrderCntOfUnfinishedAndPayed;
        //医生部分--end--

        //患者部分的信息--beg--
        $curUser = $this->_newUser;

        //患者的有效订单数
        $myOwner = null;
        $couponList = array();
        $canDiscount = false;
        $finalDay = '';
        $patientIdOfSelected = null;
        $validOrderCnt = 0; 
        //已登录状态
        $myOwner = new NullEntity();
        if(false == $curUser->isNull())
        {
            $myOwner = DAL::get()->find_by_relatedObject('telowner', $curUser);
            if($myOwner->isNull() == false)
            {
                $validOrderCnt = TelOrderClient::getInstance()->getValidOrderCnt($myOwner->id);
            }
            $couponList = $owner->getCashCouponList($curUser);//代金券,TODO by wk
            //wk
            //默认选择患者,TODO by wk
            $patientIdOfLatestFlow = FlowClient::getInstance()->getPatientIdOfLatestFlow($this->_newUser->id, $this->_newSpace->id);
            $patientIdOfSelected = $patientIdOfLatestFlow;
            if(empty($patientIdOfLatestFlow))
            {
                $patientIdOfSelected = PaymentClient::getInstance()->getLatestPatientIdOfOrders($myOwner->id);
            }
            //优惠 wk
            $activeTime = TelAppointment::ACTIVETIME;
            $canDiscount = PaymentClient::getInstance()->canDiscount($curUser->id, $this->_newSpace->id, $activeTime);
            $finalDay = PaymentClient::getInstance()->finalDay($curUser->id, $this->_newSpace->id, $activeTime);
        }
        //dodo::yyp从咨询完成页自动带入咨询id 
        $threadid = $request->threadid;
        if(isset($threadid))
        {
            $thread = DAL::get()->find('thread',$threadid);
            $response->thread = $thread;
        }
        $response->curUser= $curUser;
        $response->couponList = $couponList;
        $response->canDiscount = $canDiscount;
        $response->finalDay = $finalDay;
        $response->patientIdOfSelected = $patientIdOfSelected;
        $response->validOrderCnt = $validOrderCnt;
        $response->spaceModule = 'PhoneCase';
        $response->returnVisitList = array();
        $response->ScoreDesc = TelVisit::$scoreDesc;
        $response->myOwner = $myOwner;
        //患者信息--end--

        //$curUser = UserClient::getInstance()->getCurrentUser();//TODO 可以从basecontroller里取
        //$caseIds = array();
        //foreach($callingLogs as $List)
        //{
        //  $caseIds[] = isset($List['caseid']) ? $List['caseid'] : '';
        //}
        //$threadLists = DAL::get()->find('thread', $caseIds);
        //$response->threadLists = $threadLists;

    }/*}}}*/
コード例 #3
0
ファイル: search.php プロジェクト: sdgdsffdsfff/hdf-client
            ?>
                                    <span class='pr5'><?php 
            echo $product->getName();
            ?>
</span>
                                <?php 
        }
        ?>
                            <?php 
    }
    ?>
                                </div>
                            </div>
                            <div class="mt5">
                                <?php 
    echo doctorOutline::getLatestOpenCallServiceTitle($doctorinfo['starttime4tel']);
    ?>
                                <a href="http://<?php 
    echo URL_PREFIX;
    ?>
400.haodf.com/haodf/<?php 
    echo $doctorinfo['username'];
    ?>
#successAnswer" target="_blank" class="blue">查看<?php 
    echo empty($doctorSatisfactionList[$doctorid]['allscore']) ? 0 : $doctorSatisfactionList[$doctorid]['allscore'];
    ?>
个服务评价 >> </a>
                            </div>
                            <div class="mt5 ml40 pl25">
                            <a href="http://<?php 
    echo URL_PREFIX;
コード例 #4
0
 public function forward($request, $response)
 {
     /*{{{*/
     $doctorId = $request->doctorId;
     $userName = $request->username;
     if (empty($doctorId) && empty($userName)) {
         $response->setRedirect("http://400.haodf.com");
     }
     if (false == empty($doctorId)) {
         $doctorId = Codec::getInstance()->decodeId($doctorId);
     } else {
         $user = DAL::get()->find_by_name('user', $userName);
         $doctorId = $user->space->host->id;
     }
     $satisfactionLists = PaymentClient::getInstance()->getDoctorSatisfactionList($doctorId);
     $doctor = DAL::get()->find('doctor', $doctorId);
     //服务费
     if (false == $doctor->isNull() && $doctor->hasSpace()) {
         $productList = ProductClient::getInstance()->getProductsBySpaceIds(array($doctor->space->id), array(ServiceDef::TYPE_TELORDER));
         $productNames = array();
         if (false == empty($productList[$doctor->space->id])) {
             foreach ($productList[$doctor->space->id] as $product) {
                 $productNames[] = $product->getNameOfPriceDesc() . $product->getAppendNameOfRemark();
             }
         }
         $serviceCharge = implode('、', $productNames);
     } else {
         $response->setRedirect('http://' . URL_PREFIX . '400.haodf.com');
         return;
     }
     if ($doctor->hasSpace() && !$doctor->space->isPhoneOpenedForFront($this->_newUser->id)) {
         $response->setRedirect('http://' . URL_PREFIX . '400.haodf.com/index/prompt?doctorName=' . rawurlencode($doctor->name) . '&doctorFaculty=' . rawurlencode($doctor->hospitalfaculty->faculty->name));
         return;
     }
     $this->skipHospitals($doctor->hospitalfaculty->hospital->id, $response);
     $this->skipDoctors($doctor->id, $response);
     $user = DAL::get()->find("user", $doctor->space->user->id);
     if ($doctor->isnull() == false) {
         $headImageUrl = $doctor->getLargeHeadImage();
     } else {
         $headImageUrl = "http://i1.hdfimg.com/my/img/doctor_default_96.gif";
     }
     //好评疾病
     $diseaseList = DiseaseClient::getInstance()->getDiseaseDoctorList(array($doctor->primaryId), 50);
     $hospitalFacultyDoctorIds = array();
     $facultyDoctorIds = array();
     if ($doctor instanceof Doctor) {
         $hospitalFacultyDoctorIds = DoctorClient::getInstance()->getHospitalFacultyDoctorLimit3($doctor);
         $facultyDoctorIds = DoctorClient::getInstance()->getFacultyDoctorLimit6($doctor);
     }
     $facultyDoctorIds = array_diff($facultyDoctorIds, $hospitalFacultyDoctorIds);
     $num = count($facultyDoctorIds);
     $facultyDoctorIds = array_slice($facultyDoctorIds, 0, 3);
     $response->num = $num;
     $hospitalFacultyDoctorList = DAL::get()->find('doctor', $hospitalFacultyDoctorIds);
     $facultyDoctorList = DAL::get()->find('doctor', $facultyDoctorIds);
     $interestDoctor = count($facultyDoctorList);
     $response->interestDoctor = $interestDoctor;
     $doctorFaculty = $doctor->hospitalfaculty->name;
     $response->doctorFaculty = $doctorFaculty;
     $response->hospitalFacultyDoctorList = $hospitalFacultyDoctorList;
     $response->facultyDoctorList = $facultyDoctorList;
     $response->casetotal = PaymentClient::getInstance()->getDoctorVoteCnt($doctor->space->id);
     $response->diseaseList = $diseaseList;
     $response->doctor = $doctor;
     $response->doctorId = $doctor->id;
     $response->userId = $doctor->space->user->id;
     $response->satisfactionLists = $satisfactionLists;
     $response->headImageUrl = $headImageUrl;
     $response->user = $user;
     $response->serviceCharge = $serviceCharge;
     $response->ScoreDesc = TelVisit::$scoreDesc;
     $owner = DAL::get()->find_by_relatedObjectid_and_relatedobjecttype('telowner', $doctor->space->id, TelOwner::TYPE_USER);
     $response->owner = $owner;
     $response->doctorWords = $owner->isNull() || $owner->getSpaceExt() == '' ? '' : $owner->getSpaceExt()->getDoctorWords();
     $response->wordLength = $owner->isNull() || $owner->getSpaceExt() == '' ? '' : strlen($owner->getSpaceExt()->getDoctorWords());
     $goodCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($doctor->space->id, TelVisit::SCORE_GOOD);
     $normalCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($doctor->space->id, TelVisit::SCORE_SOSO);
     $badCnt = PaymentClient::getInstance()->getPatientPhoneServiceCountByScore($doctor->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;
     $latestOpenCallServiceTitle = doctorOutline::getLatestOpenCallServiceTitle($owner->spaceExt->starttime4tel->toString());
     $response->latestOpenCallServiceTitle = $latestOpenCallServiceTitle;
     // 常见问题
     $response->commonQuestions = $owner->isNull() || $owner->getSpaceExt() == '' ? '' : $owner->getSpaceExt()->commonquestions;
     $options['status'] = array(TelOrder::STATUS_FINISHED, TelOrder::STATUS_CLOSED);
     $response->telOrderCount = TelOrderClient::getInstance()->getOrderCount4Space($doctor->space->id, $options);
 }