public function index($request, $response)
	{/*{{{*/
		$this->forceSpaceModuleCheck('Index', $response);
		$this->_doHospitalFacultyIndex($request, $response);
		$response->controller = 'index';
		$response->newSpace = $this->_newSpace;
		$response->_newUser = $this->_newUser;

        $key = UserClient::getInstance()->getSeed('g');
        $response->crumb = Crumb::create(DoctorCommentClient::getInstance()->genCommentCrumbKey(), self::TTL);
	}/*}}}*/
 private function genCrumb()
 {/*{{{*/
     return Crumb::create(DoctorCommentClient::getInstance()->genCommentCrumbKey(), self::TTL);
 }/*}}}*/
 public function ajaxVote($request, $response)
 {
     /*{{{*/
     header('Content-Type: text/html; charset=GBK');
     $response->crumb = Crumb::create(DoctorCommentClient::getInstance()->genCommentCrumbKey(), self::TTL);
 }
	public function showDetail($request, $response)
	{/*{{{*/
		$id = $request->id;
		$id = (int)Codec::getInstance()->decodeId($id);
		if(empty($id))
		{
            throw new BizException('医生信息不存在.');
			exit();
		}
		$doctor = DAL::get()->find('doctor', $id);
		if($doctor == null || $doctor->isNull() || $doctor->hospitalfaculty instanceof NullEntity)
		{
            throw new BizException('医生信息不存在.');
			exit();	
		}

        $this->skipHospitals($doctor->hospitalfaculty->hospital->id, $response);
        $this->skipDoctors($doctor->id, $response);
   		$response->doctor = $doctor;
        $scheduleTable = array();
        $scheduleTables1 = DoctorClient::getInstance()->getFormatScheduleList($doctor->id);
   		if($doctor->id != $doctor->primaryId)
   		{
        	$scheduleTables = DoctorClient::getInstance()->getFormatScheduleList($doctor->primaryId);
	        $tmpInfos1 = $scheduleTables1[$doctor->id];
	        $tmpInfos2 = $scheduleTables[$doctor->primaryId];
	        foreach($tmpInfos1 as $i=>$infos)
	        {
                if(empty($infos) || false==is_array($infos))
	        		continue;
	        	$items = array();
	        	foreach($infos as $j=>$info)
	        	{
	        		$items[$j] = (false == empty($tmpInfos1[$i][$j])) ? $tmpInfos1[$i][$j] : ""; 
	        	}
	        	$scheduleTable[$i] = $items;
	        }
   		}
   		else
   		{
   			$scheduleTable = $scheduleTables1[$doctor->id];
   		}
        $options['doctor'] = $doctor->primaryId;
        $pageInfo['pageSize'] = 10;
		$commentList = DoctorCommentClient::getInstance()->getCommentList($options, $pageInfo);
		$commentList = $commentList['commentList'];
		$diseaseAry = DiseaseClient::getInstance()->getDiseaseDoctorList(array($doctor->primaryId), 50);
		$diseaseIds = array();
		foreach ($diseaseAry as $diseaseDorctor)
		{
			$diseaseIds[$diseaseDorctor->fld_diseaseid]['id'] = $diseaseDorctor->fld_diseaseid;
			$diseaseIds[$diseaseDorctor->fld_diseaseid]['name'] = $diseaseDorctor->disease->name;
			$diseaseIds[$diseaseDorctor->fld_diseaseid]['key'] = $diseaseDorctor->disease->key;
		}
		$sameDiseaseDoctorList = array();
		if(empty($diseaseIds) == false)
		{
			$sameDiseaseDoctorList = DoctorClient::getInstance()->getSameProfessionalDoctors($doctor->primaryId, array_keys($diseaseIds), $limit=4);	
		}
		
		$articleList = array();
		$spaceCaseList = array();
		if($doctor->hasSpace() && $doctor->space->isOpened())
		{
            $articleList = ArticleClient::getInstance()->getTitleListBySpace($doctor->space->id, 3);
			$spaceCaseList = DAL::get()->find_all_lastpost_by_space('doctorpatientref', $doctor->space, 10);
		}
		$response->articleList = $articleList;
		$response->spaceCaseList = $spaceCaseList;
		
		$response->hospitalfaculty = $doctor->hospitalfaculty;
        $response->hospital = $doctor->hospitalfaculty->hospital;
        $response->faculty = $doctor->hospitalfaculty->faculty;
		
		$response->scheduleTable = $scheduleTable ; 
		$response->commentList = $commentList ;
		
		$response->diseaseAry = $diseaseAry;
		$response->diseaseIds = $diseaseIds;
		$response->VOTE_DISPLAY_LIMIT = 4;
		$response->sameDiseaseDoctorList = $sameDiseaseDoctorList;

        if($doctor->space->isNull())
        {
            $spaceAskedThreadsCount = $spaceAskedFlowsCount = $spaceRepliedThreadsCount = $spaceRepliedFlowsCount; 
        }
        else
        {
            $spaceAskedThreadsCount = SpaceClient::getInstance()->getCountOfAskedThreadsCount($doctor->space->id, $this->_newUser->id); 
            $spaceAskedFlowsCount = SpaceClient::getInstance()->getCountOfAskedFlowsCount($doctor->space->id, $this->_newUser->id);
            $spaceRepliedThreadsCount = SpaceClient::getInstance()->getCountOfRepliedThreadsCount($doctor->space->id, $this->_newUser->id);
            $spaceRepliedFlowsCount = SpaceClient::getInstance()->getCountOfRepliedFlowsCount($doctor->space->id, $this->_newUser->id);
        }

        $response->spaceAskedCount = $spaceAskedThreadsCount + $spaceAskedFlowsCount;
        $response->spaceRepliedCount = $spaceRepliedThreadsCount + $spaceRepliedFlowsCount;

        $response->crumb = Crumb::create(DoctorCommentClient::getInstance()->genCommentCrumbKey(), self::TTL);
        $space = $doctor->space;
        $response->space = $space;
        $commonCaseNote = $doctor->getCommonCaseNote4Display();
        $response->commonCaseNote = $commonCaseNote;
        $response->successOrderCount = count(DAL::get()->find_id_finishStatus_and_maybeSuccessCallBackStatus('BookingOrder', $space));
        $bookingCondition = $space->getSpaceBusinessRequirement4Booking()->disease;
        $response->bookingCondition = empty($bookingCondition) ? '不限' : $bookingCondition;
        $response->token = Captcha::generate('comment', $doctor->id, ContentFactory::TYPE_ARITHMATIC, 4, XIpLocation::getIp(), 3);
	}/*}}}*/
Esempio n. 5
0
/**
 * Function: smarty_crumb<br>
 *
 * Purpose:  used to make a crumb
 * @author   volcano <volcas at gmail dot com>
 * @return string
 */
function smarty_insert_crumb()
{
    return Crumb::GetCrumb();
}
 public function add(Crumb $crumb)
 {
     $this->crumbs[] = $crumb;
     $crumb->setTrail($this);
     return $this;
 }