public function showWithdrawStatement($request, $response) { /*{{{*/ $nowPage = $request->page ? $request->page : 1; $pageSize = 20; $response->incomeAccountAmount = $this->space->getIncomeAccount()->amount; $response->subsidyAccountAmount = $this->space->getSubsidyAccount()->amount; $settleOrders = DAL::get()->find_all_by_spaceid('SettleOrder', $this->space->id); $settleOrders = array_reverse($settleOrders); $response->settleOrders = array_slice($settleOrders, ($nowPage - 1) * $pageSize, $pageSize); $withdrawAmount = $noWithdrawAmount = 0; $noWithdrawCnt = 0; foreach ($settleOrders as $order) { $noTaxAmount = $order->getAmountWithoutTax(); if ($order->isWithdraw()) { $withdrawAmount += $noTaxAmount; } else { $noWithdrawCnt++; } } $response->withdrawAmount = $withdrawAmount; $response->noWithdrawCnt = $noWithdrawCnt; $pageInfo = Pager::calcPageInfo(count($settleOrders), $nowPage, $pageSize); $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace("showwithdrawstatement?actionclass={$request->actionclass}&page="), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']); $response->actionClass = $request->actionclass; }
public function newList($request, $response) {/*{{{*/ $response->controller = 'Index'; $response->object = 'flow'; $this->initialize($request, $response); $this->forceSpaceModuleCheck('Case', $response); //threads总数和flow总数 $threadsCount = ThreadClient::getInstance()->getUnSpacePostThreadsCount($this->_newSpace->id, $this->_newUser->id, array('isBrowser'=>$this->_newUser->isNull())); $flowsCount = FlowClient::getInstance()->getFlowListCount($this->_newSpace->id, array('p_type'=>'all', 'isBrowser'=>$this->_newUser->isNull())); $response->flowCount = $threadsCount + $flowsCount; $options = array(); $options['filterUserId'] = $this->_newUser->id; $options['spaceId'] = $this->_newSpace->id; $nowPage = intval($request->getRequest('p', 1)); $nowPage = $nowPage > 0 ? $nowPage : 1; $pageSize = 25; $freeFlowCount = FlowClient::getInstance()->getFreeFlowCntBySpace($this->_newSpace, $needCache = false); $chargeFlowCount = FlowClient::getInstance()->getPaiedFlowCntBySpace($this->_newSpace, $needCache = false); $response->chargeFlowCount = $chargeFlowCount; $threadOptions = array(); $threadOptions['nowPage'] = $nowPage; $threadOptions['pageSize'] = $pageSize; if (false == $this->_newUser->isNull()) { $threadOptions['excludeuser'] = $this->_newUser->id; } $unPostThreadList = ThreadClient::getInstance()->getUnSpacePostThreads($this->_newSpace->id, $this->_newUser->id, $threadOptions); $myThreadIds = array(); if (false == $this->_newUser->isNull()) { $myThreadIds = ThreadClient::getInstance()->getMyThreadInSpace($this->_newSpace->id, $this->_newUser->id); } $nowPageThreadCount = count($unPostThreadList); if ($nowPageThreadCount < $pageSize) { if ($nowPageThreadCount > 0) { $options['from'] = 0; $options['pageSize'] = $pageSize - $nowPageThreadCount; } else { $options['from'] = (($nowPage-1) * $pageSize == $threadsCount - count($myThreadIds)) ? 0 : (($nowPage - 1) * $pageSize - $threadsCount + count($myThreadIds)) ; $options['pageSize'] = $pageSize; } $res = FlowClient::getInstance()->getAllFlows($options); $flowList = $unPostThreadList + $res['refs']; } else { $flowList = $unPostThreadList; } $userSelfFlowCnt = 0; if(false == $this->_newUser->isNull()) { $userSelfFlowCnt = FlowClient::getInstance()->getAllFlowCnt(array('spaceId' => $this->_newSpace->id, 'userId' => $this->_newUser->id)); } $pageInfo = Pager::calcPageInfo(($freeFlowCount + $chargeFlowCount + $threadsCount - $userSelfFlowCnt), $nowPage, $pageSize); $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("?&p="), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']); $userSelf = array(); //当前患者的流 if($nowPage == 1 && $this->_newUser->isNull() == false && $this->_newUser->id != $this->_newSpace->user->id) { $userSelf = ThreadClient::getInstance()->getMyThreadAndFlowInSpace($this->_newSpace->id, $this->_newUser->id); if(false == empty($userSelf)) { $response->lastPostList = DoctorPatientPostClient::getInstance()->getLastPosts4Flows(array_keys($userSelf)); } } //取intention $intentionList = array(); if(false == $this->_newUser->isNull()) { $intentionList = IntentionClient::getInstance()->queryThreadIntentions($this->_newUser->id, '', '', $this->_newSpace->id); } $response->out = array_merge($intentionList, $userSelf , $flowList); $response->flowList = $response->out; $this->getCommonData($request, $response, $userSelf + $flowList); }/*}}}*/
public function bookingProposalListOfPatient($request, $response) { /*{{{*/ $response->_my_template = '/intention/list/bookingproposallistofpatient.php'; $patient = DAL::get()->find('Patient', $request->patientId); $response->patient = $patient; $patientIds = DAL::get()->find_id_samePhoneOrSameIdcardOf('Patient', $patient); $ids = DAL::get()->find_id_by_servicedef_and_patientIds_and_status('Proposal', ServiceDef::TYPE_BOOKING, $patientIds); //分页 $response->nowPage = $request->getRequest('nowPage', 1); $pager = new XPager($response->nowPage, 20); $pageInfo = Pager::calcPageInfo(count($ids), $pager->nowPage, $pager->pageSize); $response->pageLink = PageNav::getNavLink(PageNav::getPageNavTemplate('/intention/bookingproposallistofpatient?patientId=' . $patient->id . '&nowPage='), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']); $ids = array_slice($ids, ($pager->nowPage - 1) * $pager->pageSize, $pager->pageSize, true); $proposals = DAL::get()->find('Proposal', $ids); krsort($proposals); $response->dtos = BookingDto::createOfProposals($proposals, BookingDto::QUERY_STATUS_ALL); }
public function getPageInfo($sql, $binds = array(), $counter = '*') { /*{{{*/ if ('' == $this->nowPage || '' == $this->pageSize) { return array('limit' => ''); } return Pager::calcPageInfo($this->getTotalBySql($sql, $counter, $binds), $this->nowPage, $this->pageSize); }
private function sendWhitoutSpace($request, $response) { /*{{{*/ $chooseOtherDoctor = $request->getRequest('chooseOtherDoctor', false); $presentId = $request->presentid; $flows = FlowClient::getInstance()->getFlowListByUser($this->user->id, array('status' => DoctorPatientRef::STATUS_INIT)); if (0 == count($flows)) { $response->canSend = false; return; } else { if ($chooseOtherDoctor = false && 1 == count($flows)) { $response->redirectUrl = array_pop($flows)->sendPresentUrl($presentId); return; } } $flowspostcnt = array(); foreach ($flows as $id => $flow) { if (false == $flow->space->isNull() && $flow->space->isDoctor()) { $flowspostcnt[$id] = $flow->postCount; } } $refsList = array(); arsort($flowspostcnt, SORT_NUMERIC); foreach ($flowspostcnt as $id => $cnt) { $refsList[] = $flows[$id]; } $response->chooseOtherDoctor = $chooseOtherDoctor; $response->presentId = $presentId; $nowPage = $request->getRequest('page', 1); $pageSize = self::SELECT_DOCTOR_NUM; $pageInfo = Pager::calcPageInfo(count($refsList), $nowPage, $pageSize); $response->nowPage = $pageInfo['nowpage']; $response->pages = $pageInfo['pages']; $total = $pageInfo['total']; $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace('/api/present/ajaxsendtomydoctor?presentid=' . $presentId . '&specified=false&chooseOtherDoctor=true&uname=' . $this->space->user->name . '&page=', 2, 3, 1, false), $pageInfo['nowpage'], $pageSize, $total); $response->refs = array_slice($refsList, ($nowPage - 1) * $pageSize, $pageSize); }
private function showPageInfo4ZhuanTiList($zhuanTiList,$request,$response) {/*{{{*/ $nowPage = $request->getRequest('page', 1); $pageSize = 50; $response->zhuanTiList = array_slice($zhuanTiList, ($nowPage-1)*$pageSize, $pageSize); $pageInfo = Pager::calcPageInfo(count($zhuanTiList), $nowPage, $pageSize); $response->pageLink = PageNav::getNavLink( PageNav::getPageNavTemplate('/paper/showcmstagtypelist?searchType='.$request->searchType.'&searchParam='.$request->searchParam.'&page='), $pageInfo['nowpage'],$pageInfo['pagesize'],$pageInfo['total']); }/*}}}*/
public function detail($request, $response) {/*{{{*/ $isPreview = $request->getRequest('ispreview', false); $response->isPreview = $isPreview; $thesis = DAL::get()->find('Thesis', $request->id); if ($thesis instanceof Thesis && ($thesis->isOnline() || $isPreview)) { if ($isPreview) { $thesis = $thesis->getPreviewObject(); } if ($thesis->needRedirect()) { $response->setRedirect($thesis->redirectLink); return false; } $response->csss = array( 'http://i1.hdfimg.com/www/cms/css/content_thesis.css?20140722', 'http://i1.hdfimg.com/www/cms/css/thesis.css?20140722' ); $thesisId = isset($thesis->id) ? $thesis->id : $thesis->thesisId; $doctorObjRefList = DAL::get()->find_all_by_objid_and_relateobjtype('CmsObjRef', $thesisId, CmsTagType::DOCTOR); $response->doctorObjRefList = $doctorObjRefList; // $doctorObjRef = $thesis->getDoctorObjRef(); // if (false == $doctorObjRef->isNull()) // { // $bindDoctor = DAL::get()->find('Doctor', $doctorObjRef->getRelateObj()->id); // if ($bindDoctor instanceof Doctor) // { // $response->bindDoctor = $bindDoctor; // $response->commentCnt = $bindDoctor->getCureThankLetterCount(); // $response->zhuanTis = ZhuanTiClient::getInstance()->getZhuanTiByDoctorId($bindDoctor->id, 10);; // } // } //分页 $nowPage = $request->getRequest('page', 1); $pageSize = 1; $contentArr = explode('######', $thesis->content); $count = count($contentArr); $nowPage = ($nowPage > $count) ? 1 : $nowPage; $response->content = $contentArr[$nowPage-1]; $disease = new NullEntity(); $diseaseObjRef = $thesis->getDiseaseObjRef(); if (false == $diseaseObjRef->isNull()) { $disease = $diseaseObjRef->getRelateObj(); } $flowList = array(); if ($disease instanceof Disease) { $this->getPhoneList($disease->id, $response); $flowList = RelationSearchClient::getInstance()->getFlowListFromRelevantSearch($disease->name, 8); $flowList = array_slice($flowList, 0, 8); } else { $diseaseIds_shuffle = self::$diseaseIds; shuffle($diseaseIds_shuffle); $this->getPhoneList(array_pop($diseaseIds_shuffle), $response); $flowList = FlowClient::getInstance()->getLatestFlowList(8); } //网上咨询 $response->flowList = $flowList; $response->disease = $disease; $pageInfo = Pager::calcPageInfo($count, $nowPage, $pageSize); $isPreviewFix = $isPreview?'ispreview=1&':''; $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("?{$isPreviewFix}page="),$pageInfo['nowpage'],$pageInfo['pagesize'],$pageInfo['total']); $response->nowPage = $pageInfo['nowpage']; $response->thesis = $thesis; $masterObject = $thesis->getMasterObjRef()->getLinkObject(); $response->title = $thesis->title.'_'.$masterObject->getTitle().'_好大夫在线'; //$response->keywords = ''; //$response->description = ''; $response->masterObject = $masterObject; // $thesisId = isset($thesis->id) ? $thesis->id : $thesis->thesisId; // $paperIds = DAL::get()->queryRelateIdByObjId('CmsObjRef', $thesisId); // if(false == empty($paperIds)) // { // $res = ThesisClient::getInstance()->queryThesisListByType(array_shift($paperIds), array('relateType' => CmsTagType::PAPER, 'status' => Thesis::STATUS_ONLINE)); // $relatedThesisList = array_shift($res); // $key = (isset($thesis->id)) ? 'id' : 'thesisId'; // $response->relatedThesisList = array_diff_key($relatedThesisList, array($thesis->$key => $relatedThesisList[$thesisId])); // } $relateDiseaseId = DAL::get()->queryDiseaseByThesis('thesis', $thesisId); $diseaseId = array_shift($relateDiseaseId); $paperIds = DAL::get()->queryRelateIdByObjIdAndDiseaseId('CmsObjRef', $diseaseId); $paperIds = array_slice($paperIds, 0, 10); $response->paperList = $paperList = DAL::get()->find('paper', $paperIds); $_count = 10 - count($paperIds); if ($_count > 0) { $res = ThesisClient::getInstance()->queryThesisListByType(array_shift($paperIds), array('relateType' => CmsTagType::PAPER, 'status' => Thesis::STATUS_ONLINE, 'limit' => $_count)); $relatedThesisList = array_shift($res); $key = (isset($thesis->id)) ? 'id' : 'thesisId'; if (isset($relatedThesisList) && $relatedThesisList) { $response->relatedThesisList = array_diff_key($relatedThesisList, array($thesis->$key => $relatedThesisList[$thesisId])); } $_thesisCount = count($relatedThesisList); if ($_count - $_thesisCount > 0) { $thesisIds = DAL::get()->queryThesisListByDisease('thesis', $diseaseId); foreach($thesisIds as $key => $value) { if ($value == $thesisId) { unset($thesisIds[$key]); } } $thesisList = DAL::get()->find('thesis', $thesisIds); $response->thesisList = array_slice($thesisList,0, $_count-$_thesisCount); } } //好文推荐 $this->getHaowenList($request, $response); //搜索 $response->searchWords = $this->getHotSearchWords(); return; } $this->_exit404(); }/*}}}*/
public function showDoctorWithdrawStatement($request, $response) {/*{{{*/ $userName = $request->getRequest('userName', ''); $settleordertype = $request->settleordertype?$request->settleordertype:SettleOrder::REMIT_ALL; $response->settleordertype = $settleordertype; $response->beginDate = $request->beginDate; $response->endDate = $request->endDate; $response->userName = $userName; if($userName) { $space = DAL::get()->find_by_userName('space', trim($userName)); if($space->isNull() == false) { $spaceId = $space->id; } else { $spaceUser = DAL::get()->find_by_name('User', $userName); if($spaceUser->isNull() == false) { $spaceAccount = DAL::get()->find_by_spaceid('SpaceAccount', $spaceUser->id); if($spaceAccount->isNull() == false) { $spaceId = $spaceAccount->spaceId; } else { $response->msg = '这个用户不是医生用户'; return ; } } else { $response->msg = '没有这个医生!'; return ; } } $nowPage = $request->page ? $request->page : 1; $pageSize = 1000; $settleOrders = DAL::get()->find_all_by_spaceid('SettleOrder', $spaceId); $settleOrders = array_reverse($settleOrders); $response->settleOrders = array_slice($settleOrders, ($nowPage-1)*$pageSize, $pageSize); $pageInfo = Pager::calcPageInfo(count($settleOrders), $nowPage, $pageSize); $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("showdoctorwithdrawstatement?userName=$userName&settleordertype=$settleordertype&page="),$pageInfo['nowpage'],$pageInfo['pagesize'],$pageInfo['total']); } }/*}}}*/
public function loadMoreCaseOrPhoneOpenedDoctor($request, $response) {/*{{{*/ $this->initialize($request, $response); //开通网上咨询的医生ids $params = array(); $params['hospitalFacultyId'] = $this->hospitalFaculty->id; $spaceList = SpaceClient::getInstance()->getCaseOpenedSpaceList($params); $spaceList = $spaceList['spaceList']; $caseDoctorIds = array(); foreach ($spaceList as $space) { if (true == $space->isCaseAndNewCaseOpen() && $space->user->allowAnswer() && 0 != $space->modulecase->allowNewMaxNumber) { $caseDoctorIds[] = $space->host->id; } } //开通电话咨询的医生ids $infos = DoctorClient::getInstance()->getDoctorListFor400Search(array(), $this->hospitalFaculty->hospital->province, $this->hospitalFaculty->faculty->name, $this->hospitalFaculty->hospital->commonName); $phoneDoctorIds = $infos['doctorids']; $caseOrPhoneDoctorIds = array_unique(array_merge($caseDoctorIds, $phoneDoctorIds)); $caseOrPhoneDoctorList = DAL::get()->find('doctor', $caseOrPhoneDoctorIds); XString::sortArray($caseOrPhoneDoctorList, 'rank'); $nowPage = $request->getRequest('p', 1); $response->resDoctorList = array_slice($caseOrPhoneDoctorList, ($nowPage-1)*(self::PAGESIZE_DOCTOR), self::PAGESIZE_DOCTOR); $pageInfo = Pager::calcPageInfo(count($caseOrPhoneDoctorList), $nowPage, self::PAGESIZE_DOCTOR); $response->nowPage = $nowPage; $response->pages = $pageInfo['pages']; $response->totalDoctorCnt = $pageInfo['total']; $response->openCaseCount = $pageInfo['total']; $response->loadUrl = $response->touchUrl.'/hospitalfaculty/loadmorecaseorphoneopeneddoctor?id='.$request->id.'&p='; }/*}}}*/
private function showPageInfo4ZhuanTiList($zhuanTiList,$request,$response) {/*{{{*/ $nowPage = $request->getRequest('page', 1); $pageSize = 20; $response->zhuanTiList = array_slice($zhuanTiList, ($nowPage-1)*$pageSize, $pageSize); $pageInfo = Pager::calcPageInfo(count($zhuanTiList), $nowPage, $pageSize); $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate('/jibing/zhuanti/'.$this->disease->key.'.htm?&page='), $pageInfo['nowpage'],$pageInfo['pagesize'],$pageInfo['total']); }/*}}}*/
public function loadMoreRelatedCaseList($request, $response) {/*{{{*/ $this->initialize($request, $response); $nowPage = $request->getRequest('p', 1); //疾病页2013版 $diseasePage = DAL::get()->find_by_disease('diseasepage', $this->disease->id); if($diseasePage instanceof DiseasePage && $diseasePage->isOnlineOrPreview()) { $res = $this->diseasePageCaseInfo(); } else { $res = RelationSearchClient::getInstance()->getFlowListFromRelevantSearch($this->disease->name, 200); } $relatedCaseRes = array(); foreach ($res as $flow) { if (false == $flow->isNull()) { $relatedCaseRes[] = $flow; } } $response->flowList = array_slice($relatedCaseRes, ($nowPage-1)*(self::PAGESIZE_LIST), self::PAGESIZE_LIST); $pageInfo = Pager::calcPageInfo(count($relatedCaseRes), $nowPage, self::PAGESIZE_LIST); $response->nowPage = $nowPage; $response->pages = $pageInfo['pages']; $response->loadUrl = $response->touchUrl.'/disease/loadmorerelatedcaselist?key='.$request->key.'&p='; }/*}}}*/
private function getPageInfo($nowPage, $allCount) { /*{{{*/ $nowPage = $nowPage && $nowPage > 0 ? $nowPage : 1; $allCount = $allCount && $allCount > 0 ? $allCount : 0; $pageSize = self::PAGESIZE; $pageInfo = Pager::calcPageInfo($allCount, $nowPage, $pageSize); return $pageInfo; }
private function getPagedUnFlows4Followup($space, $pageId, $pageSize) {/*{{{*/ $res = NfsClient::getInstance()->getSpaceUnreadCaseFlows($space->id, $pageId, $pageSize); $flowsList = $res['list']; $unThreadList = array(); if ($pageId == 1) //第一页才取收费 { $unPostThreadList = DAL::get()->find_all_spaceNotProcessList('proposal', $space, ServiceDef::TYPE_FLOW, array('isSpaceRead'=>0)); $unThreadList = $this->getRecommendCaseAndNewThread($unPostThreadList, $space->id, false); } $flowList = $this->getOldThreadLists($space->user->id, $flowsList); $allList = array_merge($unThreadList, $flowList); $pageInfo = Pager::calcPageInfo($res['pageInfo']['total'], $pageId, $pageSize); $this->pageInfo = array("nowpage" => $pageId, 'pages' => $pageInfo['pages'], 'total'=>$pageInfo['total'], 'pagesize' => $pageSize); return $allList; }/*}}}*/