public function newPost($request, $response)
 {
     /*{{{*/
     $verifyOk = Captcha::verify($request->verifyStr, XIpLocation::getIp(), 'article', $request->article_id, $request->token);
     DBC::requireTrue($verifyOk, "您输入的验证码有误!");
     //禁用词检查
     $title = $request->title;
     $result = DoctorClient::getInstance()->getProfanityCheck($title);
     DBC::requireFalse($result['CODE'] < 0, "文章 评论添加失败");
     DBC::requireFalse($result['CODE'] == 2, "文章 评论添加成功");
     $title = $result['CONTENT'];
     $content = htmlspecialchars($request->getRequest('content'), ENT_COMPAT | ENT_HTML401, 'ISO-8859-1');
     $result = DoctorClient::getInstance()->getProfanityCheck($content);
     DBC::requireFalse($result['CODE'] < 0, "文章 评论添加失败");
     DBC::requireFalse($result['CODE'] == 2, "文章 评论添加成功");
     $content = $result['CONTENT'];
     $article = DAL::get()->find('article', $request->article_id);
     $feilds = array();
     $feilds['ip'] = XIpLocation::getIp();
     $feilds['ipLocation'] = XIpLocation::getLocationArea();
     $userId = $this->user->isNull() == false ? $this->user->id : '';
     $comment = ArticleClient::getInstance()->addComment($article, $userId, $title, $content, $feilds);
     squid::clean($article->getUrl(), true);
     $this->message('您发表的评论已经提交,待网站审核通过后即可展示。', $response);
 }
Ejemplo n.º 2
0
    public function detail($request, $response)
    {/*{{{*/
		$articleId = intval($request->getRequest('article_id', 0));
		$article = DAL::get()->find('article', $articleId);
        if($article->isNull())
        {
            $this->_exit404();
        }
        DBC::requireFalse($article->isDelete(), "文章已经被删除了!");
        DBC::requireFalse($article->isShield(), "文章正在审核中!");
        if ($article->isAuditing())
        {
            $result = $this->filterArticle($article);
            if (false == empty($result['title']) || false == empty($result['content']))
            {
                DBC::requireFalse(true, "文章正在审核中!");
            }
        }
        $isShare = $request->getRequest('isShare', '');
        //分享文章阅读量统计
        if(false == empty($isShare))
        {
            HitClient::getInstance()->increaseArticleHitsForShare($article->id);
        }
        $response->article = $article;
        $response->topTitle = XString::truncate($article->title, 18);
        $response->title = $article->title."_好大夫在线";

        $articleAttachmentRef = new NullEntity();
        if ($article->hasDocAttachment())
        {
            $articleAttachmentRef = ArticleClient::getInstance()->getValidAttachmentRef($article->id);
        }
        $response->articleAttachmentRef = $articleAttachmentRef;
    }/*}}}*/
 public function before($context)
 {
     parent::before($context);
     $mark = DAL::get()->find('flowproposalmark', $context->request->markId);
     DBC::requireFalse($mark->isNull(), '无效的标记');
     $inspectNames = array($mark->inspector->user->name, 'lihao120', 'sunnysmell', 'lyly006', 'pilack');
     $context->request->validAccess = in_array($context->response->curInspector->user->name, $inspectNames);
 }
 public function before($context)
 {
     /*{{{*/
     parent::before($context);
     $userInfo = $context->request->getCookie('userinfo');
     $auditor = DAL::get()->find_by_userid('auditor', $userInfo['id']);
     $followupAuditor = DAL::get()->find_by_auditorid_and_deleted('FollowupAuditor', $auditor->id, FollowupAuditor::DELETED_NO);
     DBC::requireFalse($followupAuditor->isNull(), '没有权限, 不是随访审核员');
     $context->response->followupAuditor = $followupAuditor;
     $context->response->auditor = $auditor;
 }
	public function confirmToVisit($request, $response)
	{/*{{{*/
		$orderId = $request->id;
		$order = DAL::get()->find('BookingOrder', $orderId);
		//患者自己确认去就诊相当于患者电话确认
        DBC::requireTrue(in_array($order->status, array(BookingOrder::STATUS_CONFIRM)), '当前状态不能领取加号凭证');

		$now = XDateTime::now("Y-m-d H:i:s");
		$before2Schedule = $order->schedule->addDay(-2)->setHour("20")->setMinute("00");
        DBC::requireFalse($now < $before2Schedule, '当前状态不能领取加号凭证');

		BookingClient::getInstance()->patientConfirmOrder($order->user,$orderId);
		$response->order = $order;
	}/*}}}*/
