checkFun($funName); if($boolCheckFun){ //统一验证方式 $boolCheckUser = $this->checkUser(); }else{ //检测方法过滤通过后进入下一步 $boolCheckFun = true; $boolCheckUser = true; } //用于生成返回前台验证时间戳和用户token $jsonData = $this->getDataToken($boolCheckUser); $stepData1 = null; $stepData2 = null; $stepData3 = null; $stepData4 = null; $stepData5 = null; //进入流程处理 if($boolCheckFun && $boolCheckUser){ foreach ($funObj as $key => $json) { $json = json_decode($json); $nodeType = $json->nodeType; $sqlType = $json->sqlType; $parameter = $json->parameter; $sqlString = $json->sqlString; $resultType = $json->resultType; $infoString = $json->infoString; if($nodeType=="step1"){ $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); $stepData1 =$sqlData; }else if($nodeType=="step2"){ //添加处方 if(!$stepData1){ $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); $stepData2 =$sqlData; } }else if($nodeType=="step3"){ //添加药品组 if($stepData1){ $sqlString= $this->getReplace($parameter,$sqlString,$stepData1,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); $stepData3 =$sqlData; }else{ if($stepData2){ $sqlString= $this->getReplace($parameter,$sqlString,$stepData2,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); $stepData3 =$sqlData; } } }else if($nodeType=="step4"){ //添加计划组 if($stepData3){ $sqlString= $this->getReplace($parameter,$sqlString,$stepData3,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); $stepData4 =$sqlData; } }else if($nodeType=="step5"){ //添加计划 if($stepData4){ $consumptionHoursString = explode(',', $this->getParameter("I_consumptionHoursString")); $quantityString = explode(',', $this->getParameter("I_quantityString")); $startTime = $this->getParameter("I_startDate"); $doseType = $this->getParameter("I_doseType"); $drugName = $this->getParameter("I_drugName"); $customerUserId = $this->getParameter("M_id","",$boolCheckUser); $customerFamilyId = $this->getParameter("I_customerFamilyId"); $data_values=null; $data_values1=null; for ($x=0; $x<=count($consumptionHoursString)-1; $x++) { $data_values .= "('".$stepData4['autoid']."','".$startTime." ".$consumptionHoursString[$x]."','".$startTime." ".$consumptionHoursString[$x]."','pending','".$stepData3['autoid']."','".$consumptionHoursString[$x]."','".$quantityString[$x]."','".$doseType."'),"; $data_values1 .="('".$stepData4['autoid']."','服用','".$drugName.$quantityString[$x].$doseType."','".$customerUserId."','".$customerFamilyId."','2','".$startTime." ".$consumptionHoursString[$x].":00','".date("Y-m-d H:i:s", time())."'),"; } $data_values = substr($data_values,0,-1); //去掉最后一个逗号 $data_values1 = substr($data_values1,0,-1); //去掉最后一个逗号 $sqlString= $sqlString . $data_values; $sqlString1= "INSERT INTO hz_pushtask (parameter,title,content,customerUserId,customerFamilyId,eventType,pushTime,createTime) VALUES" . $data_values1; $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); call_user_func(array($_ENV["dbDao"],"insert"),$sqlString1,"return"); $stepData5 =$sqlData; } } } } //最终生成数据 $jsonData= $this->getJson($jsonData,$sqlData,$infoString,$rows,$resultType); //封装后,返回前台json包 $this->codeJson($jsonData); } /** * 用于在Api引擎中解析数组列表方式 * @param string $funName 方式名 * @param array $funOjb 数组列表 * @return json */ public function registerVerifyCode($funName,$funObj) { //不用检测的方法列表 $boolCheckFun = $this->checkFun($funName); if($boolCheckFun){ //统一验证方式 $boolCheckUser = $this->checkUser(); }else{ //检测方法过滤通过后进入下一步 $boolCheckFun = true; $boolCheckUser = true; } //用于生成返回前台验证时间戳和用户token $jsonData = $this->getDataToken($boolCheckUser); $sqlString = "SELECT COUNT(1) as rows FROM hz_verifysmscode t WHERE t.phone='{I_phone}' and type=0 AND DATE(t.createtime)=DATE(SYSDATE())"; $sqlString= $this->getReplace("I_phone",$sqlString,$sqlData,$nodeType,$boolCheckUser); $rows = call_user_func(array($_ENV["dbDao"],"select"),$sqlString,"entity"); if(intval($rows['rows'])<5){ //进入流程处理 if($boolCheckFun && $boolCheckUser){ foreach ($funObj as $key => $json) { $json = json_decode($json); $nodeType = $json->nodeType; $sqlType = $json->sqlType; $parameter = $json->parameter; $sqlString = $json->sqlString; $resultType = $json->resultType; $infoString = $json->infoString; $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); if(!$sqlData){break;} } //发送短信 if($sqlData) { $smsApi =C('SmsApi'); $smsStr ="【南方医院】".$sqlData['code']."(注册验证码),请在20分钟内完成注册。如非本人操作,请忽略。"; $url =$smsApi."&mobile=".$sqlData['phone']."&content=".$smsStr."&ext=1"; $result = call_user_func(array($_ENV["commonClass"],"send_get"),$url); $sqlString = "update hz_verifysmscode set status='$result' where id='".$sqlData['id']."'"; call_user_func(array($_ENV["dbDao"],"update"),$sqlString,"exesql"); $sqlData = array("return"=>"true"); } } }else{ $infoString = "注册验证码一天只能发5条,请明天再试。"; } //最终生成数据 $jsonData= $this->getJson($jsonData,$sqlData,$infoString,$rows,$resultType); //封装后,返回前台json包 $this->codeJson($jsonData); } /** * 用于在Api引擎中解析数组列表方式 * @param string $funName 方式名 * @param array $funOjb 数组列表 * @return json */ public function resetPwdVerifyCode($funName,$funObj) { //不用检测的方法列表 $boolCheckFun = $this->checkFun($funName); if($boolCheckFun){ //统一验证方式 $boolCheckUser = $this->checkUser(); }else{ //检测方法过滤通过后进入下一步 $boolCheckFun = true; $boolCheckUser = true; } //用于生成返回前台验证时间戳和用户token $jsonData = $this->getDataToken($boolCheckUser); $sqlString = "SELECT COUNT(1) as rows FROM hz_verifysmscode t WHERE t.phone='{I_phone}' and type=1 AND DATE(t.createtime)=DATE(SYSDATE())"; $sqlString= $this->getReplace("I_phone",$sqlString,$sqlData,$nodeType,$boolCheckUser); $rows = call_user_func(array($_ENV["dbDao"],"select"),$sqlString,"entity"); if(intval($rows['rows'])<5){ //进入流程处理 if($boolCheckFun && $boolCheckUser){ foreach ($funObj as $key => $json) { $json = json_decode($json); $nodeType = $json->nodeType; $sqlType = $json->sqlType; $parameter = $json->parameter; $sqlString = $json->sqlString; $resultType = $json->resultType; $infoString = $json->infoString; $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); if(!$sqlData){break;} } //发送短信 if($sqlData) { $smsApi =C('SmsApi'); $smsStr ="【南方医院】".$sqlData['code']."(重置密码验证码),请在20分钟内完成重置密码。如非本人操作,请忽略。"; $url =$smsApi."&mobile=".$sqlData['phone']."&content=".$smsStr."&ext=1"; $result = call_user_func(array($_ENV["commonClass"],"send_get"),$url); $sqlString = "update hz_verifysmscode set status='$result' where id='".$sqlData['id']."'"; call_user_func(array($_ENV["dbDao"],"update"),$sqlString,"exesql"); $sqlData = array("return"=>"true"); } } }else{ $infoString = "重置密码验证码一天只能发5条,请明天再试。"; } //最终生成数据 $jsonData= $this->getJson($jsonData,$sqlData,$infoString,$rows,$resultType); //封装后,返回前台json包 $this->codeJson($jsonData); } /** * 用于在Api引擎中解析数组列表方式 * @param string $funName 方式名 * @param array $funOjb 数组列表 * @return json */ public function appointsOrder($funName,$funObj) { //不用检测的方法列表 $boolCheckFun = $this->checkFun($funName); if($boolCheckFun){ //统一验证方式 $boolCheckUser = $this->checkUser(); }else{ //检测方法过滤通过后进入下一步 $boolCheckFun = true; $boolCheckUser = true; } //用于生成返回前台验证时间戳和用户token $jsonData = $this->getDataToken($boolCheckUser); //用于生成返回医院HisUrl和Appkey $hisApi = $this->checkHisApi(); //进入流程处理 if($boolCheckFun && $boolCheckUser && $hisApi){ //检测本地有没有卡 $sqlString = "SELECT COUNT(1) as rows FROM hz_customercard WHERE hospitalId='{I_hospitalId}' AND customerFamilyId ='{I_customerFamilyId}'"; $sqlString= $this->getReplace("I_hospitalId,I_customerFamilyId",$sqlString,$sqlData,$nodeType,$boolCheckUser); $rows = call_user_func(array($_ENV["dbDao"],"select"),$sqlString,"entity"); if(intval($rows['rows'])>=1) { //一天一个医院只能挂号两条 $sqlString = "SELECT COUNT(1) as rows FROM hz_appointsorder t WHERE t.hospitalId='{I_hospitalId}' and t.regDate='{I_regDate}' AND t.customerFamilyId='{I_customerFamilyId}' AND t.resultCode='0' AND t.cancelFlag='1' "; $sqlString= $this->getReplace("I_hospitalId,I_regDate,I_customerFamilyId",$sqlString,$sqlData,$nodeType,$boolCheckUser); $rows = call_user_func(array($_ENV["dbDao"],"select"),$sqlString,"entity"); if(intval($rows['rows'])<2){ //一天一个医院只能挂号两条 $sqlString = "SELECT COUNT(1) as rows FROM hz_appointsorder t WHERE t.hospitalId='{I_hospitalId}' and t.deptId='{I_deptId}' and t.doctorId='{I_doctorId}' and t.regDate='{I_regDate}' AND t.customerFamilyId='{I_customerFamilyId}' AND t.resultCode='0' AND t.cancelFlag='1' "; $sqlString= $this->getReplace("I_hospitalId,I_deptId,I_doctorId,I_regDate,I_customerFamilyId",$sqlString,$sqlData,$nodeType,$boolCheckUser); $rows = call_user_func(array($_ENV["dbDao"],"select"),$sqlString,"entity"); if(intval($rows['rows'])<1){ foreach ($funObj as $key => $json) { $json = json_decode($json); $nodeType = $json->nodeType; $parameter = $json->parameter; $sqlType = $json->sqlType; $xmlString = $json->xmlString; $resultType = $json->resultType; $dataType = $json->dataType; $sqlString = $json->sqlString; $funcName = $json->funcName; $replaceXmlData = $json->replaceXmlData; $returnXmlData = $json->returnXmlData; $infoString =$json->infoString; $isPass = $json->isPass; if($nodeType=="sql"){ $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); if($isPass=="pass"){ if($sqlData){ $sqlData=""; break; } }else{ if(!$sqlData){break;} } if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } }else if($nodeType=="xml"){ //先生成xml,把变量转入 $postData= $this->getReplace($parameter,$xmlString,$sqlData,$nodeType,$boolCheckUser); $postUrl = $this->hisApiReplace($hisApi['hisUrl'],$hisApi['appKey'],$funcName); $returnXml = call_user_func(array($_ENV["commonClass"],"sendDataByCurl"),$postUrl,$postData); //如果为空,则返回HIS的报错 if(empty($returnXml)){ $sqlData = ""; $infoString ="服务器连接返回内容出错"; }else if(strval($returnXml ->resultCode)=="1"){ $sqlData = ""; $infoString = strval($returnXml ->resultDesc); }else { $sqlData = $this->xmlDataReplace($returnXml,$replaceXmlData,$returnXmlData); if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } } if(!$sqlData){break;} } } }else{ $infoString = "同个医生当天只能挂1个号"; } }else{ $infoString = "同个医院当天只能挂2个号"; } }else{ //检测本地预约次数1次 $sqlString = "SELECT COUNT(1) as rows FROM hz_appointsorder WHERE hospitalId='{I_hospitalId}' AND customerFamilyId ='{I_customerFamilyId}' and resultCode='0'"; $sqlString= $this->getReplace("I_hospitalId,I_customerFamilyId",$sqlString,$sqlData,$nodeType,$boolCheckUser); $rows = call_user_func(array($_ENV["dbDao"],"select"),$sqlString,"entity"); if(intval($rows['rows'])<1){ //HIS验证用户名 $sqlString = "SELECT trueName,idNo,address,sex,phone,birthDay,nation FROM hz_customerfamily WHERE id ='{I_customerFamilyId}'"; $sqlString= $this->getReplace("I_customerFamilyId",$sqlString,$sqlData,$nodeType,$boolCheckUser); $data = call_user_func(array($_ENV["dbDao"],"select"),$sqlString,"entity"); $xmlString ="{I_hospitalId}{D_idNo}{D_trueName}"; $postData= $this->getReplace("I_hospitalId,D_idNo,D_trueName",$xmlString,$data,$nodeType,$boolCheckUser); $postUrl = $this->hisApiReplace($hisApi['hisUrl'],$hisApi['appKey'],"confirmPatient"); $returnXml = call_user_func(array($_ENV["commonClass"],"sendDataByCurl"),$postUrl,$postData); //如果为空,则返回HIS的报错 if(empty($returnXml)){ $infoString ="服务器连接返回内容出错"; }else{ $xmlData = $this->xmlDataReplace($returnXml,"cardId,patientId","one"); if(!empty($xmlData["cardId"])) { //HIS验证用户名绑定 $sqlString = "insert into hz_customercard (customerFamilyId,hospitalId,cardType,cardId,patientId,createTime) VALUES ('{I_customerFamilyId}','{I_hospitalId}','1','{D_cardId}','{D_patientId}','{F_timenow}')"; $sqlString= $this->getReplace("I_customerFamilyId,I_hospitalId,D_cardId,D_patientId,F_timenow",$sqlString,$xmlData,$nodeType,$boolCheckUser); $data = call_user_func(array($_ENV["dbDao"],"insert"),$sqlString,"entity"); foreach ($funObj as $key => $json) { $json = json_decode($json); $nodeType = $json->nodeType; $parameter = $json->parameter; $sqlType = $json->sqlType; $xmlString = $json->xmlString; $resultType = $json->resultType; $dataType = $json->dataType; $sqlString = $json->sqlString; $funcName = $json->funcName; $replaceXmlData = $json->replaceXmlData; $returnXmlData = $json->returnXmlData; $infoString =$json->infoString; $isPass = $json->isPass; if($nodeType=="sql"){ $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); if($isPass=="pass"){ if($sqlData){ $sqlData=""; break; } }else{ if(!$sqlData){break;} } if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } }else if($nodeType=="xml"){ //先生成xml,把变量转入 $postData= $this->getReplace($parameter,$xmlString,$sqlData,$nodeType,$boolCheckUser); $postUrl = $this->hisApiReplace($hisApi['hisUrl'],$hisApi['appKey'],$funcName); $returnXml = call_user_func(array($_ENV["commonClass"],"sendDataByCurl"),$postUrl,$postData); //如果为空,则返回HIS的报错 if(empty($returnXml)){ $sqlData = ""; $infoString ="服务器连接返回内容出错"; }else if(strval($returnXml ->resultCode)=="1"){ $sqlData = ""; $infoString = strval($returnXml ->resultDesc); }else { $sqlData = $this->xmlDataReplace($returnXml,$replaceXmlData,$returnXmlData); if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } } if(!$sqlData){break;} } } }else{ //发送HIS挂号 $funObj = C("appointsOrderNew"); foreach ($funObj as $key => $json) { $json = json_decode($json); $nodeType = $json->nodeType; $parameter = $json->parameter; $sqlType = $json->sqlType; $xmlString = $json->xmlString; $resultType = $json->resultType; $dataType = $json->dataType; $sqlString = $json->sqlString; $funcName = $json->funcName; $replaceXmlData = $json->replaceXmlData; $returnXmlData = $json->returnXmlData; $infoString =$json->infoString; $isPass = $json->isPass; if($nodeType=="sql"){ $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); if($isPass=="pass"){ if($sqlData){ $sqlData=""; break; } }else{ if(!$sqlData){break;} } if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } }else if($nodeType=="xml"){ //如果病人不为空 if(empty($xmlData["patientId"])){ //2016年10月31日10:31:12 //如果卡为空,则进建档方式 //建档成功后,用户病人ID接口 //Log::posthis("QuerySchedule:req2\r\n"."*c".call_user_func(array($_ENV["commonClass"],"timestamp"))); $xmlPatString ="{I_hospitalId}{D_idNo}{D_trueName}{D_sex}{D_birthDay}{D_phone}{D_nation}
{D_address}
"; $postData= $this->getReplace("I_hospitalId,D_idNo,D_trueName,D_sex,D_birthDay,D_phone,D_nation,D_address",$xmlPatString,$data,$nodeType,$boolCheckUser); $postUrl = $this->hisApiReplace($hisApi['hisUrl'],$hisApi['appKey'],"createPatient"); $returnXml = call_user_func(array($_ENV["commonClass"],"sendDataByCurl"),$postUrl,$postData); if(empty($returnXml)){ $sqlData = ""; $infoString ="服务器连接返回内容出错"; }else if(strval($returnXml ->resultCode)=="1"){ $sqlData = ""; $infoString = strval($returnXml ->resultDesc); }else { //把病人ID加入 $tempPatData= array("patientId" => $returnXml ->patientId ); $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $tempPatData); } }else{ //把病人ID加入 $tempPatData = array("patientId" => $xmlData["patientId"]); $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $tempPatData); } //先生成xml,把变量转入 $postData= $this->getReplace($parameter,$xmlString,$sqlData,$nodeType,$boolCheckUser); $postUrl = $this->hisApiReplace($hisApi['hisUrl'],$hisApi['appKey'],$funcName); $returnXml = call_user_func(array($_ENV["commonClass"],"sendDataByCurl"),$postUrl,$postData); //如果为空,则返回HIS的报错 if(empty($returnXml)){ $sqlData = ""; $infoString ="服务器连接返回内容出错"; }else if(strval($returnXml ->resultCode)=="1"){ $sqlData = ""; $infoString = strval($returnXml ->resultDesc); }else { $tempPatData = $this->xmlDataReplace($returnXml,$replaceXmlData,$returnXmlData); if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $tempPatData); } } if(!$sqlData){break;} } } } } }else{ $infoString = "非首诊须绑定诊疗卡"; } } } //最终生成数据 $jsonData= $this->getJson($jsonData,$sqlData,$infoString,0,$resultType); //封装后,返回前台json包 $this->codeJson($jsonData); } /** * 用于在Api引擎中解析数组列表方式 * @param string $funName 方式名 * @param array $funOjb 数组列表 * @return json */ public function getDoctorBookingScheduleSyn($funName,$funObj) { //不用检测的方法列表 $boolCheckFun = $this->checkFun($funName); if($boolCheckFun){ //统一验证方式 $boolCheckUser = $this->checkUser(); }else{ //检测方法过滤通过后进入下一步 $boolCheckFun = true; $boolCheckUser = true; } //用于生成返回前台验证时间戳和用户token $jsonData = $this->getDataToken($boolCheckUser); //用于生成返回医院HisUrl和Appkey $hisApi = $this->checkHisApi(); //进入流程处理 if($boolCheckFun && $boolCheckUser && $hisApi){ foreach ($funObj as $key => $json) { //$json = json_decode(iconv("GB2312","UTF-8//IGNORE",$json)); $json = json_decode($json); $nodeType = $json->nodeType; $parameter = $json->parameter; $sqlType = $json->sqlType; $xmlString = $json->xmlString; $resultType = $json->resultType; $dataType = $json->dataType; $sqlString = $json->sqlString; $funcName = $json->funcName; $replaceXmlData = $json->replaceXmlData; $returnXmlData = $json->returnXmlData; $infoString =$json->infoString; $isPass = $json->isPass; if($nodeType=="sql"){ $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); if($isPass=="pass"){ if($sqlData){ $sqlData=""; break; } }else{ if(!$sqlData){break;} } if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } }else if($nodeType=="xml"){ $postData= $this->getReplace($parameter,$xmlString,$sqlData,$nodeType,$boolCheckUser); $postUrl = $this->hisApiReplace($hisApi['hisUrl'],$hisApi['appKey'],$funcName); $returnXml = call_user_func(array($_ENV["commonClass"],"sendDataByCurl"),$postUrl,$postData); //如果为空,则返回HIS的报错 if(empty($returnXml)){ $sqlData = ""; $infoString ="服务器连接返回内容出错"; }else if(strval($returnXml ->resultCode)=="1"){ $sqlData = ""; $infoString = strval($returnXml ->resultDesc); }else { /* 原来的 foreach($returnXml as $key=>$ri){ $TimeRegInfoList = $ri->TimeRegInfoList; foreach($TimeRegInfoList as $key=>$tril){ $timeRegInfo = $tril->timeRegInfo; $replaceXmlDataTemp = null; foreach($timeRegInfo as $key=>$tri){ $sqlData[] = array( 'hospitalId' => I("hospitalId"), 'deptId' => I("deptId"), 'doctorId' => strval($ri->doctorId), 'regDate' => strval($tril->regDate), 'regWeekDay' => strval($tril->regWeekDay), 'timeFlag' => strval($tri->timeFlag), 'regTotalCount' => strval($tri->regTotalCount), 'regLeaveCount' => strval($tri->regleaveCount), 'regFee' => strval($tri->regFee), 'treatFee' => strval($tri->treatFee) ); } } } */ $Schedule = $returnXml->Schedules->Schedule; foreach($Schedule as $key=>$v){ if(strval($v->ScheduleStatus)=="N" || strval($v->ScheduleStatus)=="A"){ $timeFlag = ""; if(strval($v->SessionCode)=="S") { $timeFlag ="1"; }else if(strval($v->SessionCode)=="X"){ $timeFlag ="2"; }else if(strval($v->SessionCode)=="W"){ $timeFlag ="3"; } $sqlData[] = array( 'hospitalId' => I("hospitalId"), 'deptId' => I("deptId"), 'doctorId' => strval($v->DoctorCode), 'regDate' => strval($v->ServiceDate), 'regWeekDay' => strval($v->WeekDay), 'timeFlag' => $timeFlag, 'regTotalCount' => strval($v->AvailableTotalNum), 'regLeaveCount' => strval($v->AvailableLeftNum), 'regFee' => (float)(strval($v->RegFee))*100, 'treatFee' => (float)(strval($v->CheckupFee))*100 ); } } if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } } if(!$sqlData){break;} } } } //最终生成数据 $jsonData= $this->getJson($jsonData,$sqlData,$infoString,0,$resultType); //封装后,返回前台json包 $this->codeJson($jsonData); } /** * 用于在Api引擎中解析数组列表方式 * @param string $funName 方式名 * @param array $funOjb 数组列表 * @return json */ public function getGuideList($funName,$funObj) { //不用检测的方法列表 $boolCheckFun = $this->checkFun($funName); if($boolCheckFun){ //统一验证方式 $boolCheckUser = $this->checkUser(); }else{ //检测方法过滤通过后进入下一步 $boolCheckFun = true; $boolCheckUser = true; } //用于生成返回前台验证时间戳和用户token $jsonData = $this->getDataToken($boolCheckUser); //用于生成返回医院HisUrl和Appkey $hisApi = $this->checkHisApi(); //进入流程处理 if($boolCheckFun && $boolCheckUser && $hisApi){ //print_r($funObj); foreach ($funObj as $key => $json) { //$json = json_decode(iconv("GB2312","UTF-8//IGNORE",$json)); $json = json_decode($json); $nodeType = $json->nodeType; $parameter = $json->parameter; $sqlType = $json->sqlType; $xmlString = $json->xmlString; $resultType = $json->resultType; $dataType = $json->dataType; $sqlString = $json->sqlString; $funcName = $json->funcName; $replaceXmlData = $json->replaceXmlData; $returnXmlData = $json->returnXmlData; $infoString =$json->infoString; $isPass = $json->isPass; if($nodeType=="sql"){ $sqlString= $this->getReplace($parameter,$sqlString,$sqlData,$nodeType,$boolCheckUser); $sqlData = call_user_func(array($_ENV["dbDao"],$sqlType),$sqlString,$resultType); if($isPass=="pass"){ if($sqlData){ $sqlData=""; break; } }else{ if(!$sqlData){break;} } if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } }else if($nodeType=="xml"){ $postData= $this->getReplace($parameter,$xmlString,$sqlData,$nodeType,$boolCheckUser); $postUrl = $this->hisApiReplace($hisApi['hisUrl'],$hisApi['appKey'],$funcName); $returnXml = call_user_func(array($_ENV["commonClass"],"sendDataByCurl"),$postUrl,$postData); //如果为空,则返回HIS的报错 if(empty($returnXml)){ $sqlData = ""; $infoString ="服务器连接返回内容出错"; }else if(strval($returnXml ->resultCode)=="1"){ $sqlData = ""; $infoString = strval($returnXml ->resultDesc); }else { $sqlData = ""; $returnXml = $returnXml->invoiceList->invoice; foreach($returnXml as $key=>$v){ $sqlData[] = array( 'invoice' => $v ); } if($dataType=="add"){ $tempData[] =$sqlData; $sqlData = $tempData =array_merge($tempData, $sqlData); } } if(!$sqlData){break;} } } } //最终生成数据 $jsonData= $this->getJson($jsonData,$sqlData,$infoString,0,$resultType); //封装后,返回前台json包 $this->codeJson($jsonData); } } ?>