public function ajaxCheckMobile($request, $response)
 {/*{{{*/
     $mobile = $request->mobile;
     if (XString::isMobile($mobile))
     {
         echo true;
     }
     else
     {
         echo false;
     }
     return parent::DIRECT_OUTPUT;
 }/*}}}*/
 public function ajaxShowTelSmsList($request, $response)
 {/*{{{*/
     $mobile = $request->mobile;
     $minCtimeOfTaskId = $request->minctimeoftaskid;
     if(XString::isMobile($mobile) == false)
     {
         die("亲,电话不是手机号。没有短信哦");        
     }
     if(isset($minCtimeOfTaskId) == false)
     {
         die("亲,没有任务");        
     }
     $telTask = DAL::get()->find('TelTask', $minCtimeOfTaskId);
     $filter = " mobile=:mobile and ctime >= :ctime order by ctime desc limit 20";
     $binds = array(':mobile'=>$mobile, ':ctime'=>$telTask->ctime);
     $mobileSmsLogs = DAL::get()->find_all_by_condition("smslog", $filter, $binds);
     $response->mobileSmsLogs = $mobileSmsLogs;
 }/*}}}*/
 /**
  * bind user
  *1.检查 用户存在?用户绑定其它对象? 
  *2.绑定流程
  *  1)查space表中是否已经有该用户数据
  *  2)有且数据相符    匹配 激活, 不符 报错
  *  3)没有           插入
  *  4)如果是医生更新user表的省市区为医院的
  *  5)由host type 更新医生或医院科室表
  *
  * 参数要求, $data中必须包含 fld_UserId, fld_SpaceHostType, fld_SpaceHostId
  * 可选参数 fld_SpaceRegisterSource
  */
 public function bind($request, $response)
 {
     $data = $request->data;
     $data['spaceHostId'] = $request->spaceHostId;
     $data['spaceHostName'] = $request->spaceHostName;
     $data['spaceHostType'] = $request->spaceHostType;
     $options = array();
     $options['registerSource'] = isset($data['spaceRegisterSource']) ? $data['spaceRegisterSource'] : '';
     $user = DAL::get()->find('user', $data['userId']);
     $valueUserMobile = UserClient::getInstance()->getSpaceByUserMobile($user->mobile, $user->id);
     $options = array('userId' => $data['userId'], 'userName' => $data['userName'], 'spaceRegisterSource' => $data['spaceRegisterSource'], 'bindType' => $data['bindType'], 'operate' => 'bind');
     if (isset($user->mobile) && false == XString::isMobile($user->mobile)) {
         $msg = "手机号码格式错误";
     } else {
         if (isset($user->mobile) && false == XString::isMobile($user->mobile)) {
             $msg = "您填写的手机号码不合要求,请修改后重新提交";
         } else {
             if (isset($user->mobile) && $valueUserMobile) {
                 $msg = "此手机号码已经绑定了注册医生,请重新确定手机号";
             } else {
                 $res = SpaceClient::getInstance()->bind($data['userId'], $data['spaceHostId'], $data['spaceHostType'], $options);
                 //cleancache
                 $space = DAL::get()->find('space', $data['userId']);
                 $urls = $this->getSpaceCacheUrls($space);
                 Squid::clean($urls, true);
                 if ($res) {
                     $msg = "操作成功!";
                     $options = array();
                     $options = array('userId' => $data['userId'], 'userName' => $data['userName'], 'spaceRegisterSource' => $data['spaceRegisterSource'], 'hostName' => $data['spaceHostName'], 'hostType' => $data['spaceHostType'], 'spaceHostName' => $data['spaceHostName'], 'bindType' => $data['bindType'], 'msg' => $msg);
                 }
             }
         }
     }
     $options['msg'] = $msg;
     $url = $response->router->urlfor('space/showopenspace', $options);
     $response->setRedirect($url);
 }
Esempio n. 4
0
 public function update($request, $response)
 {
     $id = $request->id;
     //被修改的userid
     $userInfo = $request->data;
     //被修改的userid
     //获取当前操作用户id
     $user = UserClient::getInstance()->getCurrentUser();
     $userInfo['modiferid'] = $user->id;
     $updateUser = DAL::get()->find('user', $id);
     $valueUserMobile = isset($userInfo['mobile']) ? UserClient::getInstance()->getSpaceByUserMobile($userInfo['mobile'], $id) : '';
     if (isset($userInfo['mobile']) && $userInfo['mobile'] && false == XString::isMobile($userInfo['mobile'])) {
         $msg = "您填写的手机号码不合要求,请修改后重新提交";
     } else {
         if ($updateUser->hasConfirmedSpace() && $updateUser->space->isDoctor() && isset($userInfo['mobile']) && $valueUserMobile) {
             $msg = "此手机号码已经绑定了注册医生,请重新确定手机号";
         } else {
             if ($updateUser->hasSpace() && $userInfo['realName']) {
                 //自动更新space上冗余的spacehostname
                 SpaceClient::getInstance()->setProperties($id, array('name' => $userInfo['realName']));
             }
             $userId = UserClient::getInstance()->modifyInfoNew($id, $userInfo);
             if ($userId) {
                 $msg = "操作成功了 ";
             } else {
                 $msg = "操作失败了 ";
             }
         }
     }
     if (DoctorComment::hasRightToUpdateUserContent($this->inspector->id)) {
         //获取被操作的用户
         $operationedUser = DAL::get()->find('User', $request->id);
         $logId = S3LogClient::getInstance()->add($this->inspector, $operationedUser->getLogable()->action(UserLog::ACTION_ADMIN_CONTENT, $request->adminContent));
     }
     $url = $response->router->urlfor('user/showuserdetail', array('id' => $id, 'msg' => $msg));
     $response->setRedirect($url);
 }
        <span style="padding-left:5px; cursor:pointer"><img title="呼叫" rel="<?php 
        echo XString::hiddenTelNumber($phoneNumber);
        ?>
