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); }
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; }/*}}}*/
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); }
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('操作成功')); }
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); }/*}}}*/
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; }/*}}}*/
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 = '点评回帖编辑'; }
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; } }
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); } } }/*}}}*/
/** * @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"); }
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; }/*}}}*/
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; } }/*}}}*/
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'; }
/** * 使用方法和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; }/*}}}*/
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']; }
/** 分享文章**/ 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'); } }
private function doConfirmAction4Leader($request, $response) { /*{{{*/ $ticketIds = $request->ticketids; DBC::requireFalse(empty($ticketIds), '没有选择任务'); $group = InspectGroup::find($request->groupid); DBC::requireTrue($this->curInspector->isTaskLeader($group), '不是当前组的组长或者管理员,不允许操作'); }
/** * 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; }
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("<", "<", $content); $content = str_replace(">", ">", $content); $content = str_replace(""", "\"", $content); $content = str_replace("'", "'", $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); } } }/*}}}*/
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), '充值的金额无法支付收费咨询订单,请重新确认充值金额'); }/*}}}*/