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)));
    }/*}}}*/
Example #10
0
        $('#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);
 }/*}}}*/
Example #12
0
<?
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);
 }
Example #14
0
 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"));
     }
 }
Example #17
0
 {
     $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;
    }/*}}}*/
Example #20
0
    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;
    }/*}}}*/
Example #24
0
    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 = '支付成功';
     }
 }/*}}}*/
Example #28
0
 <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 } ?>