" value="<?php 
        echo $phoneNumber;
        ?>
" class="callUser" src="http://i1.hdfimg.com/callcenter/images/icon01.png"></span>
        <span style="padding-left:5px; cursor:pointer"><img title="历史会话" rel="<?php 
        echo XString::hiddenTelNumber($phoneNumber);
        ?>
" value="<?php 
        echo $phoneNumber;
        ?>
" class="historyConversationListByPhoneNumber cp" src="http://i1.hdfimg.com/callcenter/images/iconHideoffline01-01.png"></span>
<?php 
        if (XString::isMobile($phoneNumber)) {
            ?>
        <span style="padding-left:5px; cursor:pointer"><img title="短信" rel="<?php 
            echo XString::hiddenTelNumber($phoneNumber);
            ?>
" value="<?php 
            echo $phoneNumber;
            ?>
" class="sendSMS " src="http://i1.hdfimg.com/callcenter/images/buttonMessage01-01.png"></span>
<?php 
        }
        ?>
    </li>
<?php 
    }
}
 private function validateSaveTasktemplate4Common($request, array &$validateInfo)
 {
     /*{{{*/
     if (false == TaskTemplate::scriptPathIsRight(trim($request->scriptpath))) {
         $validateInfo['error'][] = '路径输入不正确';
     }
     if (trim($request->title) == '') {
         $validateInfo['error'][] = 'title不可为空';
     }
     if (false == file_exists(trim($request->scriptpath))) {
         $validateInfo['warning'][] = '你输入的脚本路径在现有代码中不存在';
     }
     if (trim($request->scriptauthoremail) == '') {
         $validateInfo['error'][] = '脚本作者email不能为空';
     } else {
         if (false == XString::isEmail(trim($request->scriptauthoremail))) {
             $validateInfo['error'][] = '脚本作者email格式不正确';
         }
     }
     if (trim($request->scriptauthorleaderemail) == '') {
         $validateInfo['error'][] = '团队Leader email不能为空';
     } else {
         if (false == XString::isEmail(trim($request->scriptauthorleaderemail))) {
             $validateInfo['error'][] = '团队leader email格式不正确';
         }
     }
     if (trim($request->scriptauthormobile) == '') {
         $validateInfo['error'][] = '作者电话不可为空';
     } else {
         if (false == XString::isMobile($request->scriptauthormobile)) {
             $validateInfo['error'][] = '您输入的11位作者手机号码格式不正确';
         }
     }
     if (trim($request->scriptauthorleadermobile) == '') {
         $validateInfo['error'][] = '团队leader电话不可为空';
     } else {
         if (false == XString::isMobile($request->scriptauthorleadermobile)) {
             $validateInfo['error'][] = '您输入的11位团队leader手机号码格式不正确';
         }
     }
     if (false == CronConfigMgr::cronConfigIsRight(CronConfigMgr::getCronConfigUseSSH())) {
         $validateInfo['error'][] = '机器上的cron配置格式有问题';
     }
 }
 public function doctorReceiveRemindSmsPost($request, $response)
 {
     /*{{{*/
     DBC::requireTrue($this->space->user->verifyToken($request->token), '验证码错误');
     $remindSms = $request->remindSms;
     $mobile = trim($request->mobile);
     if ($mobile && $remindSms == 1) {
         DBC::requireTrue(XString::isMobile($mobile), '您填写的手机号码不合要求,请修改后重新提交');
         $valueUserMobile = UserClient::getInstance()->getSpaceByUserMobile($mobile, $this->user->id);
         DBC::requireTrue(false == $valueUserMobile, '此手机号码已经绑定了注册医生,请重新确定手机号');
         UserClient::getInstance()->setMobile($this->space->id, $mobile, $this->user->id);
         SpaceClient::getInstance()->setProperties($this->space->id, array('receiveLoginRemindSms' => $remindSms));
         $this->message('信息修改成功', $response);
     } else {
         if ($remindSms == 0) {
             SpaceClient::getInstance()->setProperties($this->space->id, array('receiveLoginRemindSms' => $remindSms));
             $this->message('信息修改成功', $response);
         } else {
             DBC::requireTrue(XString::isMobile($mobile), '您填写的手机号码不合要求,请修改后重新提交');
         }
     }
 }
 public function smsSendExecute($request, $response)
 {/*{{{*/
     $phoneNos = $request->smsPhone;
     $identity = $request->identity;
     $smscontent = $request->getUnSafeData('smscontent');//转码后有的字符会被运营商屏蔽
     $order = DAL::get()->find('telorder', $request->orderId);
     if(false == empty($smscontent) && false == empty($phoneNos))
     {
         $taskId = $request->taskId;
         foreach($phoneNos as $tel)
         {
             if(false == empty($tel) && XString::isMobile($tel))
             {
                 //sendAsync sendSMS
                 if($identity == 'doctor')
                 {
                     SMSClient::getInstance()->sendSMS(array($tel), $smscontent, SMSLog::OPT_TYPE_TEL_ZIXUN, '', SMSMD::EXT_6);
                     $logContent = '给医生发送短信,号码:'.$tel.'短信内容:'.$smscontent;
                     TelOrderClient::getInstance()->createTelorderLog($order, $this->curUser, TelOrderLog::TYPE_DOCTOR_SMS_SEND, TelOrderLog::LOG_LEVEL_IMPORTANT, $logContent);
                     $type = TelOrderRemark::TYPE_MAKETIME_DOCTOR;
                     TelOrderRemarkClient::getInstance()->createOrderRemark($this->curUser, $order->getExecuterBySpace()->id, $taskId, $type, $smscontent, 0, $order->id);
                 }
                 else if($identity == 'patient')
                 {
                     SMSClient::getInstance()->sendAsync(array($tel), $smscontent, SMSLog::OPT_TYPE_TEL_ZIXUN);
                     $logContent = '给患者发送短信,号码:'.$tel.'短信内容:'.$smscontent;
                     TelOrderClient::getInstance()->createTelorderLog($order, $this->curUser, TelOrderLog::TYPE_DOCTOR_SMS_SEND, TelOrderLog::LOG_LEVEL_IMPORTANT, $logContent);
                     $type = TelOrderRemark::TYPE_SENDMESSAGE_PATIENT;
                     TelOrderRemarkClient::getInstance()->createOrderRemark($this->curUser, $order->getExecuterBySpace()->id, $taskId, $type, $smscontent, $order->patient->id, $order->id);
                 }
             }
         }
     }
     $response->setRedirect($request->url);
 }/*}}}*/
 public function showPatient($request, $response)
 {
     /*{{{*/
     $showPhoneNumber = $request->showPhoneNumber;
     $phoneNumber = $request->phoneNumber;
     if (false == is_numeric($phoneNumber)) {
         $phoneNumber = Codec::getInstance()->decodeId($phoneNumber);
     }
     $mobileNumberArea = "";
     $mobileNumberAreaArray = array();
     if (XString::isMobile($phoneNumber)) {
         $mobileNumber = substr($phoneNumber, 0, 7);
         $mobileArea = DAL::get()->find_by_mobilenumber("MobileNumberArea", $mobileNumber);
         if (false == $mobileArea->isNull()) {
             $mobileNumberArea = $mobileArea->mobileArea;
             $mobileNumberAreaArray = explode(" ", $mobileNumberArea);
         }
     }
     $response->mobileNumberAreaArray = $mobileNumberAreaArray;
     $response->phoneNumber = $phoneNumber;
     $response->showPhoneNumber = $showPhoneNumber;
     $response->relationList = Patient::relationDef();
     $response->userId = $request->userId;
 }
 private function sendMessageByUserId($request, $response, $phoneNumber, $mobiles, $smsContent, $ext)
 {
     /*{{{*/
     $userIds = strpos($phoneNumber, ',') !== false ? explode(',', $phoneNumber) : array($phoneNumber);
     $users = DAL::get()->find('User', $userIds);
     foreach ($userIds as $userId) {
         if (is_numeric($userId) == false) {
             $errorUserIds[] = $userId;
         }
     }
     foreach ($users as $key => $user) {
         if ($user->isNull()) {
             $errorUserIds[] = $key;
             continue;
         }
         if (XString::isMobile($user->mobile)) {
             $mobiles[] = $user->mobile;
         } else {
             $errorUserIds[] = $user->id;
         }
     }
     $msg = "短信已提交发送";
     if (empty($errorUserIds) == false) {
         $msg = "短信已提交发送, 其中有问题的userid: " . implode(', ', $errorUserIds);
     }
     if (empty($mobiles) == false && empty($smsContent) == false) {
         SMSClient::getInstance()->sendSMSByManual($mobiles, $smsContent, $ext);
     }
     $url = $response->router->urlfor('message/showsendmessage', array('msg' => $msg));
     $response->setRedirect($url);
 }
