public function addFlowChargeOrder($request, $response) { /*{{{*/ $refId = $request->getRequest('refid', true); $ref = DAL::get()->find('DoctorPatientRef', $refId); $isdpRef = $ref instanceof DoctorPatientRef; $isUserSelf = $ref->user->id == $this->user->id; $isOpenCharge = $ref->space->isChargeOpened(); DBC::requireTrue($isdpRef && $isUserSelf && $isOpenCharge, '对不起,您不能预充值'); if ($this->checkCanCharge($ref)) { $this->message("抱歉!现在不能购买。您已经提前购买了{$ref->space->name}医生的3次指导机会,为避免资源浪费,请在使用后再次够买。", $response, array('text' => '点击这里继续', 'url' => $ref->getUrl())); } else { $product = ProductClient::getInstance()->getDoctorChargeFlowProduct($ref->space); $charge = $product->salePrice; $cashAccount = $this->user->getCashAccount(); if ($cashAccount->amount >= $charge) { $serviceOrder = ServiceOrderClient::getInstance()->create($ref, $product, $this->user); if (false == $serviceOrder->isNull()) { ServiceOrderClient::getInstance()->pay($serviceOrder, $this->user); $serviceOrder = DAL::get()->find('serviceOrder', $serviceOrder->id, true); } if ($serviceOrder->isPaid()) { $response->setRedirect($serviceOrder->successUrl()); return parent::DIRECT_OUTPUT; } } $url = 'http://' . URL_PREFIX . 'passport.haodf.com/telpayment/showtelaccount'; $this->message('您的余额不足,不能购买,请充值后重新购买', $response, array('text' => '去充值', 'url' => $url)); } }
/** * askPost * * @param mixed $request * @param mixed $response * @access public * @return void */ public function askPost($request, $response) {/*{{{*/ AskSessionInfo::checkBindDtos(); $askSpace = AskSessionInfo::getBindSpace(); $patient = AskSessionInfo::getBindPatient(); if($patient->isNull()) { $response->setRedirect($response->router->urlfor('newcase/askindex')); return false; } $bindBingLiDtos = AskSessionInfo::getBindDtos(); if (empty($bindBingLiDtos)) { $response->setRedirect($response->router->urlfor('newcase/askindex')); return false; } if(false == $askSpace->isNull()) { $product = ProductClient::getInstance()->getFirstFlowProduct($askSpace); } else { $product = FirstFlowPoolVirtualProduct::fetch(); // $product = new FirstFlowPoolVirtualProduct(); } $intention = IntentionClient::getInstance()->createWithProduct($patient, $product, Intention::SRC_WEB, $bindBingLiDtos); if(false == $intention->isNull()) { AskSessionInfo::session_destroy(); $response->setRedirect($response->router->urlfor('newcase/asksuccess', array('id'=>$intention->id))); } else { $this->message('提交医疗请求出错,请重试', $response); } }/*}}}*/
private function _getFlowPosts4ThreeInfos($post, $key, $finalId) {/*{{{*/ $postInfo = array(); if ($post instanceof ServiceCard) {/*{{{*/ if (false == isset($chargeProduct) || false == isset($freeProduct)) { $chargeProduct = ProductClient::getInstance()->getDoctorChargeFlowProduct($post->space); $freeProduct = ProductClient::getInstance()->getDoctorFreeFlowProduct($post->space); } if ($post->ware->product->id == $chargeProduct->id) { $postInfo['userId'] = $post->user->id; $postInfo['title'] = '购买了'.$post->ware->product->amount.'次咨询服务'; $postInfo['content'] = '患者'.$post->user->name.'购买了'.$post->space->host->name.'大夫 '.$post->ware->product->amount.' 次咨询服务'; $postInfo['detailContent'] = ''; $postInfo = $this->_getFlowServiceCardInfos($post, $key, $finalId, $postInfo); $postInfo['type'] = 'chargeServiceCard'; } else if ($post->ware->product->id == $freeProduct->id) { $postInfo['userId'] = $post->space->id; $postInfo['title'] = $post->space->host->name.'大夫免费增加了患者'.$post->user->name." ".$post->ware->product->amount.' 次咨询服务'; $postInfo['content'] = ''; $postInfo['detailContent'] = ''; $postInfo = $this->_getFlowServiceCardInfos($post, $key, $finalId, $postInfo); $postInfo['type'] = 'freeServiceCard'; } }/*}}}*/ return $postInfo; }/*}}}*/
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)); }
/** * onLine * * @param mixed $request * @param mixed $response * @author mq <*****@*****.**> * @access public * @return void */ public function onLine($request, $response) { /*{{{*/ $product = DAL::get()->find('Product', $request->id); ProductClient::getInstance()->online($this->curInspector, $product); $response->setRedirect($response->router->urlfor('spacebusinessrequirement/productdetail', array('id' => $request->id))); }
private function _selectProduct($space, $proposal, $response) { /*{{{*/ $response->_selectProduct_space = $space; $response->_selectProduct_proposal = $proposal; $products = array(); if (false == $space->isNull()) { $products = ProductClient::getInstance()->getProducts($space, array(ServiceDef::TYPE_FLOW, ServiceDef::TYPE_BOOKING, ServiceDef::TYPE_TELORDER)); foreach ($products as $key => $p) { if (ServiceDef::TYPE_FLOW == $p->service->key && false == $p->isFirstFlowProduct()) { unset($products[$key]); } } $this->_spaceInfo($space, $response); } $response->_selectProduct_products = $products; $serviceDefs = array(); foreach ($products as $p) { $serviceDefs[] = $p->service->key; } $response->_selectProduct_serviceDefs = array_unique($serviceDefs); }
public function askPost($request, $response) {/*{{{*/ $this->checkStartMarkSession($response); $res = $this->setIntentionTitle();//拼咨询标题 if (false == $res) { $response->setRedirect($response->router->urlfor('newcase/askindex')); return false; } $askSpace = AskSessionInfo::getBindSpace(); $patient = AskSessionInfo::getBindPatient(); $bindBingLiDtos = AskSessionInfo::getBindDtos(); if (empty($bindBingLiDtos)) { $response->setRedirect($response->router->urlfor('newcase/askindex')); return false; } $caseTitle = AskSessionInfo::getThreadTitle(); if(trim($caseTitle) == "") { throw new BizException('标题不能为空'); } if(false == $askSpace->isNull()) { $isCanAsk = $this->ensureCanAsk($this->user, $askSpace, $response); if(false == $isCanAsk) { return false; } $product = ProductClient::getInstance()->getFirstFlowProduct($askSpace); } else { $product = FirstFlowPoolVirtualProduct::fetch(); } $intention = IntentionClient::getInstance()->createWithProduct($patient, $product, Intention::SRC_TOUCH, $bindBingLiDtos); if(false == $intention->isNull()) { AskSessionInfo::session_destroy(); $response->setRedirect($response->router->urlfor('newcase/asksuccess', array('intentionId'=>$intention->id))); } else { throw new BizException('提交咨询出错,请重试'); } }/*}}}*/
private function checkCanUserReply(DoctorPatientRef $ref) { $followupOwner = $ref->getFollowupOwner(); $space = $ref->space; $canReplyFollowupOwner = false == $followupOwner->isNull() && $followupOwner->isOpenFollowup(); $doctorChargeFlowProduct = ProductClient::getInstance()->getDoctorChargeFlowProduct($ref->space); $message = ''; if (false == $canReplyFollowupOwner && false == $space->isCaseOpen()) { $message = '医生已经关闭了咨询区,您暂时不能向医生提问'; } elseif ($ref->isClosePost()) { $message = '医患关系已关闭,无法继续交流'; } elseif ($space->isChargeOpened() && $ref->isSpaceCanPost() == false && $doctorChargeFlowProduct instanceof Product && false == $ref->hasSpaceLeftAllowCnt()) { $message = '您和医生的交流次数已用完'; } return $message; }
public function add($request, $response) {/*{{{*/ $this->breakIfLessMessage($request, $response); if ($response->isQQ) { $this->checkLogin($request, $response); } $isLogin = UserClient::getInstance()->isLogin(); if ($isLogin == true) { $curUser = $this->_newUser; } else { $username = $request->username; $password = $request->password; $curUser = UserClient::getInstance()->register($username, $password); User::sendRegisterMsg($curUser->id); $curUser = UserClient::getInstance()->login($username, $password, false, null, $this->partnerDomain); } if ($curUser->isNull()) { throw new BizException('该邮箱已被注册!');; } if (false == $curUser->allowQuestion()) { throw new BizException('不允许提问'); } $patient = $this->getPatient($request, $curUser); $space = DAL::get()->find('space', $request->host_id); $ip = RequestDelegate::getIp(); $diseaseDto = BingLiDto::createDiseaseDto(XString::convertToGbk($request->case_disease_tag), $patient->id); $titleDto = BingLiDto::createTitleDto(XString::convertToGbk($request->case_title), $patient->id); $hospitalDto = BingLiDto::createHospitalDto(XString::convertToGbk($request->case_prehospital), XString::convertToGbk($request->case_prekeshi), $patient->id); $hopeHelpDto = BingLiDto::createHopeHelpDto(XString::convertToGbk($request->post_help), $patient->id); $content = "检查及化验:\n".XString::convertToGbk($request->post_content). "\n治疗情况(当前用药或近期手术):\n".XString::convertToGbk($request->post_effects). "\n病史:\n".XString::convertToGbk($request->post_history); if(XString::getLengthOfGBKString(XString::getLengthOfGBKString($content)>1000)) { throw new BizException('请精简您所填写的病情信息'); } $contentDto = BingLiDto::createConditionDescDto($content, $patient->id); $realBingLiDtos = NodeClient::getInstance()->addBingLis(array( $diseaseDto, $titleDto, $hospitalDto, $hopeHelpDto, $contentDto, ), NodeObj::SOURCE_PATIENT); if(false == $space->isNull()) { $product = ProductClient::getInstance()->getFirstFlowProduct($space); } else { $product = FirstFlowPoolVirtualProduct::fetch(); } SpaceClient::getInstance()->ensureAllowAskRule($curUser, $space); $src = $_SERVER['HTTP_HOST']; $intention = IntentionClient::getInstance()->createWithProduct($patient, $product, $src, $realBingLiDtos, $ip); $response->setRedirect('http://'.$_SERVER['HTTP_HOST'].$response->router->urlfor('thread/finish', array('threadId' => $intention->id))); }/*}}}*/
$('#morepatient').dialog({ height:'auto', width:'300px', show: { effect: "blind", duration: 500 }, }); }); }); </script> <?php $productList = array(); if ($order->getSpace() instanceof Space) { $productList = ProductClient::getInstance()->getProducts($order->getSpace(), array(ServiceDef::TYPE_TELORDER)); } $price = array(); foreach($productList as $product) { $price[] = $product->salePrice."/".$product->duration; } $price = implode('; ', $price); $orderDetailCnt = TelOrderClient::getInstance()->getOrderDetailCnt('telorder', $order); //取电话的订单数目 $patientExt = $order->patient->getPatientExt(); $phone1 = isset($patientExt->phone1)?$patientExt->phone1:''; $phone2 = isset($patientExt->phone2)?$patientExt->phone2:''; $cntOfOrdersByPhone1 = TelOrderClient::getInstance()->getCntOfOrdersByPhone($phone1); $cntOfOrdersByPhone2 = TelOrderClient::getInstance()->getCntOfOrdersByPhone($phone2); $caseList = DAL::get()->find_all_by_userid('Thread', $order->user->id);
private function getProduct($name = 'malijuanmlj') {/*{{{*/ $productList = ProductClient::getInstance()->getProducts($this->getSpace($name), array(serviceDef::TYPE_TELORDER));; return array_pop($productList); }/*}}}*/
<? if (false == isset($chargeProduct) || false == isset($freeProduct)) { $chargeProduct = ProductClient::getInstance()->getDoctorChargeFlowProduct($space); $freeProduct = ProductClient::getInstance()->getDoctorFreeFlowProduct($space); } $serviceCard = $flowable; if ($serviceCard->ware->product->id == $chargeProduct->id) { ?> <div class="stream-oran pr"> <div class="stream-box"> <div class="clearfix stream-box-content pt10"> <div class="stream-box-content-l fl"> <?php include"_left_patient.php"?> <p><span class="red2"> 服务卡</span></p> </div> <div class="stream-box-content-r fl"> <div class="strem-box-pControl"> 患者<?=$flow->getPatientName($curUser)?>购买了<a href="<?=$space->url ?>"><?=$space->host->name ?></a>大夫<span class="orange1 m10"><?=$serviceCard->ware->product->amount?></span>次咨询服务 </div> </div> </div> <div class="tr gray2 pt10 clearfix"> <div class="fr"> <span class="gray2">提交于 <?=$flowable->ctime->toString() ?></span> </div> </div> </div> </div> <? } else if ($serviceCard->ware->product->id == $freeProduct->id) { ?> <div class="stream-green"> <div class="stream-box">
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); }
public function alipayChannel4Zixun($request, $response) { /*{{{*/ $flow = DAL::get()->find('DoctorPatientRef', $request->refid); DBC::requireFalse($flow->isNull(), '无效订单'); $product = ProductClient::getInstance()->getDoctorChargeFlowProduct($flow->space); $needPay = XString::calculateBalancePrice($product->salePrice, $flow->user->getCashAccount()->amount); DBC::requireTrue($needPay > 0, '价格有错误 或 余额可够支付'); $serviceOrder = ServiceOrderClient::getInstance()->create($flow, $product, $flow->user); DBC::requireFalse($serviceOrder->isNull(), '无效订单'); $depositeOrder = OrderClient::getInstance()->createDepositeOrder($flow->user, $needPay, DepositeOrder::RECHARGE_TYPE_ALIPAYWAP, array($serviceOrder)); DBC::requireFalse($depositeOrder->isNull(), '无效订单!'); $userName = $flow->user->name; $returnUrl = WaperAlipay::getDefaultReturnUrl4TouchZixun(); $notifyUrl = WaperAlipay::getDefaultNotifyUrl(); $sellerUrl = WaperAlipay::getDefaultSellerUrl4TouchZixun($serviceOrder->id); $aliPayUrl = WaperAlipay::getAliWapPayUrl($depositeOrder->id, $this->getPayTypeByOrder($serviceOrder), $needPay, $notifyUrl, $returnUrl, $sellerUrl, ServiceDef::getServiceSpec(ServiceDef::TYPE_FLOW)->text, $this->getPayDescriptionByOrder($serviceOrder, $userName)); $response->setRedirect($aliPayUrl); }
public function choosePayWay($request, $response) {/*{{{*/ $response->title = "选择支付方式_好大夫在线"; $response->topTitle = "选择支付方式"; $refId = $request->refid; $ref = DAL::get()->find('DoctorPatientRef', $refId); $product = ProductClient::getInstance()->getDoctorChargeFlowProduct($ref->space); $response->price = $product->price; $response->ref = $ref; }/*}}}*/
public function orderPost($request, $response) { /*{{{*/ $msg = $this->checkOrderPostInfo($request, $response); if ($msg) { $this->message($msg, $response); return false; } $space = $this->space; $patient = $this->modifyPatientInfo($request, $response); if (false == $patient instanceof Patient) { $this->message($patient, $response); return false; } $date = $request->date; $registertime = $request->registertime; $schedule = 0; if ($registertime && $date) { $schedule = $date . ' ' . $registertime . ':00'; } $disease = $request->disease; $userCategory = $request->userCategory; $goal = array_sum($request->getRequest('goal', array())); $dateTime = $request->datetime; $address = mb_convert_encoding($request->address, 'gbk', 'auto'); $lastHospital = $request->lastHospital; $description = $request->description; $attachmentIds = $request->attachmentids; $attachmentIds = is_array($attachmentIds) ? $attachmentIds : explode(',', $attachmentIds); $smsModel = $request->smsModel; $patientMobile = $patient->mobile; $response->space = $space; if ($space->isBookingOpened() && !empty($schedule) && !empty($disease)) { $lastHospitalOrLastTreatedTime = $request->lastHospital; $lastHospital = BookingOrder::USER_CATEGORY_OLD == $userCategory ? '' : $lastHospitalOrLastTreatedTime; $lastTreatedTime = BookingOrder::USER_CATEGORY_OLD == $userCategory ? $lastHospitalOrLastTreatedTime : ''; $product = ProductClient::getInstance()->getFirstBookingProduct($space); $intention = IntentionClient::getInstance()->add4Booking($product, $patient, $space, $disease, $userCategory, $goal, $schedule, $dateTime, $address, $lastHospital, $lastTreatedTime, $smsModel, $description, $attachmentIds, Intention::SRC_WEB, $patientMobile); $response->setRedirect($this->space->getUrl() . 'booking/ordersuccess?id=' . $intention->id); } else { $this->message('目前不能提交', $response, array('url' => "http://" . URL_PREFIX . "passport.haodf.com")); } }
{ $flow = $inspectTicket->getInspectSource()->inspectable; $newFlow = DAL::get()->find('DoctorPatientPost', $flow->id, true); if($newFlow->isNull())//感谢信转换成流,真实删除post { continue; } $ticket = $inspectTicket; } if ($flow->isNull()) { continue; } $a++; $freeProduct = ProductClient::getInstance()->getDoctorFreeFlowProduct($doctorPatientRef->space); if($flow instanceof presentorder && false == $flow->isSentBySpace()) { $user = $flow->patient->user; } else if($flow instanceof FollowupPost) { $user = $flow->followupOwner->user; } else if($flow instanceof ServiceCard) { $user = ($flow->ware->product->id == $freeProduct->id)?$doctorPatientRef->space->user:$doctorPatientRef->user; } else { $user = $flow->user;
/** * updateProduct 修改产品 * * @param mixed $userId * @param mixed $productId * @param mixed $remark * @access public * @return void */ public function updateProduct($userId, $productId, $remark) {/*{{{*/ $space = DAL::get()->find('space', $userId); $product = DAL::get()->find('Product', $productId); if($product->isNull() || $space->isNull()) { $this->setErrorCode(328); return 0; } $leaveMessage = "产品id为:".$product->id.'<br />'; if(empty($product->name) == false) { $leaveMessage .= "产品名称:".$product->name.'<br />'; } else { $leaveMessage .= '产品名称:单次电话咨询,最长'.$product->duration.'分钟 <br />'; } $leaveMessage .= "其他说明:".$remark; $source = $_REQUEST['os'] == 'ios' ? ProductApply::SOURCE_IOS: ProductApply::SOURCE_ANDROID; $productApplyId = ProductClient::getInstance()->addProductApply($space, ServiceDef::TYPE_TELORDER, $product->salePrice, $product->duration, $leaveMessage, $source); $this->content = array('id'=>$productApplyId); }/*}}}*/
public function getDocotorListFor400($hosFaculty, $facultyName, $pageId, $pageSize) {/*{{{*/ $this->_initPageInfo($pageId, $pageSize); $facultyName = DoctorClient::getInstance()->redirectFacultyname(rawurldecode($facultyName)); $hosFaculty = DoctorClient::getInstance()->redirectFacultyname(rawurldecode($hosFaculty)); if('全部科室' == $hosFaculty) { $hosFaculty = ''; } if('全部' == $facultyName) { $facultyName= ''; } $finalFacultyName = ''; //在搜索时两种科室只可能有一种存在值 if(!empty($hosFaculty) || !empty($facultyName)) { $finalFacultyName = !empty($facultyName) ? $facultyName : $hosFaculty; } $diseaseName = ''; $province = ''; $hospitalName = ''; $results = DoctorClient::getInstance()->getDoctorListFor400Search($diseaseName, $province, $finalFacultyName, $hospitalName, $pageId, $pageSize); $productList = array(); if (false == empty($results['userids'])) { $productList = ProductClient::getInstance()->getProductsBySpaceIds($results['userids'], array(ServiceDef::TYPE_TELORDER)); } $infos = array(); if(!empty($results['doctorids'])) { $doctorSatisfactionList = PaymentClient::getInstance()->getDoctorSatisfactionList($results['doctorids']); foreach($results['info'] as $userid => $result) { $info = array(); $info['doctorName'] = $result['name']; $info['userName'] = $result['username']; $info['grade'] = $result['grade']; $info['educateGrade'] = empty($result['educategrade']) ? '' : $result['educategrade']; $info['headImage'] = ""; $doctorId = $result['doctorid']; $doctor = DAL::get()->find('doctor', $result['doctorid']); if(false == $doctor->isNull()) { $info['headImage'] = $doctor->getHeadImageForMobile(); } $info['doctorId'] = $doctorId; $info['hospitalName'] = $result['hospitalname']; $info['specialize'] = $result['specialize']; $info['facultyName'] = $result['facultyname']; $info['scoreCnt'] = 0; $info['phoneCnt'] = 0; if(isset($doctorSatisfactionList[$doctorId])) { $info['scoreCnt'] = $doctorSatisfactionList[$doctorId]['scorecnt']; $info['phoneCnt'] = $doctorSatisfactionList[$doctorId]['cnt']; } $telServices = $productList[$userid]; if(!empty($telServices)) { foreach($telServices as $product) { $info['service'][] = array('min' => $product->duration, 'price' => $product->salePrice); } } $diseaseVotes = $results['disease'][$userid]; $info['diseaseVotes'][] = array('diseaseKey' => '', 'diseaseVote' => ''); if(false == empty($diseaseVotes)) { unset($info['diseaseVotes']); foreach($diseaseVotes as $voteKey => $diseaseVote) { $info['diseaseVotes'][] = array('diseaseKey' => $voteKey, 'diseaseVote' => $diseaseVote); } } $info['scoreCnt'] = 0; $info['phoneCnt'] = 0; $infos[] = $info; } } $this->pageInfo= isset($results['pageInfo']) ? $results['pageInfo'] : array(); $this->content = $infos; }/*}}}*/
public function newBookingOrder($userId, $doctorId, $schedule, $disease, $bookingGoal, $hospital, $userCategory, $description, $attachmentIds, $deviceType, $patientId) {/*{{{*/ if (in_array($patientId, self::$patientIds)) { $this->setErrorCode(1000); return 0; } if($this->isBookingServiceSuspendTime()) { $this->setErrorCode(902); return 0; } if ($userId <= 0) { $this->setErrorCode(107); return 0; } $user = DAL::get()->find('user', $userId); $patient = DAL::get()->find('patient', $patientId); if($patient->isNull() || $patient->user->id != $userId) { $this->setErrorCode(309); return 0; } $patientMobile = $patient->mobile; if ($user->isNull()) { $this->setErrorCode(107); return 0; } $doctor = DAL::get()->find('doctor', $doctorId); $opend = $doctor->space->isBookingOpened(); $spaceBusinessRequirement = $doctor->space->getSpaceBusinessRequirement4Booking(); if(false == $opend || $spaceBusinessRequirement->isNull()) { $this->setErrorCode(305); return 0; } $scheduleList = $spaceBusinessRequirement->serializedSchedule; $list = explode(",", $schedule); $date = $list[0];//日期 $dateTime = $list[1];//上午,下午 $showContent = self::getShowContent($date, $dateTime, $scheduleList); $registerTime = $showContent['registertime']; if($registerTime) { $schedule = $date.' '.$registerTime.':00'; } else { $schedule = $date; } $address = $showContent['address']; $treatment = '无'; $smsModel = isset($showContent['smsmodel']) ? $showContent['smsmodel'] : BookingOrder::SMSMODEL_OLD; $validateInput = (strlen($patientMobile) != 11) || $disease || $bookingGoal || $hospital || $description; if(false == $validateInput) { $this->setErrorCode(306); return 0; } $attachmentIds = explode(',', $attachmentIds); if (!empty($schedule) && !empty($disease)) { $lastHospital = BookingOrder::USER_CATEGORY_OLD == $userCategory? '': $hospital; $lastTreatedTime = BookingOrder::USER_CATEGORY_OLD == $userCategory? $hospital: ''; $product = ProductClient::getInstance()->getFirstBookingProduct($doctor->space); $intention = IntentionClient::getInstance()->add4Booking($product, $patient, $doctor->space, $disease, $userCategory, $bookingGoal, $schedule, $dateTime, $address, $lastHospital, $lastTreatedTime, $smsModel, $description, $attachmentIds, $deviceType, $patientMobile); $info = array('orderId' => $intention->id); $this->content = $info; }else { $this->setErrorCode(307); return 0; } }/*}}}*/
public function index($request,$response) {/*{{{*/ /* bigpipe用来做切换,true表示关闭,以普通模式浏览 */ $response->nobp = ($request->nobp == null) ? false : true; //搜索 $response->searchWords = $this->getHotSearchWords(); List($blueImage, $redImage) = $this->getHomeBigImage(); $response->blueImage = $blueImage; $response->redImage = $redImage; //在线专家 $response->onLineDoctorList = DoctorClient::getInstance()->getOnLineDoctor4HomePage(); //按医院找大夫 $provList = $this->getProvList(); $provKeyList = $this->getProvKey(); $hospitalIds = array(); foreach ($provList as $p => $prov) { foreach ($prov as $h => $hospital) { $hospitalIds[] = $h; } } $response->hospitalList = DAL::get()->find('hospital', $hospitalIds); $response->provList = $provList; $response->provKeyList = $provKeyList; //咨询专家 咨询列表 $response->doctorPatientSets = $this->getFlowList4HomePage(self::THREADCATEGORY_COUNT, self::THREAD_COUNT); $response->statistics = SpaceClient::getInstance()->getStatistics(); //咨询专家 电话咨询列表 $recommendDoctorList = PaymentClient::getInstance()->getRecDoctorList4HomePage(10, 3); $response->recommendDoctorList = $recommendDoctorList; $spaceUserIds = $doctorIds = array(); foreach ($recommendDoctorList as $facultyInfo) { $facultyDoctorInfo = isset($facultyInfo['doctor']) ? $facultyInfo['doctor'] : array(); foreach ($facultyDoctorInfo as $doctor) { $spaceUserIds[] = $doctor->getSpace()->user->id; $doctorIds[] = $doctor->id; } } $productList = $lastOrders = array(); if(!empty($spaceUserIds) && !empty($doctorIds)) { //电话咨询产品 $productList = ProductClient::getInstance()->getProductsBySpaceIds($spaceUserIds, array(ServiceDef::TYPE_TELORDER)); //取最新订单 $lastOrders = PaymentClient::getInstance()->getLatestServiceList($doctorIds); } $response->productList = $productList; $lastOrderGroupBySpace = array(); foreach ($lastOrders as $lastOrder) { if ($lastOrder->getSpace() instanceof Space) { $lastOrderGroupBySpace[$lastOrder->getSpace()->id] = $lastOrder; } } $response->lastOrderGroupBySpace = $lastOrderGroupBySpace; //预约加号 $doctorNumber = PlussignChannelClient::getInstance()->getPlusSignDoctorCount();//全国开通加号医生总数目 $patientNumber = SpaceClient::getInstance()->getPlusSignPatientCount(); $patientOrderList = PatientClient::getInstance()->getPatientOrderList(); $response->doctorNumber = $doctorNumber; $response->patientNumber = $patientNumber; $response->patientOrderList = $patientOrderList; //分享经验 $commentCount = DoctorCommentClient::getInstance()->getCommentCount(); $response->thankListCount = isset($commentCount['letter']) ? $commentCount['letter'] : 0; $response->doctorCommentListCount = isset($commentCount['comment']) ? $commentCount['comment'] : 0; $expList = DAL::get()->find_all_for_top('cureexp', 4); $response->expList = $expList; $thankList = DAL::get()->find_all_for_top('curethankletter', 4); $response->thankList = $thankList; //出诊 停诊信息 $response->hospitalAnnounceList = HospitalClient::getInstance()->getHospitalAnnounceList4HomePage(3); $response->cmslinkList = CmsClient::getInstance()->getCmsLinkList(self::CMS_COUNT); //好大夫动态 $response->latestList = SpaceLogClient::getInstance()->getLatestList(self::LAST_COUNT); $response->images = $this->_images; //礼物动态 $spaceId = 0; $result = PresentClient::getInstance()->showPresentBanner($spaceId, 12, $request->from, array(), false); $response->presentOrders = $result['presentOrders']; //最新专家文章 $limit = self::ARTICLE_COUNT - substr_count(Place::getPlaceContent('haodf_index','wenzhang_url','onlyone'), '<li>'); $articleList = ArticleClient::getInstance()->getArticleList4Index($limit); $response->articleList = $articleList; }/*}}}*/
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']); } }/*}}}*/
public function ajaxBeforeBuyChargeOrder($request, $response) {/*{{{*/ $isPass = true; $alert = ''; $refId = $request->getRequest('refid',true); $ref = DAL::get()->find('DoctorPatientRef', $refId); if($ref->isNull() || $ref->user->id != $this->user->id) { $isPass = false; $alert = '对不起,您不能预充值'; } if($isPass) { $product = ProductClient::getInstance()->getDoctorChargeFlowProduct($ref->space); $cashAccount = $this->user->getCashAccount(); if($cashAccount->amount < $product->salePrice) { $isPass = false; $alert = '您的余额不足,不能购买,请充值后重新购买'; } } $content = '<script>'; if($isPass) { $content .= 'viewBuyBox(' .$this->strings2params(array( $ref->space->name, $product->amount, $product->salePrice, $ref->getUrl(), $ref->space->getUrl().'charge/addflowchargeorder?refid='.$ref->id, )) .')'; } else { $content .= 'alert("'.$alert.'")'; } $content .= '</script>'; echo $content; exit; }/*}}}*/
public function service($request, $response) {/*{{{*/ $response->title= ""; if(false && XDateTime::isSpringHoliday()) { if ($request->telOrderId) { $currentUrl = $response->router->urlfor('tel/service', array('entityid' => $request->entityid, 'telOrderId' => $request->telOrderId)); } else { $currentUrl = $response->router->urlfor('tel/service', array('entityid' => $request->entityid)); } $response->setRedirect($response->router->urlfor('tel/holidaynotice', array('id'=> $request->entityid, 'from' => $currentUrl))); return false; } if (($request->entityid && $request->entityid > 0) || $request->telOrderId != '') { $doctor = DAL::get()->find('doctor', $request->entityid); $response->products = $products = ProductClient::getInstance()->getProducts($doctor->space, array(ServiceDef::TYPE_TELORDER)); $response->doctor = $doctor; if ($request->telOrderId != '') { $response->telOrderId = $request->telOrderId; }else if(count($products) == 1){ $product = array_shift($products); $response->setRedirect($response->router->urlfor('tel/telorderform', array('productId'=> $product->id))); } } else { $this->_exit404(); } }/*}}}*/
public function showThreadContract($request, $response) { /*{{{*/ $statusType = $request->statusType ? $request->statusType : ''; $response->contractList = $this->getShowContractListOfType(ServiceDef::TYPE_FLOW); $response->productList = ProductClient::getInstance()->getProducts($this->space, array(ServiceDef::TYPE_FLOW)); $response->actionClass = $request->actionclass ? $request->actionclass : 'threadcontract'; $response->statusType = $statusType; }
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); }/*}}}*/
public function balancePay4rechargeableCase($userId, $caseId, $caseType, $os) {/*{{{*/ if ($caseType != 'flow' && $caseType != 'Flow') { $this->setErrorCode(335); return false; } $dpRef = DAL::get()->find('DoctorPatientRef', $caseId); if ($dpRef->isNull()) { $this->setErrorCode(335); return false; } $result = ""; if (!$dpRef->space->isChargeOpened()) { $this->setErrorCode(336); return false; } /* if ($dpRef->getAllowSpaceReply() >= DoctorPatientRef::LASTSPACEREPLY) { $this->setErrorCode(337); return false; } */ if (false == $dpRef->isNull() && $dpRef->canPatientCharge($userId)) { $product = ProductClient::getInstance()->getDoctorChargeFlowProduct($dpRef->space); $serviceOrder = ServiceOrderClient::getInstance()->create($dpRef, $product, $dpRef->user); if(false == $serviceOrder->isNull()) { ServiceOrderClient::getInstance()->pay($serviceOrder, $dpRef->user); $result = 'succ'; } } if ($result != 'succ') { $this->setErrorCode(334); return false; } else { $this->msg = '支付成功'; } }/*}}}*/
<div class="clearfix"> <div class="w200 fl" style="margin-top:80px"> <p class="mt60 tc"><img style="width:59%; height:100%;" src="http://i1.hdfimg.com/userspace/images/payment06.png"/></p> <p class="mt10 tc"><a href="http://abc.alipay.com/i/index.htm" target="_blank" class="blue unl">如何使用支付宝在线充值?</a></p> </div> <div class="w400 fl ml30" style="margin-top:80px"> <!--start paymentBox--> <div class="paymentBox"> <div class="paymentBox_t tc">使用支付宝在线充值</div> <form class="paymentBox_c clearfix" action="<?=$router->urlfor('telpayment/applyrecharge', array('from'=>(isset($sourceType) && $sourceType)?'recharge':$from,'orderId'=>$orderId))?>" method="POST" onsubmit="return isChecked()"> <p><label> <input type="radio" name="price" value="<?=$ceilPrice?>" checked="checked"> 充值 <span class="orange fb"><?=$ceilPrice?></span> 元<?php if($isPresent){ ?> = <span class="orange fb"><?=Account::money2Integral($ceilPrice)?></span> 积分<?php } ?> </label></p> <?php $product = ProductClient::getInstance()->getDoctorChargeFlowProduct($space); $optionPirce = (isset($sourceType) && $sourceType)?Account::getOptionPrice($product->price):array(10, 30, 50, 100); foreach($optionPirce as $value) { if($value <= $ceilPrice) continue; ?> <p><label> <input type="radio" name="price" value="<?=$value?>"> 充值 <span class="orange fb"><?=$value?></span> 元 <?php if($isPresent){ ?>= <span class="orange fb"><?=Account::money2Integral($value)?></span> 积分<?php } else if(isset($sourceType) && $sourceType) { ?><span class="gray">(医生的<?=Account::money2Number($product->price, $value)?>次回复)</span><?php } ?> </label></p> <?} if($isPresent){?> <p class="mt40"> <input type="checkbox" id="content" checked="checked"> <a target="_blank" id="contentref" href="<?=Account::termsUrl()?>" class="unl">同意好大夫在线积分服务条款</a> </p> <?php } ?>