コード例 #1
0
ファイル: MProject.php プロジェクト: MedicalProjectto/medical
 public function movePatient($projectid, $patientid, $doctorid_new, $doctorid_old)
 {
     $logfile = 'MProject';
     if (empty($patientid)) {
         CLog::WriteLog(array('msg' => 'patientid不合法', 'patientid' => $patientid), $logfile);
         return false;
     }
     $project = $this->getProject($projectid);
     if (!$project) {
         CLog::WriteLog(array('msg' => '项目不存在', 'projectid' => $projectid), $logfile);
         return false;
     }
     $MUser = $this->LoadApiModelMedical('user');
     // print_r($patientArr);
     $patient = $MUser->getUser($patientid, array('role' => -10));
     // var_dump($patient);
     if (empty($patient)) {
         CLog::WriteLog(array('msg' => '病人不存在', 'patientid' => $patientid), $logfile);
         return false;
     }
     $doctor = $MUser->getUser($doctorid_new, array('role' => 10));
     if (empty($doctor)) {
         CLog::WriteLog(array('msg' => 'doctorid_new不存在', 'doctorid_new' => $doctorid_new), $logfile);
         return false;
     }
     $doctor_old = $MUser->getUser($doctorid_old, array('role' => 10));
     if (empty($doctor_old)) {
         CLog::WriteLog(array('msg' => 'doctorid_old不存在', 'doctorid_old' => $doctorid_old), $logfile);
         return false;
     }
     // var_dump($doctorid_old);
     //准备要修改的病人记录(多条)
     $upArr = array('doctorid' => $doctorid_new);
     CLog::WriteLog(array('msg' => '执行updateData', 'upArr' => $upArr), $logfile);
     $ok = $this->updateData($this->tPPatient, $upArr, array('projectid' => $projectid, 'patientid' => $patientid));
     if (!$ok) {
         return false;
     }
     //获取项目下病人的个数(项目下的不用更新)
     /*$num_patient = $this->getCount($this->tPPatient, array('projectid'=>$projectid));
       if($num_patient > 0){
           $this->updateProject($projectid, array('num_patient'=>$num_patient));
       }*/
     //end 获取项目下病人的个数
     //获取医生下的病人数,包括新、旧
     //新
     $num_patient = $this->getCount($this->tPPatient, array('projectid' => $projectid, 'doctorid' => $doctorid_new));
     $this->updateData($this->tPDoctor, array('num_patient' => $num_patient), array('projectid' => $projectid, 'doctorid' => $doctorid_new));
     //旧
     $num_patient = $this->getCount($this->tPPatient, array('projectid' => $projectid, 'doctorid' => $doctorid_old));
     $this->updateData($this->tPDoctor, array('num_patient' => $num_patient), array('projectid' => $projectid, 'doctorid' => $doctorid_old));
     //end 获取医生的个数
     //获取医院下(pi)的病人数,包括新、旧
     //新
     $num_patient = $this->getCount($this->tPPatient, array('projectid' => $projectid, 'hospitalid' => $doctor['hospitalid']));
     $this->updateData($this->tPPi, array('num_patient' => $num_patient), array('projectid' => $projectid, 'hospitalid' => $doctor['hospitalid']));
     //旧
     $num_patient = $this->getCount($this->tPPatient, array('projectid' => $projectid, 'hospitalid' => $doctor_old['hospitalid']));
     $this->updateData($this->tPPi, array('num_patient' => $num_patient), array('projectid' => $projectid, 'hospitalid' => $doctor_old['hospitalid']));
     //end 获取医院下(pi)的病人数
     return true;
 }
コード例 #2
0
ファイル: MUser.php プロジェクト: MedicalProjectto/medical
 public function updateUser($userid, $postArr)
 {
     $logfile = 'updateUser';
     $retArr = array('status' => 0, 'message' => '', 'user' => null);
     CLog::WriteLog(array('msg' => '所有参数', 'userid' => $userid, 'postArr' => $postArr), $logfile);
     //数据检查
     if (empty($postArr) || !$userid) {
         $retArr['message'] = '数据不合法';
         return $retArr;
     }
     $old = $this->getuser($userid);
     if (!$old) {
         $retArr['message'] = '员工不存在!';
         return $retArr;
     }
     if (!empty($postArr['mobile'])) {
         $old = $this->getuser(null, array('mobile' => $postArr['mobile']));
         if ($old) {
             $retArr['message'] = '该手机已存在';
             return $retArr;
         }
     }
     //end 数据检查
     $this->_trim_update_data($postArr);
     //整理数据
     $ok = $this->updateData($this->user, $postArr, $userid);
     if (false !== $ok) {
         if ($this->getAtom($this->tProfile, array('userid' => $userid))) {
             $this->updateData($this->tProfile, $postArr, array('userid' => $userid));
         } else {
             $postArr['userid'] = $userid;
             $this->addAtom($this->tProfile, $postArr);
         }
         $retArr['message'] = '修改成功';
         $retArr['status'] = 1;
     } else {
         $retArr['message'] = '修改失败';
     }
     return $retArr;
 }