Esempio n. 11
0
	
    if ($name)
    {
    	$user = UserClient::getInstance()->getByUserName($name);
        if ($user->isNull() == false) {
            print("checkresult('该用户已经存在, 请选择其他名字', 'username');");	
        } elseif (User::isUserNameValid($name) == false) {
            print("checkresult('该用户名不允许注册', 'username');");	
        } else {
            print("checkresult('', 'username');");	
        }
    }
    else if ($mobile)
    {
        $err = "";
        if(false == XString::isMobile($mobile))
            $err = "您填写的手机号码不合要求,请修改后重新提交";
        else
        {
            $valueUserMobile = UserClient::getInstance()->getSpaceByUserMobile($mobile);
            if($valueUserMobile)
                $err = "此手机号码已经绑定了注册医生,请重新确定手机号";
        }
    	
        if ($err) {
            print("checkresult('{$err}', 'mobile');");	
        } 
    }
    
?>
</script>
Esempio n. 12
0
 private function _checkUserInfos($infos)
 {/*{{{*/
     if (count($infos) != count(array_filter($infos)))
         return 141;
     if (isset($infos['name']))
     {
         $utf8name = mb_convert_encoding($infos['name'], 'utf8', 'gbk');
         if (empty($utf8name) || !preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u", $utf8name)) 
             return 102;
         else if (strlen($infos['name']) < 4 || strlen($infos['name']) > 16) 
             return 103;
     }
     if (isset($infos['password']) && (empty($infos['password']) || !preg_match("/^[0-9a-zA-Z]{4,16}$/", $infos['password'])))
         return 108;	
     else if (isset($infos['email']) && (empty($infos['email']) || !preg_match("/^[_0-9a-zA-Z.]+@[_0-9a-zA-Z]+\..+$/i", $infos['email'])))
         return 109;
     else if (isset($infos['mobile']) && (empty($infos['mobile']) || false == XString::isMobile($infos['mobile'])))
         return 110;
     else if (isset($infos['isReceiveReply']) && (false == is_numeric($infos['isReceiveReply']) || false == in_array($infos['isReceiveReply'], array(User::RECIEVE_REPLY_YES, User::RECIEVE_REPLY_NO))))
         return 111;
     return 0;
 }/*}}}*/
Esempio n. 13
0
    public function getUserListByMobileAndPwd($mobile, $pwd)
    {/*{{{*/
        $userInfos = array(); 
        if (false == XString::isMobile($mobile))
        {
            $user = DAL::get()->find_by_name('user', $mobile, true);
            if ($user->isNull() || !$user->validatePassword($pwd))
            {
                $this->setErrorCode(122);
                return 0;
            }
            $userInfos[] = array("userName" => $user->name, "userId" => $user->id);
        } 
        else 
        {   
            $users = DAL::get()->find_all_by_mobile('user', $mobile);
            $user = DAL::get()->find_by_name('user', $mobile, true);
            if (false == $user->isNull()) $users[$user->id] = $user;

            if (0 == count($users))
            {
                $this->setErrorCode(122);
                return 0;
            }

            foreach ($users as $user)
            {
                if ($user->validatePassword($pwd)) $userInfos[] = array("userName" => $user->name, "userId" => $user->id);
            }

            if (0 == count($userInfos))
            {   
                $this->setErrorCode(122);
                return 0;
            }
        }
        $this->content = $userInfos; 
    }/*}}}*/
Esempio n. 14
0
    ?>
" 
                                value="<?php 
    echo $conversation->customerPhoneNumber;
    ?>
" class="iframeCallUser cp" src="http://i1.hdfimg.com/callcenter/images/icon01.png">
                     <img title="历史会话" rel="<?php 
    echo XString::hiddenTelNumber($conversation->customerPhoneNumber);
    ?>
" 
                                value="<?php 
    echo $conversation->id;
    ?>
" class="iframeRecoverCallUser cp" src="http://i1.hdfimg.com/callcenter/images/iconHideoffline01-01.png">
                <?php 
    if (XString::isMobile($conversation->customerPhoneNumber)) {
        ?>
                     <img title="短信" rel="<?php 
        echo XString::hiddenTelNumber($conversation->customerPhoneNumber);
        ?>
" 
                            value="<?php 
        echo $conversation->customerPhoneNumber;
        ?>
" class="iframeSendSms cp" 
                            src="http://i1.hdfimg.com/callcenter/images/buttonMessage01-01.png">
                <?php 
    }
    ?>
                 </span>
            </td>
Esempio n. 15
0
<input type="hidden" name="identity" value="<?=$identity?>">
<input type="hidden" name="taskId" value="<?=$taskId?>">
<div id="sms_box" >
<table width="600" height="280" cellpadding="5" cellspacing="0" border="0">
    <tr height="20">
        <td  align="left"></td>
        <td  align="right"></td>
    </tr>
    <tr height="30">
    <td width="15%" class="sunright"><span ><?php if($identity == 'doctor') {?>医生<?php }else{?>患者<?php }?>号码:</span></td>
        <td width="85%">
<?php
$i = 1;
foreach($phoneNos as $phoneNo)
{
    if(false == empty($phoneNo) && XString::isMobile($phoneNo))
    {
?>
    <input name="smsPhone[]" <?php if(1==$i){?>checked="checked"<?php }?> id="smsPhone_<?=$phoneNo?>" class="phoneNo" type="checkbox" value="<?=$phoneNo?>" onclick="$(this).addClass('phoneNoSelected')"> <span class='mr10'><?=$phoneNo?></span>
<?php
    }
    else
    {
        echo "<span class='mr10 gray'>$phoneNo</span>"; 
    }
    $i++;
}
?>
        </td>
    </tr>
    <tr height="30">
Esempio n. 16
0
 public function registerSendKey($request, $response)
 {/*{{{*/
     $results = array();
     $mobile = $request->mobile;
     if(false == XString::isMobile($mobile))
     {
         $results = array('res' => 'failure', 'msg' => mb_convert_encoding('手机号格式有误', 'UTF-8', 'GBK'), 'next' => '');
     }
     else
     {
         $users = DAL::get()->find_all_by_mobile('user', $mobile);
         if (empty($users))
         {
             $user = DAL::get()->find_by_name('user', $mobile, true);
             if (false == $user->isNull())
             {
                 $users[$user->id] = $user;
             }
         }
         if (empty($users))
         {
             if ($this->isQrCodePatientSigninRegiest($request->forward) || Captcha::verifyValue($request->token, $request->door))
             {
                 UserClient::getInstance()->sendKeyForRegiester($mobile);
                 $results = array('res' => 'success', 'msg' => mb_convert_encoding('短信验证码已经发送', 'utf-8', 'gbk'), 'next' => $response->router->urlfor('user/registerverifykey', array('mobile' => $mobile, 'forward' => $request->forward)));
             }
             else
             {
                 $results = array('res' => 'wrongdoor', 'msg' => mb_convert_encoding('校验码输入错误', 'UTF-8', 'GBK'), 'next' => '');
             }
         }
         else
         {
             $results = array('res' => 'exist', 'msg' => mb_convert_encoding('该手机号已经关联了好大夫在线账号,请直接登录', 'UTF-8', 'GBK'), 'next' => $response->router->urlfor('user/login', array('mobile' => $mobile, 'forward' => $request->forward)));
         }
     }
     echo json_encode($results);
     return self::DIRECT_OUTPUT;
 }/*}}}*/
Esempio n. 17
0
 private function getConfirmMsg($params, $commentType, $doctor)
 {/*{{{*/
     if ($params['tag'] == '' || $params['tag'] == '如:冠心病')
     {
         return "请填写您所患的疾病!";
     }
     if ($params['content'] == '' || $params['content'] == '请公正、客观、详实填写,无事实依据会被删除')
     {
         return "请填写您的".DoctorComment::$TypeDesc[$commentType]."内容!";
     }
     if ($doctor->commentDoctor->trustIndex < CommentDoctorExt::UNNEED_REALNAME_AND_MOBILE_MIN_TRUSTINDEX)
     {
         if ($params['userRealName'] == '' || $params['userRealName'] == '如:张三')
         {
             return "请填写您的真实姓名!";
         }
         if ($params['userMobile'] == '')
         {
             return "请填写您的手机号码!";
         }
         if (false == XString::isMobile($params['userMobile']))
         {
             return "请填写正确的手机号码!";
         }
     }
     return "";
 }/*}}}*/
    public function doctorReceiveRemindSmsPost($request, $response)
    {
        DBC::requireTrue($this->_newSpace->user->verifyToken($request->token), '验证码错误');
        $remindSms  = $request->remindSms;
        $mobile = trim($request->mobile);
        if ($mobile)
        {
            $valueUserMobile = UserClient::getInstance()->getSpaceByUserMobile($mobile, $this->_newUser->id);
            if (false == XString::isMobile($mobile))
            {
               $this->message("您填写的手机号码不合要求,请修改后重新提交", $response);
               return false;
            }
            else if($valueUserMobile)
            {
                $this->message("此手机号码已经绑定了注册医生,请重新确定手机号", $response);
                return false;
            }
            else
            {
                UserClient::getInstance()->setMobile($this->_newSpace->id, $mobile, $this->_newUser->id);
                SpaceClient::getInstance()->setProperties($this->_newSpace->id, array('receiveLoginRemindSms' => $remindSms));
                $this->message('信息修改成功', $response);
            }
        }
	}
Esempio n. 19
0
    public function saveOrderInfo($request, $response)
    {/*{{{*/
        DBC::requireTrue(isset($_SESSION['telOrderInfo']['productId']), '选择服务内容失效,请返回重新选择');
        $telOrderInfo = array();
        DBC::requireFalse(false == XString::isMobile($request->mobile), '您填写的手机号码格式不正确!');
        $cloneSession = $_SESSION;
        $_SESSION['telOrderInfo']['mobile'] = $request->mobile;
        $_SESSION['telOrderInfo']['productId'] = $request->productId;
        $_SESSION['telOrderInfo']['desc'] = XString::convertUTF8ToGBK($request->desc);
        $_SESSION['telOrderInfo']['disease'] = XString::convertUTF8ToGBK($request->disease);

        //监控日志 电话咨询病情描述为空的。疾病信息为空的 PAM-6749 djf
        $this->watchEmptyContent($request, $cloneSession);

        $mobile = $request->mobile; 
        if ($this->user->isNull()) 
        {
            //用户不存在,则创建user并且登录
            $res = UserClient::getInstance()->createRandUser($mobile);
            if($res['user'] == '')
            {
                $currentUrl = $response->router->urlfor('tel/telorderform', array('productId'=> $_SESSION['telOrderInfo']['productId']));
                $response->setRedirect($response->router->urlfor('user/login', array('forward' => $currentUrl)));
                return;                                                                       
            }
            //自动登录
            $this->user = $res['user'];
            UserClient::getInstance()->login($this->user->name, $res['password']);
            $_SESSION['user']['userName'] = $this->user->name;
            $_SESSION['user']['password'] = $res['password'];
        }
        $this->watchAndEmailUserInfo($request, $this->user);

        DBC::requireTrue(isset($_SESSION['telOrderInfo']['patientInfo']) || isset($_SESSION['telOrderInfo']['patientId']), '患者信息失效,请重新选择');
        $patientId = 0;
        if (isset($_SESSION['telOrderInfo']['patientId']) && is_numeric($_SESSION['telOrderInfo']['patientId']))
        {
            $patientId = $_SESSION['telOrderInfo']['patientId'];
        }
        if (isset($_SESSION['telOrderInfo']['patientInfos']))
        {
            foreach ($_SESSION['telOrderInfo']['patientInfos'] as $info)
            {
                $existedPatientId = $_SESSION['telOrderInfo']['existedPatientId'];
                if($existedPatientId)
                {
                    PatientClient::getInstance()->modifyInfo($existedPatientId, $info);
                    $patientId = $existedPatientId;
                }
                else
                {
                    $newPatient = PatientClient::getInstance()->add($this->user, $info);
                    if (isset($_SESSION['telOrderInfo']['patientId']) && $info['id'] == $_SESSION['telOrderInfo']['patientId'])
                    {
                        $patientId = $newPatient->id;
                    }
                }
            }
        }
        $response->setRedirect($response->router->urlfor('tel/newtelorder', array('patientId'=>$patientId)));
    }/*}}}*/
    public function newPhoneCallOrderWithMultiPatients($userId, $doctorId, $contractId, $phoneNumber, $content, $deviceType, $patientId, $name, $birthday, $sex, $province, $city, $relation, $payType)
    {/*{{{*/
        if (in_array($patientId, self::$patientIds))
        {
            $this->setErrorCode(1000);
            return 0;
        }
        if(false == XString::isMobile(trim($phoneNumber)))
        {
            $this->setErrorCode(110);
            return 0;
        }
        $product = DAL::get()->find('product', $contractId);
        if($product->isNull())
        {
            $this->setErrorCode(300);
            return 0;
        }
        //没有电话分成合同
        if($product->contract->isNull() || $product->contract->isInvalid())
        {
            $this->setErrorCode(333);
            return 0;
        }
        if("" == trim($content))
        {
            $this->setErrorCode(302);
            return 0;
        }
        $user = DAL::get()->find('user', $userId);
		if ($user->isNull() || $user->id == 0)
		{
            $this->setErrorCode(107);
            return 0;
        }
        $source = Intention::SRC_IOS;
        if(strtolower($deviceType) == 'iphone')
        {
            $source = Intention::SRC_IOS;
        }
        else if(strtolower($deviceType) == 'ipad')
        {
            $source = Intention::SRC_IPAD;
        }
        else if(strtolower($deviceType) == 'android')
        {
            $source = Intention::SRC_ANDROID;
        }
        $expectedtimeStr = "越快越好";
        //创建或更新patient
        if(0 == $patientId)
        {
            $birthday = date('Y-m-d',$birthday);
            if("" == trim($name))
            {
                $this->setErrorCode(176);
                return 0;
            }
            if("" == trim($birthday))
            {
                $this->setErrorCode(171);
                return 0;
            }
            if("" == trim($sex))
            {
                $this->setErrorCode(172);
                return 0;
            }
            if("" == trim($province))
            {
                $this->setErrorCode(173);
                return 0;
            }
            if("" == trim($city))
            {
                $this->setErrorCode(174);
                return 0;
            }
            if("" == trim($relation))
            {
                $this->setErrorCode(175);
                return 0;
            }
            $patientInfo = array();
            $patientInfo['name'] = $name;
            $patientInfo['sex'] = $sex;
            $patientInfo['province'] = $province;
            $patientInfo['city'] = $city;
            $patientInfo['birthday'] = $birthday;
            $patientInfo['relation'] = $relation;
            $patientInfo['mobile'] = $phoneNumber;
            $params = $patientInfo;
            $patient = PatientClient::getInstance()->add($user, $params);
        }
        else
        {
            $modifyPatientInfo = array();
            $modifyPatientInfo['mobile'] = $phoneNumber;
            $patientId = $patientId;
            $patient = DAL::get()->find('patient', $patientId);
            PatientClient::getInstance()->modifyInfo($patient->id , $modifyPatientInfo);
        }
        $intention = IntentionClient::getInstance()->add4Tel($product, $patient, $expectedtimeStr, $content, $source);
        $this->content = array('id' => $intention->id);
    }/*}}}*/
 public function ajaxCheckMobile($request, $response)
 {/*{{{*/
     $res = "success";
     $mobile = $request->mobile;
     $res = (false == XString::isMobile($mobile)) ? "errormobile" : $res;
     if($res == "success")
     {
         $spaceList = DAL::get()->find_all_ByUserMobileAndSpaceHostType('Space', $mobile, Space::HOST_TYPE_DOCTOR);
         $res = (empty($spaceList) || count($spaceList) > 1) ? "nodoctor" : $res;
         $space = array_shift($spaceList);
     }
     $result = ($res == "success") ? array('res' => $res, 'spaceId' => $space->id) : array('res' => $res);
     echo json_encode($result);
     return parent::DIRECT_OUTPUT;
 }/*}}}*/
 public function displayDoctorDetail4Guest($request, $response)
 {
     /*{{{*/
     $response->spaceBusinessRequirement = DAL::get()->find('spaceBusinessRequirement', $request->id);
     $response->callPanelLink = 'http://' . URL_PREFIX . 'hdfadmin.haodf.com/doctor/callpanel?username=' . $response->spaceBusinessRequirement->space->user->name;
     $isMobileCallable = XString::isMobile($response->spaceBusinessRequirement->space->user->mobile);
     $isFixedLineCallable = XString::findPhoneNO($response->spaceBusinessRequirement->space->user->phone) != false;
     $response->isCallPanelLinkShown = $isMobileCallable || $isFixedLineCallable;
 }
 public function showOrderDetail($request, $response)
 {
     /*{{{*/
     $response->showContent = true;
     $orderId = $request->orderId;
     DBC::requireNotEmptyString($orderId, '无效的订单ID');
     $response->doctortype = $request->doctortype;
     $order = DAL::get()->mustFind('BookingOrder', $orderId, true);
     $space = $order->space;
     $taskList = DAL::get()->find_all_by_objectid_and_objecttype('BookingTask', $orderId, 'bookingorder');
     //约满
     $seatLimits = BookingClient::getInstance()->getseatLimitCount($order->space, date('Y-m-d', strtotime("+ 0 day")), date('Y-m-d', strtotime("+ 17 day")));
     //停诊
     $stopDiagnose = DAL::get()->find_all_by_spaceid('StopDiagnose', $order->space->id);
     $doctorOrderTotal = BookingClient::getInstance()->countDoctorOrder('BookingOrder', $order->space->id);
     $proposalIds = DAL::get()->querySpacePatientProposals('proposal', $order->space, array(), $order->patient->id);
     $proposals = DAL::get()->find('proposal', $proposalIds);
     $doctorPatientRef = new NullEntity();
     if (empty($proposalIds)) {
         $doctorPatientRef = DAL::get()->find_by_spaceid_and_patientid('doctorpatientref', $order->space->id, $order->patient->id);
     }
     $response->doctorPatientRef = $doctorPatientRef;
     $response->order = $order;
     $response->taskList = $taskList;
     $response->patientOrderTotal = BookingClient::getInstance()->countPatientOrder('BookingOrder', $order->user->id);
     $response->doctorOrderTotal = $doctorOrderTotal;
     $response->seatLimits = $seatLimits;
     $response->stopDiagnose = $stopDiagnose;
     //$bingLis4Schedule = BingLiDtoClient::getInstance()->getBingLiByRelatedObj($order->notification->proposal)->schedule;
     //$response->bingLiSchedule = $bingLis4Schedule[0]->schedule;
     //$response->bingLiAddress = BingLiDtoClient::getInstance()->getBingLiByRelatedObj($order->notification->proposal)->address;
     $response->space = $space;
     $response->doctorMobileEncoded = XString::encodeMobileNo($space->user->mobile);
     $response->doctorMobileFaked = XString::generateFakePhoneno($space->user->mobile);
     $response->cardOrderTotal = BookingClient::getInstance()->countCardOrder($order->patient->idcard);
     $response->mobileOrderTotal = BookingClient::getInstance()->countMobileOrder($order->patient->mobile);
     $response->patientDefaulted = BookingClient::getInstance()->countPatientDefaulted('BookingBlackList', $order->user->id, $order->patient->idcard, $order->user->mobile, $order->patient->mobile);
     $response->proposals = $proposals;
     $response->scheduleList = $this->getSchedule($order->space);
     $isMobileCallable = XString::isMobile($space->user->mobile);
     $isFixedLineCallable = XString::findPhoneNO($space->user->phone) != false;
     $response->isCallPanelLinkShown = $isMobileCallable || $isFixedLineCallable;
     $response->spaceBusinessRequirement = $space->getSpaceBusinessRequirement4Booking();
 }
Esempio n. 24
0
 public function registerSendKey($request,$response)
 {/*{{{*/
     $userPhone = $request->userPhone;
     $spaceId = $request->spaceId;
     $disease =  mb_convert_encoding($request->disease,"gbk", "utf-8");
     $weixUserId = $this->getWeixUserIdFromRequest();
     $patientName = mb_convert_encoding($request->patientName,"gbk", "utf-8");
     $flag = array();
     if(false == XString::isMobile($userPhone))
     {
         $flag = array('res' => "errormobile");  //手机格式错误
     }
     else
     {
         $users = DAL::get()->find_all_by_mobile_or_phone('user',$userPhone,$userPhone);
         if(empty($users))
         {
             $user = DAL::get()->find_by_name('user',$userPhone);
             if(false == $user->isNull())
             {
                 $users[$user->id] = $user;
             }
         }
         if(empty($users))  //该手机号可以注册
         {
             UserClient::getInstance()->sendKeyForRegiester($userPhone);
             $flag = array('res' => "success"); 
         }
         else
         {
             $flag = array('res' => "registered",'next' => $response->router->urlfor('weixin/reportInfo',array('weixUserId' => $weixUserId,'disease' => $disease,'patientName' => $patientName,'userPhone' => $userPhone,'spaceId' => $spaceId)));  //该手机已经注册
         }
     }
     echo json_encode($flag);
     return parent::DIRECT_OUTPUT;
 }/*}}}*/
Esempio n. 25
0
 &nbsp&nbsp&nbsp&nbsp 出生日期: <?php 
    echo $patientCase->age;
    ?>
</td>
</tr>
<tr>
<td>省:<?php 
    echo $patientCase->province;
    ?>
 &nbsp&nbsp&nbsp&nbsp市:<?php 
    echo $patientCase->city;
    ?>
</td>
<td>联系方式:<?php 
    echo $patientCase->phone;
    if (empty($patientCaseMatch) && XString::isMobile($patientCase->phone) && false == empty($patientCase->phone) && $patientCase->doctorOwner->source instanceof Space) {
        ?>
&nbsp<input type="button" value="以医生身份发邀请短信" onclick="sendMsg(<?php 
        echo $patientCase->doctorOwner->id;
        ?>
,<?php 
        echo $patientCase->id;
        ?>
);"/> <?php 
    }
    ?>
