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 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; }/*}}}*/
?> <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;
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); }