Ejemplo n.º 6
0
    public function onlineBankPay($request,$response)
    {
        $bankid = $request->paycard;
        $spaceid = $request->spaceid;
        $productid = $request->productid; 
        $fuProduct = DAL::get()->find('FollowupProduct', $productid);
        DBC::requireFalse($fuProduct->isNull(), '无效的随访商品');
        $space = DAL::get()->find('space', $spaceid);
        DBC::requireFalse($space->isNull(), '无效的随访space');
        $realPrice = 0;//$fuProduct->price;
        if($fuProduct->isNoPriceProduct())
        {
            $realPrice = $request->price;
            DBC::requireTrue((int)$realPrice > 0, '无效的续费金额');
        }
        $order = FollowupClient::getInstance()->getFollowupOrder($this->user->id, $productid, $spaceid, $realPrice);
        DBC::requireFalse($order->isNull(), '无效的订单');

        $binds = array();
        $binds['payType'] = FollowupOrder::PAYTYPE_ALIPAY; 
        $form = '';
        if ($bankid == 'alipay')
        {
            $form = $this->getAlipayForm4FollowupOrder($order);
            $binds['payType'] = FollowupOrder::PAYTYPE_ALIPAY; 
        }
		else if($bankid == '00')//快钱
        {
            $form = $this->getQpayForm4FollowupOrder($order, $bankid);
            $binds['payType'] = FollowupOrder::BANK_NAME_ONLLINE; //设置订单状态为网银支付
        }
        else//网银(支付宝纯网关)
        {
            $callbackUrl = BeanFinder::get('configs')->alipay_gateway_callback_url;
            $frontUrl = BeanFinder::get('configs')->alipay_gateway_callback_returnurl;
            $price = $order->price;//原价
            //dodo::zhb 创建充值单
            $depositeOrder = OrderClient::getInstance()->createDepositeOrder($this->user, $price, 
                DepositeOrder::RECHARGE_TYPE_ALIPAY, array($order)); 
            $description = '';
            $form = GatewayAlipay::getInstance()->getPayUrl($depositeOrder->id, Pay::TYPE_FOLLOWUPORDER, $price, $callbackUrl, $order->product->title, $order->product->title, $frontUrl, $bankid);
            $binds['payType'] = FollowupOrder::PAYTYPE_ALIPAY; 
        }

        $response->form = $form;
        $response->orderId = $order->id;
        FollowupClient::getInstance()->updateFollowupOrder($order->id,$binds);
        unset($binds);
    }
Ejemplo n.º 7
0
 public function addAdwordPost($request, $response)
 {
     /*{{{*/
     $vars = $request->vars;
     $template = $request->template;
     $adObjectList = $this->getAdObjectList($request, $response);
     DBC::requireFalse(empty($adObjectList), "页面和位置不对应,请重新编辑");
     DBC::requireTrue($vars['name'], "name不能为空");
     DBC::requireTrue($vars['htmlContent'], "BAIDU广告不能为空");
     $startTime = $vars['startTime'] . " " . $vars['startTimeHour'] . ":" . $vars['startTimeMinute'] . ":00";
     $endTime = $vars['endTime'] . " " . $vars['endTimeHour'] . ":" . $vars['endTimeMinute'] . ":00";
     $startTime = XDateTime::valueof($startTime);
     $endTime = XDateTime::valueof($endTime);
     $adstuffId = AdWordClient::getInstance()->addAd($vars['name'], $vars['htmlContent'], $startTime, $endTime, $adObjectList);
     $this->cleanCacheUrls($adstuffId);
     $response->setRedirect($response->router->urlfor("adword/{$template}", array('type' => 'vaild', 'msg' => '增加成功')));
 }
 public function updatePost($request, $response)
 {
     $id = $request->id;
     if (false == $id) {
         $userId = $request->userId;
         $content = $request->getRequest('content');
         $source = $request->source;
         $id = UserClient::getInstance()->addUserAdvice($source, $content, $userId);
     } else {
         $response->userAdvice = DAL::get()->find('UserAdvice', $id);
         DBC::requireFalse($response->userAdvice->isNull(), '空对象');
         $vars['content'] = $request->getRequest('content');
         $vars['source'] = $request->source;
         $admin = UserClient::getInstance()->getCurrentUser();
         UserClient::getInstance()->modifyUserAdvice($id, $vars, $admin);
     }
     $response->setRedirect('/useradvice/edit?id=' . $id . '&msg=' . urlencode('操作成功'));
 }
Ejemplo n.º 9
0
 public function createConf($request, $response)
 {/*{{{*/
     $orderid = $request->sId;
     $curOwner = $this->currentOwner;
     $adminTelephone = DAL::get()->find_by_ownerid('AdminTelephone',$curOwner->id);
     $order = DAL::get()->find('telorder', $orderid, true);
     $executer = $order->executer;
     DBC::requireFalse($executer->isNull(), '会议室里没有医生');
     $phones = array($adminTelephone->telselected, 
         $order->patient->getPatientExt()->phone1, 
         $order->patient->getPatientExt()->phone2,
         $executer->getSpaceExt()->phone1, 
         $executer->getSpaceExt()->phone2, 
         $executer->getSpaceExt()->phone3);
     $admin = UserClient::getInstance()->getCurrentUser();
     DBC::requireTrue($admin instanceof User ,'请先登录吧~');
     $teleconfId = MeetingClient::getInstance()->createMeeting($order->id, $phones, $admin->id, $admin->name, $order->getMeetingDuration());
     $response->setRedirect('/paymentfront/telorder/orderexecutenew?orderid='. $orderid);
 }/*}}}*/
