示例#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);
     }
 }
示例#3
0
 public function addHospital($postArr)
 {
     $retArr = array('status' => 0, 'message' => '', 'hospital' => null);
     // print_r($postArr);exit;
     //数据检查
     if (empty($postArr)) {
         $retArr['message'] = '数据不合法';
         return $retArr;
     }
     /*if(empty($postArr['hospitalname'])) {
           $retArr['message'] = '商户名称不能为空';
           return $retArr;
       }*/
     if (empty($postArr['mobile'])) {
         $retArr['message'] = '手机不能为空';
         return $retArr;
     }
     $old = $this->getHospital(null, array('mobile' => $postArr['mobile']), array('aggregated' => true));
     if ($old) {
         $retArr['status'] = 1;
         $retArr['message'] = '该商户已存在';
         return $retArr;
     }
     //end 数据检查
     $this->_trim_add_data($postArr);
     //整理数据
     $_flag = 'build' == $postArr['type'] ? 1 : 9;
     do {
         $postArr['id'] = $_flag . CTool::uniqueId(6);
         // $id = $dbHospital->add($postArr);
         $id = $this->addAtom($this->tHospital, $postArr);
     } while (!$id && ($loop = isset($loop) ? ++$loop : 1) < 10);
     if ($id) {
         $retArr['id'] = $id;
         $retArr['hospital'] = $this->getHospital($id);
         $retArr['status'] = 1;
         $retArr['message'] = '添加商户成功';
     } else {
         $retArr['message'] = '系统繁忙';
     }
     return $retArr;
 }
示例#4
0
 function actionEntry()
 {
     error_reporting(1);
     $tradeid = $this->get('tradeid');
     $orderid = $this->get('orderid');
     if (!$tradeid && !$orderid) {
         $this->display('wxpay-error');
     }
     //支付完成要返回的页面=================================
     if ($redirect_url = $this->get('redirect_url')) {
         $session = $this->getSession();
         $session->set('redirect_url', $redirect_url);
     }
     //支付完成要返回的页面==============================end
     $MOrder = $this->LoadApiModel('order');
     $retArr = $MOrder->getTradeOrderDetail($tradeid, $orderid);
     // echo "$tradeid ===";
     // $this->dump($retArr);
     if (1 == intval($retArr['status'])) {
         $orderArr = $retArr['orders'];
         if (0 == intval($retArr['userid'])) {
             //匿名用户
             $addressinfo = $orderArr[0]['addressinfo'];
             $address = json_decode($addressinfo, true);
         } else {
             //注册用户
             $address = $retArr['address'];
         }
         // $payship   = $retArr['payship'];
         // $invoice   = $retArr['invoice'];
         $detailArr = $retArr['order_detail'];
         $body = '';
         foreach ($detailArr as $item) {
             $body .= $item['title'] . ' ';
         }
         $subject = '购买:' . CMb::mbCut(CTool::RemoveSlashes($body), 30);
         $body = CMb::mbCut($body, 200);
         //写入数据库
         $MPay = $this->LoadApiModel('pay');
         $group_detailArr = $detailArr;
         CTool::table2tree($group_detailArr, 'orderid');
         // $this->dump($group_detailArr);
         foreach ($orderArr as $order) {
             $_oid = $order['id'];
             $group_goodsArr = $group_detailArr[$_oid];
             //此份订单的所有商品
             $title = '购买:';
             foreach ($group_goodsArr as $r) {
                 $title .= $r['title'] . ',';
             }
             $title = trim($title, ',');
             $addArr = array('orderid' => $_oid, 'tradeid' => $order['tradeid'], 'userid' => $order['userid'], 'storeid' => $order['storeid'], 'title' => $title, 'bankid' => 30, 'bank' => 'wxpay', 'money' => $order['amount_pay'], 'name' => $address['consignee'], 'mobile' => $address['telphone'], 'email' => $address['email'], 'status' => 10);
             $old = $MPay->getPay($order['id']);
             CLog::WriteLog(array($old, $order['id']), 'pay-order');
             if (!$old) {
                 $rArr = $MPay->addPay($addArr);
             }
             // $this->dump($rArr);
         }
         //end 写入数据库
         //wx支付相关==================================
         $wxpay = new WxPay();
         $dataArr['title'] = $title;
         $dataArr['money'] = floatval($retArr['total_amount_pay']) * 100;
         $dataArr['out_trade_no'] = $tradeid ? $tradeid : $orderid;
         $dataArr['payUrl'] = $this->getconfig('HOME_WWW') . '/pay/wxpay/?tradeid=' . $tradeid;
         $dataArr['notify_url'] = $this->getconfig('HOME_WWW') . '/pay/wxpay/notify';
         $code = $this->get('code');
         try {
             $jsApiParameters = $wxpay->WxJsPayInterface($code, $dataArr);
             $warning = ob_get_clean();
             if ($warning) {
                 throw new Exception($warning, 1);
             }
         } catch (Exception $e) {
             print $e->getMessage();
             // exit('canceled');
             $this->display('wxpay-error');
         }
         $this->assign('jsApiParameters', $jsApiParameters);
         //wx支付相关===============================end
     }
     $jsApiParametersArr = json_decode($jsApiParameters, true);
     if (isset($jsApiParametersArr['package']) && 'prepay_id=' == $jsApiParametersArr['package']) {
         // $this->dump($jsApiParametersArr);exit;//prepay_id is null
         $this->display('wxpay-error');
     }
     $this->assign('tradeid', $tradeid);
     $this->assign('orderid', $orderid);
     $this->display('wxpay-pre');
 }