query($sql_c); $res1=$check->fetch(PDO::FETCH_ASSOC); $check->closeCursor(); $run_date=$res1['run_date']; $now=time(); $yesStamp=strtotime('-1 day',strtotime("$run_date 18:30:00"));//得到run_date前一天18:30的时间戳 $diffTime=$now-$yesStamp; if($diffTime>=0){ $data['code']="666"; $data['info']="只能在班次发车日期前一天18:30之前重置车次订单!"; echo json_encode($data);exit(); } $sql="CALL XM_GET_STATION_BY_RUNID('".$run_id."');"; writeLog("getStations sql=".$sql); $result=$pdo->query($sql); $data=array(); $data['code']="0"; $data['info']=""; $re_data=array(); do{ $rowset=$result->fetchAll(PDO::FETCH_ASSOC); $re_data[]=$rowset; }while($result->nextRowset()); $data['start_station']=isset($re_data[0])?$re_data[0]:array(); $data['end_station']=isset($re_data[1])?$re_data[1]:array(); $result->closeCursor(); echo json_encode($data); exit(); break; case "getOrderList": $run_id=isset($_GET['run_id'])?$_GET['run_id']:""; $start_station_id=isset($_GET['start_station_id'])?$_GET['start_station_id']:""; $end_station_id=isset($_GET['end_station_id'])?$_GET['end_station_id']:""; if($run_id==""){ $data['code']="-1"; $data['info']="缺少参数"; echo json_encode($data);exit(); } $sql="CALL GET_ORDERLIST_FOR_SETBUS('".$run_id."','".$start_station_id."','".$end_station_id."');"; writeLog('getOrderList sql='.$sql); $result=$pdo->query($sql); $rowset=$result->fetchAll(PDO::FETCH_ASSOC); $data=array(); $data['code']="0"; $data['info']=""; $data['orderList']=isset($rowset)?$rowset:array(); $result->closeCursor(); echo json_encode($data); exit(); break; case "getCarList": $run_id=isset($_GET['run_id'])?$_GET['run_id']:""; if($run_id==""){ $data['code']="-1"; $data['info']="缺少参数"; echo json_encode($data);exit(); } $sql="CALL SP_GET_RUN_BUS(".$run_id.");"; writeLog('carList sql='.$sql); $result=$pdo->query($sql); $rowset=$result->fetchAll(PDO::FETCH_ASSOC); $result->closeCursor(); $data=array(); $data['code']="0"; $data['info']=""; $data['carList']=isset($rowset)?$rowset:array(); echo json_encode($data);exit(); break; case "reset": $run_id=isset($_GET['run_id'])?$_GET['run_id']:""; $order_ids=isset($_GET['order_ids'])?$_GET['order_ids']:""; if($run_id=="" || $order_ids==""){ $data['code']="-1"; $data['info']="缺少参数"; echo json_encode($data);exit(); } //对重置做一个判断,班次只有在发车前一天的18:30之前才可以重置订单车次 $run_id=$run_id+0; $sql_c="select concat(substring(run_date,1,4),substring(run_date,6,2)) as x_name,run_id,run_date from run_main where run_id=$run_id limit 1;"; $check=$pdo->query($sql_c); $res1=$check->fetch(PDO::FETCH_ASSOC); $check->closeCursor(); $run_date=$res1['run_date']; $now=time(); $yesStamp=strtotime('-1 day',strtotime("$run_date 18:30:00"));//得到run_date前一天18:30的时间戳 $diffTime=$now-$yesStamp; if($diffTime>=0){ $data['code']="-2"; $data['info']="只能在班次发车日期前一天18:30之前重置车次订单!"; echo json_encode($data);exit(); } $sql="CALL SP_RESET_BUS_FOR_ORDER(".$run_id.",'".$order_ids."');"; writeLog('reset sql='.$sql); writelog_update_car(' reset::::user_id='.$user_id."|run_id=".$run_id."|order_ids=".$order_ids); $result=$pdo->query($sql); $rowset=$result->fetchAll(PDO::FETCH_ASSOC); $result->closeCursor(); $data=array(); writeLog(json_encode($rowset)); writelog_update_car(json_encode($rowset)); $data['code']=isset($rowset[0]['errorcode'])?$rowset[0]['errorcode']:"500"; $data['info']=isset($rowset[0]['errorinfo'])?$rowset[0]['errorinfo']:"未从数据库获得返回值"; echo json_encode($data);exit(); break; case "updateCar": $run_id=isset($_GET['run_id'])?$_GET['run_id']:""; $order_ids=isset($_GET['order_ids'])?$_GET['order_ids']:""; $bus_order_id=isset($_GET['bus_order_id'])?$_GET['bus_order_id']:""; if($run_id=="" || $order_ids=="" || $bus_order_id==""){ $data['code']="-1"; $data['info']="缺少参数"; echo json_encode($data);exit(); } $sql="CALL SP_REASSIGN_BUS_FOR_ORDER(".$run_id.",'".$order_ids."',".$bus_order_id.");"; $sql_set="CALL SP_RESET_BUS_FOR_ORDER(".$run_id.",'".$order_ids."');"; //这里增加两个校验:1,班次只有在发车前一天的18:30之前才可以修改订单车次;2,只有在该车次的run_x数据全被重置的情况下才允许修改订单的车次。 #1,班次只有在发车前一天的18:30之前才可以修改订单车次 $run_id=$run_id+0; $sql_c="select concat(substring(run_date,1,4),substring(run_date,6,2)) as x_name,run_id,run_date from run_main where run_id=$run_id limit 1;"; $check=$pdo->query($sql_c); $res1=$check->fetch(PDO::FETCH_ASSOC); $check->closeCursor(); $run_date=$res1['run_date']; $now=time(); $yesStamp=strtotime('-1 day',strtotime("$run_date 18:30:00"));//得到run_date前一天18:30的时间戳 $diffTime=$now-$yesStamp; if($diffTime>=0){ $data['code']="-2"; $data['info']="只能在班次发车日期前一天18:30之前修改车次订单!"; echo json_encode($data);exit(); } #2,只有在该车次的run_x数据全被重置的情况下才允许修改订单的车次。 $x_name='run_'.$res1['x_name']; $sql_c2="select * from $x_name where run_id=$run_id and bus_order_id=$bus_order_id and cancel_flag=0 and seat_type=72 and seat_status=2 limit 1"; $check2=$pdo->query($sql_c2); $res2=$check2->fetch(PDO::FETCH_ASSOC); $check2->closeCursor(); if($res2){ $data['code']="-3"; $data['info']="目标车次全部订单重置后才可修改订单车次"; echo json_encode($data);exit(); } writeLog('reset sql='.$sql); writelog_update_car(' reset::::user_id='.$user_id."|run_id=".$run_id."|order_ids=".$order_ids); $result2=$pdo->query($sql_set); $rowset2=$result2->fetchAll(PDO::FETCH_ASSOC); $result2->closeCursor(); writeLog(json_encode($rowset2)); writelog_update_car(json_encode($rowset2)); if($rowset2[0]['errorcode']=="0"){ writeLog('updateCar sql='.$sql); writelog_update_car('update::::user_id='.$user_id."|run_id=".$run_id."|order_ids=".$order_ids."|bus_order_id=".$bus_order_id); $result=$pdo->query($sql); $rowset=$result->fetchAll(PDO::FETCH_ASSOC); $result->closeCursor(); $data=array(); writeLog(json_encode($rowset)); writelog_update_car(json_encode($rowset)); $data['code']=isset($rowset[0]['errorcode'])?$rowset[0]['errorcode']:"500"; $data['info']=isset($rowset[0]['errorinfo'])?$rowset[0]['errorinfo']:"未从数据库获得返回值"; echo json_encode($data);exit(); } break; default : break; } function writelog_update_car($log){ $dir=__DIR__."/../Log/"; if (!is_dir($dir)){ mkdir($dir); } $filename=$dir.date("Y-m-d").".logtemp"; file_put_contents($filename, date("Y-m-d H:i:s")."\t".$log.PHP_EOL,FILE_APPEND); } exit();