</td>
</tr>
<tr>
<td colspan="2">地址:<?php 
    echo $patientCase->address;
Esempio n. 26
0
 private function checkPatientInfo($name, $sex, $relation, $province, $city, $birthday, $mobile)
 {/*{{{*/
     $errorcode = 0;
     if("" == trim($name))
     {
         return $errorcode = 176;
     }
     if("" == trim($birthday))
     {
         return $errorcode = 171;
     }
     if("" == trim($sex))
     {
         return $errorcode = 172;
     }
     if("" == trim($province))
     {
         return $errorcode = 173;
     }
     if("" == trim($city))
     {
         return $errorcode = 174;
     }
     if("" == trim($relation))
     {
         return $errorcode = 175;
     }
     if(false == XString::isMobile(trim($mobile)))
     {
         return $errorcode = 110;
     }
     return $errorcode;
 }/*}}}*/
Esempio n. 27
0
 private function checkAddComment($params, $doctor)
 {/*{{{*/
     $this->checkParams($params, $doctor);
     if ($this->curUser->isNull() 
         && ($doctor->trustIndex < CommentDoctorExt::UNNEED_REALNAME_AND_MOBILE_MIN_TRUSTINDEX || $params['skill'] == 0 || $params['attitude'] == 0)
         && (false == $params['userRealName'] || false == $params['userMobile']))
     {
         if( ($doctor->trustIndex < CommentDoctorExt::UNNEED_REALNAME_AND_MOBILE_MIN_TRUSTINDEX
             || $params['skill'] == 0 || $params['attitude'] == 0
             )  && false == XString::isMobile($params['userMobile'])
           )
         {
             MsgHtml::msg('输入错误:请输入有效的手机号码', $from, array('delay' => '10'));
         }
         else
         {
             MsgHtml::msg('输入错误:请输入真实姓名、电话号码', $from, array('delay' => '10'));
         }
     }
     //若填写手机号,则验证手机号的合法性
     if($params['userMobile'])
     {
         $cnt = strlen($params['userMobile']);
         if($cnt > 0 && $cnt != 11)
         {
             MsgHtml::msg('输入错误:请输入有效的手机号码', $from, array('delay' => '10'));
         }
     }
 }/*}}}*/
 /**
     * @brief 获取手机号码下的用户
     * @author meihao
     * @exampleUrl 
     *
     * @Param $mobile
     *
     * @Returns   
  */
 public function getUsers4PWD($mobile)
 {/*{{{*/
     if ($mobile == '')
     {
         $this->setErrorCode(826);
         return 0;
     }
     if ($mobile == '13800138000')
     {
         $this->setErrorCode(828);
         return 0;
     }
     if (false == XString::isMobile($mobile))
     {
         $this->setErrorCode(827);
         return 0;
     }
     $userList = DAL::get()->find_all_by_mobile('user', $mobile);
     $users = array();
     foreach ($userList as $user)
     {
         if($this->isValidUserName($user->name))
         {
             $users[$user->id] = $user;
         }
     }
     if (empty($users))
     {
         $this->setErrorCode(8291);
         return 0;
     }
     $infos = array();
     foreach($users as $user)
     {
         if(false == $user->getDoctorOwner()->isNull())
         {
             $info['id'] = $user->id;
             $info['name'] = $user->name;
             $info['isDoctor'] = 1;
             $infos[] = $info;
         }
     }
     foreach($users as $user)
     {
         if($user->getDoctorOwner()->isNull())
         {
             $info['id'] = $user->id;
             $info['name'] = $user->name;
             $info['isDoctor'] = 0;
             $infos[] = $info;
         }
     }
     $this->content = $infos;
 }/*}}}*/
	/**
	 * 不用Seeion这个方法目前有安全隐患 
	 */
    public function step1update($request, $response)
    {
    	$doctorId = Codec::getInstance()->decodeId($request->doctor_id);
    	$userName = $request->username;
    	$email = $request->email;
		$phone = $request->phone;
		$phone_note = $request->phone_note;
		$phonePrefix = $request->phonePrefix;
        $phone = (empty($phonePrefix)) ? $phone : $phonePrefix."-".$phone;

		$mobile = $request->mobile;
		$realName = $request->realname;
		$password = $request->password;
		$urlAry = array( 
			'u' => $userName,
			'r' => $realName,
			'e' => $email,
			'p' => $phone,
			'm' => $mobile,
			'x' => $password,
			'y' => $phone_note,
            'doctor_id' => Codec::getInstance()->encodeId($doctorId)
        );
        if (!empty($email) && XString::isEmail($email) == false)
			$err = "邮件格式错误";
		if (!empty($phone) && false == XString::isPhone($phone)) $err = "电话格式错误";
        if (!empty($mobile) && false == XString::isMobile($mobile))
            $err = "您填写的手机号码不合要求,请修改后重新提交";
        $valueUserMobile = UserClient::getInstance()->getSpaceByUserMobile($mobile);
        if(empty($err) && !empty($mobile) && $valueUserMobile)
            $err = "此手机号码已经绑定了注册医生,请重新确定手机号";
		
		$user = UserClient::getInstance()->getCurrentUser();
		if(empty($err))
		{
			if (empty($phone_note) == false)
				$phone .= "($phone_note)";
			$data = array(
				'email' => $email,
				'phone' => $phone,
				'mobile' => $mobile,
				'realName' => $realName,
			);
			$userId = UserClient::getInstance()->modifyInfoNew($user->id, $data);
			if ($userId > 0)
			{
				if (empty($doctorId))
					header('Location: '.$response->router->urlfor('doctorreg/step2locate', array()));
				else
					header('Location: '.$response->router->urlfor('doctorreg/step2bind', array('doctor_id'=>$doctorId)));
			}
			else
			{
				header('Location: '.$response->router->urlfor('doctorreg/step1account', array(
					'doctor_id'=>Codec::getInstance()->$doctorId, 
					'msg'=>urlencode('修改失败,请稍后再试')
				)));
			}
		}
		else
		{
            $urlAry['msg'] = $err;
			header('Location: '.$response->router->urlfor('doctorreg/step1account', $urlAry));
		}
		exit();
    }