Ejemplo n.º 10
0
    public function __construct($request, $response) 
    {/*{{{*/
        parent::__construct($request, $response);

        $userId = UserClient::getInstance()->getCheckedSeed('id');      
        $this->curUser = new NullEntity();
        $this->currentOwner = new NullEntity();
        if ($userId)
        {
            $this->curUser = DAL::get()->find('user', $userId);
    	    DBC::requireFalse($this->curUser->isNull(),"没有这个用户");
            if (false == $this->curUser->isNull())
            {
                $this->currentOwner = TelOwnerClient::getInstance()->createOwner($this->curUser);
            }
        }
        $response->curUser = $this->curUser;
        $response->currentOwner = $this->currentOwner;

    }/*}}}*/
Ejemplo n.º 11
0
 public function edit($request, $response)
 {
     /*{{{*/
     $args = array();
     foreach (array('id', 'name', 'note', 'cateIds', 'leaderId', 'enableCaseGroup') as $param) {
         $args[$param] = $request->{$param};
     }
     DBC::requireFalse(0 == $args['leaderId'], '必须要选中一名组长');
     if (false == is_array($args['cateIds'])) {
         $args['cateIds'] = array();
     }
     if ($args['id']) {
         $id = AuditorClient::getInstance()->updateGroup($this->auditor, $args);
     } else {
         $leader = DAL::get()->find('auditor', $args['leaderId']);
         $args['id'] = AuditorClient::getInstance()->addGroup($this->auditor, $args['name'], $args['cateIds'], $leader, $args['note'], $args['enableCaseGroup']);
     }
     $this->genJS();
     $url = $response->router->urlfor('group/show', array('id' => $args['id']));
     $response->setRedirect($url);
 }
 public function addOrModifyRemitApplication($request, $response)
 {
     /*{{{*/
     $oldRemark = "";
     if ($request->telRemitAppId) {
         $this->execute($request->telRemitAppId, TelRemitApplication::STATUS_CANCEL, "取消认领记录");
         $oldTelRemitApp = DAL::get()->find('telremitapplication', $request->telRemitAppId);
         $oldRemark = $oldTelRemitApp->remark;
     }
     //$accountUser = DAL::get()->find('user',$request->accountUserId);
     //$accountPatient = DAL::get()->find('patient',$request->accountPatientId);
     $remitHour = $request->remitHour != "" ? $request->remitHour : 0;
     $remitMinute = $request->remitMinute != "" ? $request->remitMinute : 0;
     DBC::requireFalse($remitHour > 24 || $remitMinute > 60, '时间格式不对');
     $dateInfos = explode('-', $request->remitTime);
     $remitTime = mktime($remitHour, $remitMinute, 0, $dateInfos[1], $dateInfos[2], $dateInfos[0]);
     $remitTime = XDateTime::valueOfTime($remitTime);
     $params = array('accountUserName' => $request->userName, 'accountPatientName' => $request->patientName, 'patientMobile' => $request->patientMobile, 'remitProvince' => $request->remitProvince, 'remitCity' => $request->remitCity, 'remitBank' => $request->remitBank, 'remitAmount' => $request->remitAmount, 'remitUserName' => $request->remitUserName, 'remitChannel' => $request->remitChannel, 'remitTime' => $remitTime, 'collectAccount' => $request->collectAccount, 'remitAccount' => $request->remitAccount, 'remark' => $oldRemark);
     $newTelRemitAppId = TelRemitApplicationClient::getInstance()->addTelRemitApplication($this->curInspector->user, TelRemitApplication::TYPE_CLAIM_MONEY, $params);
     if ($request->remark) {
         TelRemitApplicationClient::getInstance()->addRemark($newTelRemitAppId, $this->curInspector->user, $request->remark);
     }
     $response->setRedirect($response->router->urlfor('comprehensivetask/remitapplicationlist', array('applicationStatus' => TelRemitApplication::STATUS_UN_CLAIM)));
 }
 public function update($request, $response)
 {
     $id = $request->id;
     $deleted = $request->deleted;
     $post = null;
     $ticket = DAL::get()->find('ticket', $request->ticketid);
     if ($ticket->isNull()) {
         if ($deleted) {
             $post = new TrashDoctorCommentPost($id);
         } else {
             $post = new DoctorCommentPost($id);
         }
     } else {
         if (false == $ticket->isWaiting()) {
             echo '当前工单已经审核完了';
             exit;
         }
         $post = $ticket->getInspectSource();
     }
     $response->commentPost = $post;
     $response->ticket = $ticket;
     DBC::requireFalse($response->commentPost->isNull(), '修改目标为空');
     $response->title = '点评回帖编辑';
 }
