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;
    }/*}}}*/
Пример #3
0
 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;
 }
Пример #8
0
 /**
  * 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;
 }
Пример #9
0
 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;
 }
Пример #11
0
    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']);
    }/*}}}*/
Пример #12
0
    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 
     );
 }/*}}}*/
Пример #14
0
 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);
     }
 }/*}}}*/