示例#1
0
 function actionLogin()
 {
     $jArr = array('status' => 0, 'message' => '非法请求');
     $time_before = CTool::getUTime();
     $postArr = $this->posts('loginname,password');
     $loginname = $postArr['loginname'];
     if ($this->isPost()) {
         $MUser = $this->LoadApiModelMedical('user');
         $exArr = array('join_pass' => true);
         if (CUtil::IsIdcard($loginname)) {
             $whArr = array('idcard' => $loginname);
         } else {
             $whArr = array('mobile' => $loginname);
         }
         $user = $MUser->getUser(null, $whArr, $exArr);
         // print_r($user);
         if ($user && isset($user['user_pass'])) {
             $pass =& $user['user_pass'];
             if ($postArr['password'] == $pass['password']) {
                 // print_r(json_decode($user['privileges'],true));
                 $role = $user['role'] = intval($user['role']);
                 $userid = $user['id'];
                 //生成token------------------
                 $lastime = date("Y-m-d H:i:s");
                 $retArr = $MUser->updateUser($userid, array('lastime' => $lastime));
                 $token = $MUser->makeToken($userid, $lastime);
                 // $MUser->verifyToken($token);
                 //生成token---------------end
                 $jArr['status'] = 1;
                 $jArr['token'] = $token;
                 $this->response(array('token' => $token, 'role' => $role, 'userid' => $userid));
             } else {
                 $jArr['message'] = '密码不正确';
             }
             unset($pass['password']);
         } else {
             $jArr['message'] = '用户不存在';
         }
     }
     $time_after = CTool::getUTime();
     $elapsed = sprintf("%.4f", $time_after - $time_before);
     $jArr['elapsed'] = $elapsed;
     // print_r($jArr);
     // $this->output($jArr);
     $this->error($jArr['message']);
 }
示例#2
0
 function actionImport()
 {
     $userid = $this->userid;
     $MUser = $this->LoadApiModelMedical('user');
     $user = $MUser->getUser($userid);
     if ($user && $this->post('filexls')) {
         $time_before = CTool::getUTime();
         $filexls = $this->post('filexls');
         $xls = new CExcel();
         $uploadLoc = $this->getLoc('_data');
         $filexls = $uploadLoc . $filexls;
         $sheetArr = $xls->getData($filexls);
         // print_r($sheetArr);exit;
         // exit;
         /*
         excel中的数据分为三段:
             1, 基本信息
             2, 规格信息
             3, 详细信息
             其中2,3统统存放到detail中
         */
         if ($sheetArr) {
             foreach ($sheetArr as $sheet => $dataArr) {
                 // print_r($dataArr);exit;
                 if ($dataArr) {
                     //----------------------------------------------------
                     $fields = $dataArr[1];
                     //第1行为字段信息
                     // print_r($fields);exit;
                     $pos = array_search('-', array_values($fields));
                     //第一个'-'的位置
                     // print_r($fields);
                     $bases = $fields;
                     //基本信息(arr)
                     $specs = array_slice($fields, $pos + 1);
                     //规格信息(arr)
                     // $this->dump($fields);
                     //----------------------------------------------------
                     //----------------------------------------------------
                     $xvalArr = array_slice($dataArr, 1);
                     $valueArr = $partionArr = array();
                     $restype = $this->post('restype');
                     // print_r($dataArr);exit;
                     foreach ($xvalArr as $k => $xrow) {
                         if (empty($xrow['A']) && !isset($last_row)) {
                             break;
                         }
                         //数据有问题
                         $row = array();
                         // if(empty($xrow['A']))continue; //第一栏为空
                         $attnameArr = $attvalArr = array();
                         //属性名和属性值
                         foreach ($bases as $c => $field) {
                             //c为excel中的列名(A,B...)
                             //field为excel中的第一行的值(业务上的字段) 产品品牌
                             $field = trim($field);
                             $xval = trim($xrow[$c]);
                             $row['hospitalid'] = $user['hospitalid'];
                             if ('身份证号' == $field) {
                                 $row['idcard'] = trim($xval);
                             } elseif (false !== strpos($field, '手机号')) {
                                 $row['mobile'] = floatval($xval);
                             } elseif (false !== strpos($field, '姓名')) {
                                 $row['username'] = trim($xval);
                             } elseif (false !== strpos($field, '年龄')) {
                                 //针对机械
                                 $row['age'] = trim($xval);
                             } elseif (false !== strpos($field, '角色id')) {
                                 $row['role'] = intval($xval);
                             } elseif (false !== strpos($field, '所属医院')) {
                                 /*$title  = trim($xval);
                                   $MHospital = $this->LoadApiModelMedical('hospital');
                                   $hospital = $MHospital->getHospital(null,array('title'=>$title));
                                   if($hospital){
                                       $row['hospitalid'] = $hospital['id'];
                                   }*/
                             } elseif (false !== strpos($field, '科室')) {
                                 $row['deptname'] = trim($xval);
                             } elseif (false !== strpos($field, '民族ID')) {
                                 $row['ethnic'] = trim($xval);
                             } elseif (false !== strpos($field, '地址')) {
                                 $row['address'] = trim($xval);
                             } elseif (false !== strpos($field, '电话')) {
                                 $row['home_phone'] = trim($xval);
                             } elseif (false !== strpos($field, '住院号')) {
                                 $row['num_ill'] = trim($xval);
                             } elseif (false !== strpos($field, '入院日期')) {
                                 $row['date_in'] = trim($xval);
                             } elseif (false !== strpos($field, '出院日期')) {
                                 $row['date_out'] = trim($xval);
                             }
                         }
                         $valueArr[] = $row;
                     }
                     // print_r($valueArr);exit;
                     //----------------------------------------------------
                     // break; detail
                 }
                 break;
                 //只读一页
             }
         }
         //导入数据========================================
         // print_r($valueArr);
         $dataArr = array();
         $importinfos = array();
         if ($valueArr) {
             $MUser = $this->LoadApiModelMedical('user');
             foreach ($valueArr as $row) {
                 if (empty($row['hospitalid']) || empty($row['idcard']) || empty($row['username'])) {
                     $importinfos[] = array('code' => 1, 'message' => '数据不合法');
                     continue;
                 }
                 $retArr = $MUser->addUser($row);
                 $importinfos[] = array('code' => 1 == $retArr['status'] ? 0 : 1, 'message' => $retArr['message']);
             }
             // print_r($retArr);
             // print_r($valueArr);
             // @unlink($filexls);
         }
         $time_after = CTool::getUTime();
         $Elapse = sprintf("%.4f", $time_after - $time_before);
         $dataArr['elapsed'] = $Elapse;
         $dataArr['total'] = count($valueArr);
         $dataArr['importinfos'] = $importinfos;
         //end 导入数据====================================
         // $jArr['data'] = $valueArr;
         $this->response($dataArr);
     }
 }