Ejemplo n.º 14
0
 public function evaluation2Customer($request, $response)
 {
     /*{{{*/
     $customerId = $request->customerid;
     $followupCustomer = DAL::get()->find('FollowupCustomer', $customerId);
     DBC::requireFalse($followupCustomer->isNull(), '没找到改销售患者,请核对!');
     $response->followupCustomer = $followupCustomer;
     $followupCustomerEvealuation = DAL::get()->find_by_customerId('FollowupCustomerEvaluation', $customerId);
     if (false == $followupCustomerEvealuation->isNull()) {
         $response->followupCustomerEvealuation = $followupCustomerEvealuation;
     }
 }
Ejemplo n.º 15
0
 private function ajaxSetUpdateSession($request, $response)
 {/*{{{*/
     if (!session_id())
     {
         session_start();
     }
     $intentionInfos = $request->intentionInfos;
     $params = array();
     foreach ($intentionInfos as $key => $intentionInfo)
     {
         foreach ($intentionInfo as $type => $value)
         {
            DBC::requireFalse($type == 'diseaseInfos' && $value['diseaseName'] == "", "疾病信息不能为空");
            $_SESSION['askUpdateMemory'][$request->intentionid][$type][$key] = XString::convertArrayToGbk($value);
         }
     }
 }/*}}}*/
Ejemplo n.º 16
0
 /**
  * @brief 编辑最后一条post
  * @author lhl
  * @version branches/v2.14.23
  * @date 2013-07-25
  */
 public function updatePost($request, $response)
 {
     /*{{{*/
     $ref = DAL::get()->find('DoctorPatientRef', $request->refid);
     $editPostType = $request->editposttype;
     if ('Post' == $editPostType) {
         $editPost = DAL::get()->find('Post', $request->editpostid);
     } else {
         $editPost = DAL::get()->find('DoctorPatientPost', $request->editpostid);
     }
     $relateEntity = $ref;
     if ($ref->isNull() || false == in_array($this->user->id, array($ref->user->id, $ref->space->user->id))) {
         header('Location: ' . $this->space->url);
         return;
     }
     // 如果还有继续能回复post的就打开post回复开关
     if ($ref->isClosePost()) {
         DoctorPatientPostClient::getInstance()->switchPatientPostCan($this->user->id, $ref->id);
     }
     $option = array();
     $attachmentIds = $request->attachmentIds != null ? $request->attachmentIds : '';
     $attachmentArr = explode(',', $attachmentIds);
     $option['attachmentIds'] = $attachmentArr;
     if ($ref->space->user->id == $this->user->id) {
         $content = $ref->space->name . "大夫和您有新对话<a href='" . $ref->url . "' target='_blank'>点击查看详情</a>";
         $title = $ref->space->name . "大夫和您有新对话";
         StationLetterClient::getInstance()->sendMsg(Message::AdminUserId, $ref->user->id, $title, $content);
     }
     if ($editPost->isSpaceReply()) {
         $postContent = $request->getUnSafeData('content');
     } else {
         $postContent = $request->content;
     }
     if (($postContent == '请填写咨询内容...' || $postContent == '') && $attachmentIds != '') {
         $postContent = '有新资料上传';
     }
     $post = DoctorPatientPostClient::getInstance()->updateDoctorPatientPost($editPost->id, array('content' => $postContent, 'attachmentIds' => $attachmentArr));
     if (false == $post->isNull() && $ref->user->id == $this->user->id) {
         //管理员给患者的提示信息失效
         PatientSigninClient::getInstance()->disablePatientNotice($ref->id);
     }
     DBC::requireFalse($post->isNull(), '系统繁忙,请稍后重试');
     $response->setRedirect($ref->url . "#reply");
 }
Ejemplo n.º 17
0
    public function confirmTime($request, $response)
    {/*{{{*/
        $fromHour = ($request->fromHour != "")?$request->fromHour:0;
        $fromMinute = ($request->fromMinute != "")?$request->fromMinute:0;
    	DBC::requireFalse($fromHour > 24 || $fromMinute > 60, '时间格式不对');
        $dateInfos = explode('-', $request->appointmentDate);
        $fromTime = mktime($fromHour, $fromMinute, 0, $dateInfos[1], $dateInfos[2], $dateInfos[0]);
        $fromTime = XDateTime::valueOfTime($fromTime);
        $isSendSms = ($request->isSendConfirmTime != "") ? $request->isSendConfirmTime : 0;

        //时间段超过数量,不允许预约
        $overLoadConfirmTimeInfos = DAL::get()->queryOverLoadConfirmTimeByCnt('TelOrder', 100);
        if(false == empty($overLoadConfirmTimeInfos) && 
            ( isset($overLoadConfirmTimeInfos[$fromTime->toString()])
            || isset($overLoadConfirmTimeInfos[$fromTime->addMinute(-5)->toString()])
            || isset($overLoadConfirmTimeInfos[$fromTime->addMinute(5)->toString()]) ))
        {
            echo 'false';
            return parent::DIRECT_OUTPUT;
        }

        TelOrderClient::getInstance()->confirmTime($this->curUser, $request->orderId, $fromTime, array('isSendSms' => $isSendSms, 'caseTitle'=>$request->caseTitle));
       //关闭任务,添加备注,添加日志 
        $taskList = DAL::get()->find_all_by_telorderid_and_tasktype('TelOrderTask', $request->orderId, TelOrderTask::TYPE_RESERVE_DEAL_ORDER); 
        foreach($taskList as $task)
        {
            if($task->isFinished())
            { 
                continue;
            }
            $taskId = $task->id;
            TelOrderTaskClient::getInstance()->executeTask($taskId, $this->curUser->id, TelOrderTask::STATUS_FINISHED);
            TelOrderRemarkClient::getInstance()->createOrderRemark($this->curUser, $task->spaceId, $task->id, TelOrderRemark::TYPE_SET_EXECUTETIME,"确认咨询时间: " . $fromTime->toStringByFormat('Y-m-d H:i'));
        }
        //重新约时间时,关闭已经有的空会议室
        $conf = phoneConferenceClient::getInstance()->getInitPhoneConf($request->orderId);
        if(false == $conf->isNull() && $conf->isConfInit())
        {
            PhoneConferenceClient::getInstance()->dismissConsultConf($conf);
        }

        echo "ok";
        return parent::DIRECT_OUTPUT;
    }/*}}}*/