コード例 #3
0
ファイル: MTpl.php プロジェクト: MedicalProjectto/medical
 public function saveTplReport($reportid = null, $periodid = null, $postArr = array(), $details = array())
 {
     $logfile = 'MTpl';
     $retArr = array('status' => 0, 'message' => '数据不合法', 'report' => null);
     //数据检查
     $postArr = $this->removeArrayNull($postArr);
     if (!empty($details)) {
         if (empty($details['detailid']) || empty($details['answer'])) {
             $retArr['message'] = '报告单数据不合法';
             return $retArr;
         }
     }
     if (empty($postArr) || empty($postArr['tplid']) || empty($postArr['hospitalid']) || empty($postArr['userid'])) {
         $retArr['message'] = '数据不完整';
         return $retArr;
     }
     if (empty($postArr['patientid'])) {
         $retArr['message'] = '无病人信息,不能继续';
         return $retArr;
     }
     $tpl = $this->getTpl($postArr['tplid'], null, array('join_detail' => true));
     if (!$tpl) {
         $retArr['message'] = 'tpl不存在';
         return $retArr;
     }
     $postArr['utime'] = date("Y-m-d H:i:s");
     //end 数据检查
     //业务上的数据检查
     if (!$reportid) {
         //针对添加作数据检查
         /*if(!$periodid){
               $retArr['message'] = '周期不存在';
               return $retArr;
           }*/
         $periodinfo = $this->getAtom($this->tPeriod, $periodid);
         if (!$periodinfo) {
             /*$retArr['message'] = '周期不存在';
               return $retArr;*/
             $periodinfo = array('periodname' => '', 'tplid' => $postArr['tplid'], 'id' => 0);
         }
         $postArr['title'] = $periodinfo['periodname'];
         $postArr['periodid'] = $periodid;
         $period = intval($tpl['period']);
         //周期长度
         $freqs = 1;
         //intval($tpl['freqs']);  //频次 一律为1
         if ($periodinfo || 0 == $period) {
             //一次性
             //修改于公元2015年12月21日
             //必经之路
             // $_wh_old_rpt = array('userid'=>$postArr['userid'],'tplid'=>$postArr['tplid']);
             $_wh_old_rpt = array('tplid' => $postArr['tplid'], 'periodid' => $periodid);
         } else {
             //计算当前时间处于第几个周期,并得到这个周期的开始日期
             $t_start = strtotime(date("Y-m-d", strtotime($tpl['ctime'])));
             $s_period = intval((time() - $t_start) / (86400 * $period));
             $last_p_s = date("Y-m-d 00:00:00", $t_start + 86400 * $period);
             //最近一个周期的起始时间
             $_wh_old_rpt = array('userid' => $postArr['userid'], 'tplid' => $postArr['tplid'], 'utime>' => $last_p_s);
         }
         // $old = $this->getTplReport(null,$_wh_old_rpt,array('aggregated'=>true,'order'=>'id desc'));
         $old = $this->getTplReport(null, $_wh_old_rpt, array('aggregated' => true, 'order' => 'id desc'));
         if ($old) {
             //如果已经存在一分报告
             //获取已填写的次数
             $cnteds = $this->getCount($this->tReport, $_wh_old_rpt);
             $utime = $old['utime'];
             //上次保存时间
             if (1 || 0 == $period || $cnteds >= $freqs) {
                 // if($freqs > 1) return;  //如果是多次就返回,因为不知道更新哪条好(也可以更新最后一条)
                 $reportid = $old['id'];
                 //最近一周期已经填写过了就不能再添加了,赋值reportid是为了接下来作更新操作
             }
             /*
                             switch($period){
                                 case 0:
                                     $reportid = $old['id'];
                                     break; //一次性的就不能再添加了
                                 case -1:
                                     if(CTime::IsToday($utime) && $cnteds>=$freqs){//是今天
                                         $reportid = $old['id'];
                                     }
                                     break;
                                 case -7:
                                     if(CTime::IsWeek($utime)){//是本周
                                         $reportid = $old['id'];
                                     }
                                     break;
                                 case -30:
                                     if(CTime::IsMonth($utime)){//是本月
                                         $reportid = $old['id'];
                                     }
                                     break;
                                 case -365:
                                     if(CTime::IsYear($utime)){//是当年
                                         $reportid = $old['id'];
                                     }
                                     break;
                             }*/
         }
     }
     //end 业务上的数据检查
     CLog::WriteLog(array('msg' => 'commit数据', 'reportid' => $reportid, 'periodid' => $periodid, 'postArr' => $postArr, 'details' => $details), $logfile);
     if ($reportid) {
         $ok = $this->updateData($this->tReport, $postArr, $reportid);
     } else {
         $postArr['ctime'] = $postArr['utime'];
         $ok = $reportid = $this->addAtom($this->tReport, $postArr);
     }
     if (CUtil::NoFalse($ok)) {
         $report = $this->getTplReport($reportid, null, array('aggregated' => true));
         //更新报告值=====================================
         if ($details) {
             $valueArr = CUtil::formArrayFormatting($details, 0);
             CLog::WriteLog(array('msg' => 'commit值', 'valueArr' => $valueArr), $logfile);
             $tpl_did_arr = $this->getArrayColumn($valueArr, 'detailid');
             $detailArr = $this->getData($this->tTdetail, array('id in' => $tpl_did_arr), array('limit' => count($tpl_did_arr), 'keyas' => 'id'));
             $termid_arr = $this->getArrayColumn($detailArr, 'termid');
             $MTerm = $this->LoadApiModelMedical('term');
             $termArr = $MTerm->getTerms($termid_arr, null, array('limit' => count($termid_arr), 'only_data' => true, 'keyas' => 'id', 'fields' => '^ctime,utime'));
             // print_r($termArr);
             foreach ($valueArr as $k => &$r0005) {
                 if (empty($r0005['detailid'])) {
                     unset($valueArr[$k]);
                     continue;
                 }
                 //检查detailid在数据库中是否存在,不存在则删除
                 if (!isset($detailArr[$r0005['detailid']])) {
                     unset($valueArr[$k]);
                     continue;
                 }
                 //检查指标是否在指标库中存在,存在则将termid及输入类型存放tpl_report_detail中
                 $detail = $detailArr[$r0005['detailid']];
                 if (isset($termArr[$detail['termid']])) {
                     $term = $termArr[$detail['termid']];
                     $r0005['termid'] = $term['id'];
                     $r0005['itype'] = $term['itype'];
                     $r0005['vtype'] = $term['vtype'];
                 }
                 $r0005 = $this->removeArrayNull($r0005);
             }
             if (!empty($valueArr)) {
                 $_wh_ = array('reportid' => $reportid);
                 //查询详情(tpl_detail)的条件
                 $oldValArr = $this->getMore($this->tRdetail, $_wh_, array('only_data' => true, 'keyas' => 'id', 'aggregated' => true, 'limit' => 1000));
                 // $this->deleteData($this->tRdetail, $_wh_, 1000);
                 $sorter = 127;
                 foreach ($valueArr as $r0003) {
                     $r0003['tplid'] = $postArr['tplid'];
                     $r0003['reportid'] = $reportid;
                     $r0003['sorter'] = $sorter;
                     $r0003['utime'] = date("Y-m-d H:i:s");
                     $_old_id = intval($r0003['id']);
                     unset($r0003['id']);
                     if (0 == $_old_id) {
                         //表示是新增的
                         $old_rdetail = $this->getAtom($this->tRdetail, array('reportid' => $reportid, 'detailid' => $r0003['detailid']));
                         if ($old_rdetail) {
                             //如果是同一报告中的同一指标已存在,那只能修改
                             // print_r($r0003);itype
                             // echo 'eeeeeeeeeeeeeeeee';
                             $this->updateData($this->tRdetail, $r0003, $old_rdetail['id']);
                         } else {
                             $this->addAtom($this->tRdetail, $r0003);
                         }
                     } else {
                         $r0003['id'] = $_old_id;
                         if (isset($oldValArr[$_old_id])) {
                             $r0003 = array_merge($oldValArr[$_old_id], $r0003);
                             //原id存在
                         }
                         $this->updateData($this->tRdetail, $r0003, $_old_id);
                     }
                     $sorter--;
                 }
                 //填充未填写的值
                 if (isset($tpl['tpl_detail'])) {
                     $tplValList = $tpl['tpl_detail'];
                     foreach ($tplValList as $tplVal) {
                         $_detailid = $tplVal['id'];
                         $_old = $this->getAtom($this->tRdetail, array('reportid' => $reportid, 'detailid' => $_detailid));
                         if (!$_old) {
                             $blankArr = array('reportid' => $reportid, 'detailid' => $_detailid, 'tplid' => $tplVal['tplid'], 'termid' => $tplVal['termid'], 'utime' => date('Y-m-d H:i:s'));
                             $this->addAtom($this->tRdetail, $blankArr);
                         }
                     }
                 }
                 //end 填充未填写的值
             }
         }
         //更新报告值==================================end
         $retArr['report'] = $report;
         $retArr['status'] = 1;
         $retArr['message'] = '更新成功';
     }
     return $retArr;
 }
コード例 #4
0
ファイル: KWxpay.php プロジェクト: MedicalProjectto/medical
 function actionNotify()
 {
     $pay = new WxPay();
     $logs = array();
     $wxinfoArr = $pay->NotifyInterface();
     $logs['wxinfoxml'] = $wxinfoArr['xml'];
     //log
     $wxinfo = json_decode(json_encode(simplexml_load_string($wxinfoArr['xml'], 'SimpleXMLElement', LIBXML_NOCDATA)), true);
     if (1 == intval($wxinfoArr['state'])) {
         //成功
         $tradeno = $wxinfo['out_trade_no'];
         $logs['addPay-data'] = $wxinfo;
         $logs['tradeno'] = $tradeno;
         $this->processByTradeno($tradeno, $wxinfo);
     }
     CLog::WriteLog($logs, 'wx-pay');
 }