public function loadMoreItem($request, $response) {/*{{{*/ $nowPage = $request->getRequest('p', 1); $pageSize = 10; $telOwner = TelOwnerClient::getInstance()->getOwner($this->user); $cashAccount = $telOwner->relatedObject->getCashAccount(); $res = AccountClient::getInstance()->getAccountInfoList($cashAccount->id, PayAccount::TYPE_CASH, array('nowPage' => $nowPage, 'pageSize' => $pageSize)); $response->itemList = $res['accounts']; $response->nowPage = $nowPage; $response->pages= $res['pageInfo']['pages']; $response->loadUrl = $response->touchUrl.'/useraccount/loadmoreitem?p='; $response->itemCnt = $res['pageInfo']['total']; }/*}}}*/
public function getUserInfo4NewIndex($userId) {/*{{{*/ $doctorOwner = DAL::get()->find_by_userid('DoctorOwner', $userId); if($doctorOwner->isNull()) { $this->setErrorCode(819); return 0; } $infos = array(); $infos['userName'] = $doctorOwner->source->user->name; $infos['hostName'] = $doctorOwner->source->name; $infos['userRole'] = $this->getUserRole($doctorOwner->user); $infos['isFollowupOpened'] = 2; $infos['headImage'] = ($doctorOwner->isSpace()) ? $doctorOwner->source->getHeadImg4Modify() : $doctorOwner->source->getHeadImage(); $infos['bigHeadImage'] = ($doctorOwner->isSpace()) ? $doctorOwner->source->getHeadImg4Modify(2400) : $doctorOwner->source->getHeadImage(2400); if($doctorOwner->isSpace()) { $space = $doctorOwner->source; $infos['spaceId'] = $space->id; list($featAmount, $heartImgCnt) = ScoreClient::getInstance()->getHeartInfoById($space->id); $infos['featAmount'] = $featAmount; $infos['heartImgCnt'] = $this->getFlagCnt($heartImgCnt); $count = count(BookingClient::getInstance()->getOrderList4Doctor($space->id, self::STATUS_TODAY)); if(false == $space->isBookingOpened()) { $count = 0; } $infos['bookingCnt'] = $count; $telOwner = DAL::get()->find_by_relatedObject('telowner', $space->user); $needIllnessCnt = TelOrderClient::getInstance()->queryNeedIllnessTelOrderCnt('TelOrder', $telOwner->id); if(!PaymentDataBucket::isOpenPhone($space)) { $needIllnessCnt = 0; } $infos['needIllnessCnt'] = $needIllnessCnt; $waitTimeCnt = TelOrderClient::getInstance()->queryWaitTimeTelOrderCnt('TelOrder', $telOwner->id); $waitTelOrderCount = TelOrderClient::getInstance()->getLastNotExeTelOrderCnt($telOwner->id); $isShowFreeButton = MainDataBucket::isShowPhoneButton($space, $waitTimeCnt, $waitTelOrderCount); $infos['isShowFreeButton'] = $isShowFreeButton; $infos['isFollowupOpened'] = ($space->isConfirmed() && false == $space->isOpenFollowup()) ? 0 : 1; //患者报道和医生补贴 $infos['isOpenSubsidy'] = $space->isSignSubsidyOpen()?'1':'0'; $patientSignForToday = DAL::get()->querySubsidyCntByTimeSpan('SubsidyOrder', $space->id, XDateTime::now()->toShortString()); $patientSignForMonth = DAL::get()->querySubsidyCntByTimeSpan('SubsidyOrder', $space->id, XDateTime::now()->addDay(-29)->toShortString()); $subsidyAccountAmount = AccountClient::getInstance()->getSubsidyOrdersAmountInTimespan($space->id, XDateTime::now()->addDay(-29)->toShortString(), XDateTime::now()); $infos['patientSignForToday'] = $patientSignForToday; $infos['patientSignForMonth'] = $patientSignForMonth; $infos['subsidyAccountAmount'] = $subsidyAccountAmount; } $belongDoctors = DoctorClient::getInstance()->getDoctorList4spaceByNoCache($userId); if(empty($belongDoctors)) { if ($doctorOwner->isPreDoctor()) { $infos['hospital'][0]['hospitalName'] = $doctorOwner->source->hospitalName; $infos['hospital'][0]['hospitalFacultyName'] = $doctorOwner->source->facultyName; } else { $this->setErrorCode(840); return 0; } } else { $i = 0; foreach($belongDoctors as $doctor){ $infos['hospital'][$i]['hospitalName'] = $doctor->hospitalfaculty->hospital->name; $infos['hospital'][$i]['hospitalFacultyName'] = $doctor->hospitalfaculty->name; $i++; } } $this->content = $infos; }/*}}}*/
public function searchExchangeOrder($request, $response) { /*{{{*/ $nowPage = (int) $request->getRequest('p', 1); $pagelink = ''; $pageInfo = array(); $option = array(); $pageSize = 30; $beginTime = $request->beginTime ? XDateTime::valueOf($request->beginTime) : XDateTime::today(); $endTime = $request->endTime ? $request->endTime : XDateTime::today()->getDate(); $response->beginTime = $beginTime->toShortString(); $response->endTime = $request->endTime ? XDateTime::valueOf($request->endTime)->toShortString() : XDateTime::valueOf($endTime)->toShortString(); $keyword = $request->getRequest('keyword', ''); $response->keyword = $keyword; $scoreOrderList = array(); $moneyOrderList = array(); $presentOrderList = array(); $user = new NullEntity(); $searchType = $request->searchType; $response->searchType = $searchType; if ($keyword) { $user = DAL::get()->find_by_name('user', $keyword); if ($user instanceof User) { $option['userId'] = $user->id; } else { throw new BizException('用户不存在'); $option['userId'] = -1; } } $option['beginTime'] = $beginTime; $option['endTime'] = $endTime; //按充值查询 if ('rechange' == $searchType) { if ($keyword) { $userAccount = DAL::get()->find_by_userid('useraccount', $user->id); $option['accountId'] = $userAccount->cashAccountId; } $result = AccountClient::getInstance()->getMoneyOrderList($nowPage, $pageSize, $option); $response->moneyOrderList = $result['moneyOrderList']; $pageInfo = $result['pageInfo']; } else { if ('presentOrder' == $searchType) { if ($keyword) { if ($user->patients) { $option['patientId'] = array_keys($user->patients); } else { throw new BizException('没有患者信息'); } } $option['status'] = PresentOrder::STATUS_PAID_YES; $option['startTime'] = $beginTime; $option['nowPage'] = $nowPage; $option['pageSize'] = $pageSize; $option['notSpacePresentCate'] = true; $result = PresentClient::getInstance()->getPresentOrders($option); $response->presentOrderList = $result['presentOrderList']; $pageInfo = $result['pageInfo']; } else { if ('exchange' == $searchType) { $result = ScoreClient::getInstance()->getScoreOrderList($nowPage, $pageSize, $option); $response->scoreOrderList = $result['scoreOrderList']; $pageInfo = $result['pageInfo']; } } } $response->user = $user; if (false == empty($pageInfo)) { $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("/present/searchexchangeorder?showContent=1&keyword=" . $keyword . "&beginTime=" . $beginTime . "&endTime=" . $endTime . "&searchType=" . $searchType . "&p="), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']); } $response->pagelink = $pagelink; }
public function showFundStatement($request, $response) { /*{{{*/ $fundAccount = $this->space->getFoundAccount(); $params = array(); $params['nowPage'] = $request->page ? $request->page : 1; $params['pageSize'] = 20; $defaultStartTime = XDateTime::today()->toShortString(); $defaultEndTime = XDateTime::tomorrow()->toShortString(); $settleOrders = DAL::get()->find_all_by_spaceid('SettleOrder', $this->space->id); if (false == empty($settleOrders)) { $settleOrders = array_reverse($settleOrders); $defaultStartTime = $settleOrders[0]->ctime->toShortString(); } $spaceFundAttribute = $this->space->getFundAttribute(); if ($spaceFundAttribute->isNull() == false) { $response->spaceFundAttribute = $spaceFundAttribute; } $response->startTime = $params['startTime'] = $request->getRequest('startTime', $defaultStartTime); $response->endTime = $params['endTime'] = $request->getRequest('endTime', $defaultEndTime); $res = AccountClient::getInstance()->getPayAccountItemsOfFundAccount($fundAccount->id, $params); $response->payAccountItems = $res['payAccountItems']; $response->pagelink = PageNav::getNavLink(PageNav::getPageNavTemplateForSpace("showfundstatement?startTime={$response->startTime}&endTime={$response->endTime}&actionclass={$request->actionclass}&page="), $res['pageInfo']['nowpage'], $res['pageInfo']['pagesize'], $res['pageInfo']['total']); $response->actionClass = $request->actionclass; $response->fundAccountAmount = $this->space->getFoundAccount()->amount; }
private function _handleForMoneyOrder(MoneyOrder $order, PayAble $pay, $payType) {/*{{{*/ if($order->isInitStatus()) { $pl = AccountClient::getInstance()->addPayLog($pay->getOrderId(), $payType, Pay::$typeDescs[Pay::TYPE_MONEYORDER], $pay->getPayAmount(), $pay->data); AccountClient::getInstance()->reCharge($order); $pl = AccountClient::getInstance()->doPayLogVerifySuccess($pl); AccountClient::getInstance()->doPayLogCompleteSuccess($pl); $pay->result($order->successUrl()); } return parent::DIRECT_OUTPUT; }/*}}}*/
public function accountAmountLogList($request, $response) { /*{{{*/ $res = AccountClient::getInstance()->getAccountAmountLogList($request->getRequest('pageid', 1), 20); $url = $response->router->urlfor($response->controller . '/' . $response->action); $response->pageLink = PageNav::getNavLink(PageNav::getPageNavTemplate($url . '?pageid='), $res['pageInfo']['nowpage'], $res['pageInfo']['pagesize'], $res['pageInfo']['total']); $response->logList = $res['list']; }
/** * setSubsidySwitch * @author wangxiang 设置医生补贴开关 * @param mixed $request * @param mixed $response * @access public * @return void */ public function setSubsidySwitch($request, $response) { /*{{{*/ $spaceId = $request->spaceId; $space = DAL::get()->find('Space', $spaceId); DBC::requireTrue(false == $space->isNull(), '该医生没有开通个人空间,无法开启补贴'); DBC::requireTrue($space->isConfirmed(), '该医生没有认证,无法开通补贴'); $signinSwitch = $this->getSpacePatientSigninSwitch($space->id); $replySwitch = $this->getSpaceReplySwitch($space->id); AccountClient::getInstance()->getSubsidyAccount($space); if (false == $signinSwitch->isNull()) { $insid = $signinSwitch->inspectorid; $inspector = DAL::get()->find('inspector', $insid); $response->inspector = $inspector; } else { $signinSwitch = SubsidySwitchClient::getInstance()->createSwitch($space, SubsidySwitch::TYPE_SIGNIN_SWITCH); } if ($replySwitch->isNull()) { $replySwitch = SubsidySwitchClient::getInstance()->createSwitch($space, SubsidySwitch::TYPE_REPLY_SWITCH); } $response->switch = $signinSwitch; $response->replySwitch = $replySwitch; $response->space = $space; $response->signinSwitchId = $signinSwitch->id; $response->replySwitchId = $replySwitch->id; }
/** * showPatientSigninSubsidy * 医生个人空间展示老患者报到补贴收入信息 * @author wangxiang * @param mixed $request * @param mixed $response * @access private * @return void */ private function showPatientSigninSubsidy($request, $response) { /*{{{*/ $showSubsidyInfo = false; if ($this->isSpaceLogin()) { $space = $this->space; if ($space->isSignSubsidyOpen()) { $showSubsidyInfo = true; //近一个月补贴收入start $subsidyAccount = $space->getSubsidyAccount(); $startTime = XDateTime::now()->addDay(-29)->toShortString(); $endTime = XDateTime::now(); $monthAmount = AccountClient::getInstance()->getSubsidyOrdersAmountInTimespan($space->id, $startTime, $endTime); $response->monthAmount = number_format($monthAmount, 1); //今日报到人数start $startTime = XDateTime::now()->toShortString(); $todaySigninCnt = DAL::get()->querySubsidyCntByTimeSpan('SubsidyOrder', $space->id, $startTime); $response->todaySigninCnt = $todaySigninCnt; //近一个月的报到人数start $startTime = XDateTime::now()->addDay(-29)->toShortString(); $monthSigninCnt = DAL::get()->querySubsidyCntByTimeSpan('SubsidyOrder', $space->id, $startTime); $response->monthSigninCnt = $monthSigninCnt; $fromDate = XDateTime::now()->addDay(-29)->toShortString(); $toDate = XDateTime::tomorrow()->toShortString(); $response->fromDate = $fromDate; $response->toDate = $toDate; } } $response->showSubsidyInfo = $showSubsidyInfo; }
public function accountPatientList($request, $response) {/*{{{*/ $nowPage = $request->page?$request->page : 1; $userName = $request->userName; $startTime = $request->startTime; $endTime = $request->endTime; if($userName) { $user = DAL::get()->find_by_name('user', $userName,true); if($user->isNull()) { $response->msg = '没有这个用户'; return ; } $telOwner = TelOwnerClient::getInstance()->getOwner($user); if($telOwner->isNull()) { $response->msg = '这个用户没有财务明细'; return ; } $cashAccount = $telOwner->relatedObject->getCashAccount(); $out = AccountClient::getInstance()->getAccountList($cashAccount->id, PayAccount::TYPE_CASH, array('nowPage' => $nowPage, 'pageSize' => 20, 'startTime'=>$startTime, 'endTime'=>$endTime)); $accountList = $out['accounts']; $pagelink = PageNav::getNavLink(PageNav::getPageNavTemplate("accountpatientlist?userName=$userName&startTime=$startTime&endTime=$endTime&page="),$out['pageInfo']['nowpage'],$out['pageInfo']['pagesize'],$out['pageInfo']['total']); foreach($accountList as $key=>$account) { $account['paytrans'] = DAL::get()->find('paytrans', $account['id']); $accountList[$key] = $account; } $response->accountList = $accountList; $response->telOwner = $telOwner; $response->pagelink = $pagelink; $response->userName = $userName; $response->startTime = $startTime; $response->endTime = $endTime; } }/*}}}*/
public function ajaxRemitBankList($request, $response) { /*{{{*/ $bankType = $request->bankType; $remitList = AccountClient::getInstance()->getRemit4OrderList(Remit::TYPE_UNCLAIMED, $bankType); $res = array(); foreach ($remitList as $remit) { if (false == $remit->isNull()) { $res[$remit->id] = XString::convertToUnicode($remit->getBriefInfo()); } } echo json_encode($res); exit; }
public function showPayLogList($request, $response) {/*{{{*/ $beginTime = $request->begintime; $endTime = $request->endtime; $selectName = $request->selectname; $response->beginTime = $beginTime; $response->endTime = $endTime; $response->selectName = $selectName; $sn = $request->sn; $tradeNo = $request->trade_no; $pageId = $request->getRequest('pageid', 1); list ($paylogList, $pageInfo) = AccountClient::getInstance()->getPayLogList($pageId, 20, $sn, $tradeNo, $beginTime, $endTime, $selectName); $response->paylogList = $paylogList; $url = $response->router->urlfor('account/showpayloglist')."?begintime={$beginTime}&endtime={$endTime}&selectname={$selectName}&pageid="; $response->pageLink = PageNav::getNavLink(PageNav::getPageNavTemplate("$url"), $pageInfo['nowpage'], $pageInfo['pagesize'], $pageInfo['total']); }/*}}}*/
private function _checkPayable(PayAble $payable,$payType) {/*{{{*/ $this->payable = $payable; $this->payType = $payType; try{ $this->paylog = AccountClient::getInstance()->addPayLog($payable->getOrderId(), $this->payType, Pay::$typeDescs[Pay::TYPE_DEPOSITEORDER], $payable->getPayAmount(), $payable->data); }catch(Exception $ex){ } if(false == $payable->isValid()) { echo '无效访问'; exit; } try{ AccountClient::getInstance()->doPayLogVerifySuccess($this->paylog); }catch(Exception $ex) {} $this->depositeOrder = DAL::get()->find('DepositeOrder', $payable->getOrderId(), true); if($this->depositeOrder->isNull()) { echo "充值记录[".$payable->getOrderId()."]不存在"; exit; } if($payable instanceof QPayCardConnector && $payable->getPayAmount() > 0 && (false == $this->equals($payable->getPayAmount(),$this->depositeOrder->amount))) { $this->depositeOrder = OrderClient::getInstance()->modifyDepositeOrderAmount($this->depositeOrder->id, $payable->getPayAmount()); } else if(false == $payable instanceof QPayCardConnector && (false == $this->equals($payable->getPayAmount(),$this->depositeOrder->amount))) { echo "充值记录[".$payable->getOrderId()."]金额有误"; exit; } }/*}}}*/
private function getShowContractListOfType($contractType, $contractStatus = array(Contract::STATUS_VALID, Contract::STATUS_INVALID)) {/*{{{*/ return AccountClient::getInstance()->getContractListOfOwnerIdAndTypeAndStatuses( $this->_newSpace->user->getTelOwner()->id, $contractType, $contractStatus ); }/*}}}*/
public function myScore($request,$response) {/*{{{*/ $account = AccountClient::getInstance()->getUserAccount($this->user, PayAccount::TYPE_CASH); $response->overage = $account->amount; $response->from = $request->from; $response->orderId = $request->orderId; $response->i2m = $request->i2m; //integral 2 money $response->price = false; $response->flow = new NullEntity; if($request->orderId) { $presentOrder = DAL::get()->find('presentorder', $request->orderId); $response->price = $presentOrder->present->price; $response->flow = DAL::get()->find_by_patientid_and_spaceid('doctorpatientref', $presentOrder->patient->id, $presentOrder->space->id); } }/*}}}*/