Ejemplo n.º 18
0
    public function beforeSignin($request, $response)
    {/*{{{*/
         $openid = $request->openid;
         $weixUser = DAL::get()->find_by_openid('WeixUser', $openid);
         DBC::requireFalse($weixUser->isNull(), '绑定的微信用户没有了!');
         $userId = $weixUser->userId;
         $type = PatientSignin::TYPE_WEIXIN;
         $patientSigninCnt = DAL::get()->find_cnt_by_condition('patientsignin',"userid={$userId} and type={$type} and (attachmentids<>'' or treatment<>'') and status <> ".PatientSignin::STATUS_REFUSED);
         $patientSignList = DAL::get()->find_all_WeiXinSign_by_User('patientsignin', $userId, 0, 100);//limit要多些
         $scanSpaceCnt = DAL::get()->queryScanCountByOpenId('WeixPostData',$openid);
         if(empty($scanSpaceCnt))
         {
             //直接关注好大夫
             $url='http://' . URL_PREFIX . 'm.haodf.com/touch/weixin/help';
             $response->setRedirect($url);
             return parent::DIRECT_OUTPUT;
         }
         elseif($scanSpaceCnt > $patientSigninCnt)
         {
             //有未报道的医生
             $response->tmp = 0;
             $spaceIds = DAL::get()->queryLastScanSpaceIdByOpenId('WeixDoctorQrcodeScene', $openid, 100);
             $signedSpaces = DAL::get()->find_all_by_condition('patientsignin',"userid={$userId} and type={$type} and (attachmentids<>'' or treatment<>'') and status <> ".PatientSignin::STATUS_REFUSED." and spaceid in (:spaceid)", array(":spaceid" => $spaceIds));

             $signedSpaceIds = array();
             foreach($signedSpaces as $s)
             {
                $signedSpaceIds[] = $s->space->id;   
             }
             foreach($spaceIds as $value)
             {
                 if(false == in_array($value, $signedSpaceIds))
                 {
                     $spaceId = $value;
                     break; 
                 }
             }
             if(false == empty($spaceId))
             {
                 $url = $response->router->urlfor('weixin/weixinsetredirect',  array('openid'=>$weixUser->openid, 'spaceId'=>$spaceId));
                 $response->setRedirect($url);
                 return parent::DIRECT_OUTPUT;
             }
         }
         else
         {
             $response->url = "http://" . URL_PREFIX . "m.haodf.com/touch/weixin/mydoctor?userid={$userId}&openid=$openid";
             $response->doctorCnt = count($patientSignList);
             $response->tmp = 2;
         }
    }/*}}}*/
Ejemplo n.º 19
0
 public function flowMarkProposalDetail($request, $response)
 {
     /*{{{*/
     $flowMark = DAL::get()->mustFind('flowproposalmark', $request->markId);
     DBC::requireFalse($flowMark->isNull(), '未曾标记过方案质量');
     $flow = $flowMark->doctorPatientRef;
     if (false == $request->validAccess) {
         $response->setRedirect($response->router->urlfor('nfsaudit/notalk', array('refId' => $flow->id)));
         return;
     }
     $request->refId = $flow->id;
     $this->flowAndFollowUpMessage($request, $response);
     $response->flowMark = $flowMark;
     $response->msg = $request->msg;
     $response->totalDisplayUrl = 'flowmarkproposaldetail?markId=' . $flowMark->id . '&page=1#aa10';
 }
Ejemplo n.º 20
0
 /**
  * 使用方法和find一样,只在返回值做了dbc检查,要求必须返回实体而不能是空实体。
  * 这样可以避免在find后,还要再判断isNull()。如果是数组的话,就要求每一个id都要有对应的实体返回。
  * 
  * @param mixed $entityType 
  * @param mixed $ids array or int 支持批量或者单个
  * @param boolean $nocache 
  * @access public
  * @return mixed array or int
  */
 public function mustFind($entityType, $ids, $nocache = false) 
 {/*{{{*/
     $results = $this->find($entityType, $ids, $nocache);
     if (is_array($results)) {
         foreach ($results as $result)
             DBC::requireFalse($result->isNull(), $entityType.'不能为空');
     } else {
         DBC::requireFalse($results->isNull(), $entityType.'不能为空');
     }
     return $results;
 }/*}}}*/
Ejemplo n.º 21
0
 public function orderinfo($request, $response)
 {
     /*{{{*/
     $options['column'] = $request->column;
     $options['id'] = $request->id;
     $options['status'] = $request->status;
     $options['startTime'] = $request->startTime;
     $options['endTime'] = $request->endTime;
     $options['spaceId'] = $request->spaceId;
     $options['isSearchSpace'] = $request->isSearchSpace;
     if ($request->patientName) {
         $user = DAL::get()->find_by_fld_UserName('User', $request->patientName);
         DBC::requireFalse($user->isNull(), '没有查询到该患者');
     }
     $options['userId'] = isset($user) ? $user->id : '';
     $options['notSpacePresentCate'] = true;
     $res = PresentClient::getInstance()->getPresentOrders($options);
     $response->orders = $res['presentOrderList'];
 }
Ejemplo n.º 22
0
 /** 分享文章**/
 public function share2group($request, $response)
 {
     /*{{{*/
     DBC::requireFalse($this->user->isNull(), '没有登录!');
     /** 文章详细 */
     $articleId = $request->articleid;
     $article = DAL::get()->find('article', $articleId);
     if ($article->isDelete()) {
         $this->message('文章已经被删除了!', $response, array('url' => $this->space->getUrl()));
     }
     $response->article = $article;
     $response->articleId = $articleId;
     $boardId = $request->boardid;
     $ReBoard = new NullEntity();
     if (false == empty($boardId)) {
         $ReBoard = DAL::get()->find('ReBoard', $boardId);
         if ($ReBoard->isNull() || $ReBoard->regroups->spaceid != $this->space->id) {
             $this->message('没有该小组!', $response, array('url' => $this->space->getPatientIndexUrl()));
             return false;
         }
         $member = ForumClient::getInstance()->getMemberByUserIdAndGroupId($this->user->id, $ReBoard->regroups->id);
         DBC::requireFalse(false == $member->isNull() && $member->isForbiddened(), '您的发言没有成功,可能是已被禁止发言!服务电话:' . HdfPhoneNumber::PHONE_FENZHEN);
     } else {
         if ($this->user->id == $this->space->id) {
             $userGroups = $groups = ForumClient::getInstance()->getAllGroupsBySpace($this->space->id);
         } else {
             $userGroups = ForumClient::getInstance()->getGroupByUserId($this->user->id, $this->space->id);
         }
         $response->userGroupList = $userGroups['list'];
     }
     $response->boardId = $boardId;
     $response->ReBoard = $ReBoard;
     $response->title = '文章分享到患友会';
 }
 public function dispatch($request, $response)
 {
     /*{{{*/
     //当网速慢时,防止医生同一个问题领两次
     $proposal = DAL::get()->find('proposal', $request->id);
     $space = $this->space;
     DBC::requireFalse($proposal->isNull(), '没有找到相关咨询');
     DBC::requireFalse($space->isNull(), '没有找到相关空间');
     if ($proposal->hasPickedUp()) {
         $response->setRedirect($proposal->getUrl4Space() . '?from_pool=1');
     } else {
         ProposalClient::getInstance()->pickupBySpace($space, $proposal);
         $proposal = DAL::get()->find('proposal', $request->id, true);
         $response->setRedirect($proposal->getUrl4Space() . '?from_pool=1');
     }
 }
Ejemplo n.º 24
0
 private function doConfirmAction4Leader($request, $response)
 {
     /*{{{*/
     $ticketIds = $request->ticketids;
     DBC::requireFalse(empty($ticketIds), '没有选择任务');
     $group = InspectGroup::find($request->groupid);
     DBC::requireTrue($this->curInspector->isTaskLeader($group), '不是当前组的组长或者管理员,不允许操作');
 }
Ejemplo n.º 25
0
 /**
  * addOrder 
  * 
  * @param mixed $request 
  * @param mixed $response 
  * @author mq <*****@*****.**> 
  * @access public
  * @return void
  */
 public function addOrder($request, $response)
 {
     /*{{{*/
     $request->convertToGBK();
     $mobile = $request->buyerPhone;
     $product = DAL::get()->find('Product', $request->saId);
     DBC::requireFalse($product->isNull(), "产品不能为空");
     $user = $this->user;
     $patientId = 0;
     $patientId = $request->curPatientId4Tel;
     if (empty($patientId) && isset($request->patient['id'])) {
         $patientId = $request->patient['id'];
     }
     $rand = 0;
     //患者不存在情况,需创建患者
     if (empty($patientId)) {
         //用户不存在,则创建user并且登录
         if ($user->isNull()) {
             $rand = 1;
             setcookie("MyRand", "1", 0);
             $res = UserClient::getInstance()->createRandUser($mobile);
             $user = $res['user'];
             User::sendRegisterMsg($user->id);
             //自动登录
             UserClient::getInstance()->login($res['user']->name, $res['password']);
         }
         $patientInfo = array();
         $birthday = "{$request->dateyear}-{$request->datemonth}-{$request->dateday}";
         $patientInfo['name'] = $request->patient['name'];
         $patientInfo['sex'] = $request->patient['sex'];
         $patientInfo['province'] = $request->patient['province'];
         $patientInfo['city'] = $request->patient['city'];
         $patientInfo['birthday'] = $birthday;
         $patientInfo['relation'] = $request->patient['relation'];
         $patientInfo['mobile'] = $mobile;
         $params = $patientInfo;
         $patient = PatientClient::getInstance()->add($user, $params);
     } else {
         //用户不存在,则创建user并且登录
         $modifyPatientInfo = array();
         $existedPatientId = $request->existedPatientId;
         if (false == empty($existedPatientId)) {
             $modifyPatientInfo['name'] = $request->patient['name'];
             $modifyPatientInfo['sex'] = $request->patient['sex'];
             $modifyPatientInfo['province'] = $request->patient['province'];
             $modifyPatientInfo['city'] = $request->patient['city'];
             $birthday = "{$request->dateyear}-{$request->datemonth}-{$request->dateday}";
             $modifyPatientInfo['birthday'] = $birthday;
             $modifyPatientInfo['relation'] = $request->patient['relation'];
         }
         $modifyPatientInfo['mobile'] = $mobile;
         $patient = DAL::get()->find('patient', $patientId);
         PatientClient::getInstance()->modifyInfo($patient->id, $modifyPatientInfo);
     }
     //期望时间
     $expectedtimes = '';
     if ($request->expectedtime == 'other') {
         $expectedtimes = $request->expectedtimeInput;
     } else {
         $expectedtimes = $request->expectTimes;
     }
     $expectedtimeStr = "";
     if (false == empty($expectedtimes)) {
         foreach ($expectedtimes as $expectedtime) {
             $expectedtimeStr .= $expectedtime . ' ';
         }
     }
     $inconvenientTime = $request->inconvenientTime;
     if (false == empty($inconvenientTime)) {
         $expectedtimeStr .= '方便时间为:' . $request->inconvenientTime;
     }
     $src = Intention::SRC_WEB;
     $intention = IntentionClient::getInstance()->add4Tel($product, $patient, $expectedtimeStr, $request->diseaseDescription, $src, $request->disease);
     if ($intention->needPay()) {
         $response->setRedirect($response->router->urlfor('payment/showpaytype', array('sourceId' => $intention->id, 'sourceType' => "intention", 'rand' => $rand)));
     } else {
         $response->setRedirect($intention->getUrl());
     }
     return parent::DIRECT_OUTPUT;
 }
 private function newFromSave($request, $response)
 {
     /*{{{*/
     $vars = array('tags' => $request->article_tags);
     DBC::requireTrue('' != $request->article_title, '文章标题不能为空');
     DBC::requireTrue('' != $request->article_content, '文章内容不能为空');
     $classicCategoryId = ArticleClient::getInstance()->getClassicsArticleCategoryId($this->user->id);
     $article = ArticleClient::getInstance()->addArticle($this->space, $classicCategoryId, $request->article_title, $request->getUnSafeData('article_content'), Article::SOURCE_DEFAULT, $vars);
     DBC::requireFalse($article->isNull(), '系统繁忙,请稍后重试');
     return $article;
 }
Ejemplo n.º 27
0
    public function spaceReplyCase($spaceId, $patientId, $content, $deviceType, $options = array(), $caseId = '', $caseType = '', $os=MobileApi::ANDROID)
    {/*{{{*/
        $space = DAL::get()->find('space', $spaceId);
        $user = $space->user;
    	if ($user->isNull())
        {
            $this->setErrorCode(107);
            return 0;
        }
        $userId = $user->id;

        $content = str_replace("&#60;", "<", $content);
        $content = str_replace("&#62;", ">", $content);
        $content = str_replace("&#34;", "\"", $content);
        $content = str_replace("&#39;", "'", $content);
        $content = strip_tags($content, "<a>");


        if (MobileApi::IOS == $os)
        {
            $content = $this->convertMarkBack($content, $space);
        }

        //兼容老版本spaceid和patientid
        if($caseId && $caseType)
        {
            if($caseType == 'thread')
            {
               // $thread = DAL::get()->find_by_id_and_status('thread', $caseId, Thread::STATUS_VALID);
                $thread = $this->getTheRightThread($caseId);
            }
            else
            {
                $thread = DAL::get()->find('doctorpatientref', $caseId);
            }
        }
        else
        {
            //先取proposal再取flow
            $thread = DAL::get()->find_by_spaceid_and_patientid_and_status_and_servicedef('proposal', $spaceId, $patientId, Proposal::STATUS_NORMAL, ServiceDef::TYPE_FLOW);
            if($thread->isNull())
            {
                $thread = DAL::get()->find_by_spaceid_and_patientid('doctorPatientRef', $spaceId, $patientId);
            }
        }
        if($thread->isNull())
        {
            $this->setErrorCode(142);
            return 0;
        }
        $attachmentIds = ''; 
        if(isset($options['attachmentIds']))
        {
            $attachmentIds = $options['attachmentIds'];
        }
    	$postContent = array('content'=>$content, 'attachmentIds'=>$attachmentIds);
        if($thread instanceof Proposal)
        {
              ProposalClient::getInstance()->firstReply($thread, $space, $content);
              ScoreClient::getInstance()->reply($user, $thread);
        }
        else if($thread instanceof DoctorPatientRef)
        {
            if ($thread->isClosePost()) 
            {
                DoctorPatientPostClient::getInstance()->switchPatientPostCan($thread->space->user->id, $thread->id);
            }
            //每次回复都会传remove参数,只有当判断选项时,才让option里面的remove参数恒有值 jz
            if($thread->replyLimitationIsApproaching())
            {
                $option['removeReplyLimitation']  = isset($options['removeReplyLimitation']) ? $options['removeReplyLimitation'] : 0;
            }
            if(isset($option['removeReplyLimitation']) && $option['removeReplyLimitation'])
            {
                if($thread->space->isChargeOpened())
                {
                    //$option['removeReplyLimitation'] = 0; 
                    //当是收费咨询的时候,取消remove参数。因为传0或者1都会在addPost再次改变次数
                    unset($option['removeReplyLimitation']);
                    FlowClient::getInstance()->addFreeServcieCardBySystem($thread);
                }
            }
            $attachmentIds = explode(',', $attachmentIds);
            $option['attachmentIds'] = $attachmentIds;
            $post = DoctorPatientPostClient::getInstance()->addPost($thread->id, $userId, $content, $option);
            DBC::requireFalse($post->isNull(), '系统繁忙,请稍后重试');
            if (false == $post->isNull())
            {
                ScoreClient::getInstance()->replyForFlow($user, $thread);
            }
            //系统日志
            try{
                FlowClient::getInstance()->addLog($thread,$user, DoctorPatientLog::TYPE_SYSTEM_LOG, 'CaseDataBucket::spaceReplyCase', $post);
            }catch(Exception $ex)
            {}

            //加入默认患友会
            if($user->id == $thread->space->user->id
                && $thread->space->isPatientOpened()
                    && $thread->isReGroupMember() == false)
            {
                FlowClient::getInstance()->addUserToDefaultReGroup($thread->id, $user->id);
            }
        }
    }/*}}}*/
Ejemplo n.º 28
0
 public function getCallBackLogList($request, $response)
 {
     /*{{{*/
     DBC::requireTrue(in_array($this->curUser->id, array(1919901, 1057767384, 1892327, 114108086, 581662815)), '没有权限');
     $type = $request->type;
     $theDate = $request->thedate;
     DBC::requireFalse(empty($type), '没有选择日志类型');
     DBC::requireFalse(empty($theDate), '没有选择日期');
     $this->sendMailFile($type, str_replace('-', '', $theDate));
     $response->setRedirect($response->router->urlfor('auditor/callbackloglist', array('msg' => true, 'thedate' => $theDate)));
 }
 public function diagnoseMemberJoinConf($request, $response)
 {/*{{{*/
     $spType = $request->spType;
     DBC::requireNotEmptyString($spType, "未知的服务商类型");
     $confId = $request->confId;
     DBC::requireNotEmptyString($confId, "会议Id不能为空");
     $phoneNumber = $request->phoneNumber;
     DBC::requireNotEmptyString($phoneNumber, "电话号码不能为空");
     $conf = DAL::get()->find('PhoneConference', $confId);
     DBC::requireFalse($conf->isNull() || $conf->isEnd(), "会议室已经关闭,不能外呼");
     PhoneConferenceClient::getInstance()->callConsultMember($conf, $phoneNumber);
     $response->setRedirect("/paymentfront/telconference/diagnose?confId={$confId}&spType={$spType}&step=callmember");
 }/*}}}*/
 private function checkPriceVaild4FlowOrder(ServiceOrder $serviceOrder, $price)
 {/*{{{*/
     DBC::requireFalse($this->user->isNull(), '无效的用户');
     $cashAccount = $this->user->getCashAccount();
     DBC::requireFalse($cashAccount->isNull(), '现金账户不能为空');
     DBC::requireTrue((int)($price * 100) >= (int)($serviceOrder->price * 100) - (int)($cashAccount->amount * 100), '充值的金额无法支付收费咨询订单,请重新确认充值金额');
 }/*}}}*/