You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

update_car_no.php 8.2 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?php
  2. /*
  3. Author:fuhc
  4. Compeny:修改车号
  5. */
  6. require_once '../Common/Mysql.php';
  7. if (ALLOW_ORIGIN)
  8. header("Access-Control-Allow-Origin:*");
  9. $user_id=getUserId();
  10. if($user_id === false){
  11. $data['code']="-3";
  12. $data['info']="未登录";
  13. echo json_encode($data);exit();
  14. }
  15. //$user_id=1;
  16. $method = isset($_GET['method']) ? $_GET['method'] : "";
  17. if($method==""){
  18. $data['code']="-2";
  19. $data['info']="缺少method";
  20. echo json_encode($data);
  21. exit();
  22. }
  23. $pdo=conn();
  24. switch($method){
  25. case "getStations":
  26. $run_id=isset($_GET['run_id'])?$_GET['run_id']:"";
  27. if($run_id==""){
  28. $data['code']="-1";
  29. $data['info']="缺少参数";
  30. echo json_encode($data);exit();
  31. }
  32. //这里加一个对该班次时间的判断,只有在发车前一天的18:30之前才可以修改订单车次
  33. $run_id=$run_id+0;
  34. $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;";
  35. $check=$pdo->query($sql_c);
  36. $res1=$check->fetch(PDO::FETCH_ASSOC);
  37. $check->closeCursor();
  38. $run_date=$res1['run_date'];
  39. $now=time();
  40. $yesStamp=strtotime('-1 day',strtotime("$run_date 18:30:00"));//得到run_date前一天18:30的时间戳
  41. $diffTime=$now-$yesStamp;
  42. if($diffTime>=0){
  43. $data['code']="666";
  44. $data['info']="只能在班次发车日期前一天18:30之前重置车次订单!";
  45. echo json_encode($data);exit();
  46. }
  47. $sql="CALL XM_GET_STATION_BY_RUNID('".$run_id."');";
  48. writeLog("getStations sql=".$sql);
  49. $result=$pdo->query($sql);
  50. $data=array();
  51. $data['code']="0";
  52. $data['info']="";
  53. $re_data=array();
  54. do{
  55. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  56. $re_data[]=$rowset;
  57. }while($result->nextRowset());
  58. $data['start_station']=isset($re_data[0])?$re_data[0]:array();
  59. $data['end_station']=isset($re_data[1])?$re_data[1]:array();
  60. $result->closeCursor();
  61. echo json_encode($data);
  62. exit();
  63. break;
  64. case "getOrderList":
  65. $run_id=isset($_GET['run_id'])?$_GET['run_id']:"";
  66. $start_station_id=isset($_GET['start_station_id'])?$_GET['start_station_id']:"";
  67. $end_station_id=isset($_GET['end_station_id'])?$_GET['end_station_id']:"";
  68. if($run_id==""){
  69. $data['code']="-1";
  70. $data['info']="缺少参数";
  71. echo json_encode($data);exit();
  72. }
  73. $sql="CALL GET_ORDERLIST_FOR_SETBUS('".$run_id."','".$start_station_id."','".$end_station_id."');";
  74. writeLog('getOrderList sql='.$sql);
  75. $result=$pdo->query($sql);
  76. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  77. $data=array();
  78. $data['code']="0";
  79. $data['info']="";
  80. $data['orderList']=isset($rowset)?$rowset:array();
  81. $result->closeCursor();
  82. echo json_encode($data);
  83. exit();
  84. break;
  85. case "getCarList":
  86. $run_id=isset($_GET['run_id'])?$_GET['run_id']:"";
  87. if($run_id==""){
  88. $data['code']="-1";
  89. $data['info']="缺少参数";
  90. echo json_encode($data);exit();
  91. }
  92. $sql="CALL SP_GET_RUN_BUS(".$run_id.");";
  93. writeLog('carList sql='.$sql);
  94. $result=$pdo->query($sql);
  95. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  96. $result->closeCursor();
  97. $data=array();
  98. $data['code']="0";
  99. $data['info']="";
  100. $data['carList']=isset($rowset)?$rowset:array();
  101. echo json_encode($data);exit();
  102. break;
  103. case "reset":
  104. $run_id=isset($_GET['run_id'])?$_GET['run_id']:"";
  105. $order_ids=isset($_GET['order_ids'])?$_GET['order_ids']:"";
  106. if($run_id=="" || $order_ids==""){
  107. $data['code']="-1";
  108. $data['info']="缺少参数";
  109. echo json_encode($data);exit();
  110. }
  111. //对重置做一个判断,班次只有在发车前一天的18:30之前才可以重置订单车次
  112. $run_id=$run_id+0;
  113. $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;";
  114. $check=$pdo->query($sql_c);
  115. $res1=$check->fetch(PDO::FETCH_ASSOC);
  116. $check->closeCursor();
  117. $run_date=$res1['run_date'];
  118. $now=time();
  119. $yesStamp=strtotime('-1 day',strtotime("$run_date 18:30:00"));//得到run_date前一天18:30的时间戳
  120. $diffTime=$now-$yesStamp;
  121. if($diffTime>=0){
  122. $data['code']="-2";
  123. $data['info']="只能在班次发车日期前一天18:30之前重置车次订单!";
  124. echo json_encode($data);exit();
  125. }
  126. $sql="CALL SP_RESET_BUS_FOR_ORDER(".$run_id.",'".$order_ids."');";
  127. writeLog('reset sql='.$sql);
  128. writelog_update_car(' reset::::user_id='.$user_id."|run_id=".$run_id."|order_ids=".$order_ids);
  129. $result=$pdo->query($sql);
  130. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  131. $result->closeCursor();
  132. $data=array();
  133. writeLog(json_encode($rowset));
  134. writelog_update_car(json_encode($rowset));
  135. $data['code']=isset($rowset[0]['errorcode'])?$rowset[0]['errorcode']:"500";
  136. $data['info']=isset($rowset[0]['errorinfo'])?$rowset[0]['errorinfo']:"未从数据库获得返回值";
  137. echo json_encode($data);exit();
  138. break;
  139. case "updateCar":
  140. $run_id=isset($_GET['run_id'])?$_GET['run_id']:"";
  141. $order_ids=isset($_GET['order_ids'])?$_GET['order_ids']:"";
  142. $bus_order_id=isset($_GET['bus_order_id'])?$_GET['bus_order_id']:"";
  143. if($run_id=="" || $order_ids=="" || $bus_order_id==""){
  144. $data['code']="-1";
  145. $data['info']="缺少参数";
  146. echo json_encode($data);exit();
  147. }
  148. $sql="CALL SP_REASSIGN_BUS_FOR_ORDER(".$run_id.",'".$order_ids."',".$bus_order_id.");";
  149. $sql_set="CALL SP_RESET_BUS_FOR_ORDER(".$run_id.",'".$order_ids."');";
  150. //这里增加两个校验:1,班次只有在发车前一天的18:30之前才可以修改订单车次;2,只有在该车次的run_x数据全被重置的情况下才允许修改订单的车次。
  151. #1,班次只有在发车前一天的18:30之前才可以修改订单车次
  152. $run_id=$run_id+0;
  153. $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;";
  154. $check=$pdo->query($sql_c);
  155. $res1=$check->fetch(PDO::FETCH_ASSOC);
  156. $check->closeCursor();
  157. $run_date=$res1['run_date'];
  158. $now=time();
  159. $yesStamp=strtotime('-1 day',strtotime("$run_date 18:30:00"));//得到run_date前一天18:30的时间戳
  160. $diffTime=$now-$yesStamp;
  161. if($diffTime>=0){
  162. $data['code']="-2";
  163. $data['info']="只能在班次发车日期前一天18:30之前修改车次订单!";
  164. echo json_encode($data);exit();
  165. }
  166. #2,只有在该车次的run_x数据全被重置的情况下才允许修改订单的车次。
  167. $x_name='run_'.$res1['x_name'];
  168. $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";
  169. $check2=$pdo->query($sql_c2);
  170. $res2=$check2->fetch(PDO::FETCH_ASSOC);
  171. $check2->closeCursor();
  172. if($res2){
  173. $data['code']="-3";
  174. $data['info']="目标车次全部订单重置后才可修改订单车次";
  175. echo json_encode($data);exit();
  176. }
  177. writeLog('reset sql='.$sql);
  178. writelog_update_car(' reset::::user_id='.$user_id."|run_id=".$run_id."|order_ids=".$order_ids);
  179. $result2=$pdo->query($sql_set);
  180. $rowset2=$result2->fetchAll(PDO::FETCH_ASSOC);
  181. $result2->closeCursor();
  182. writeLog(json_encode($rowset2));
  183. writelog_update_car(json_encode($rowset2));
  184. if($rowset2[0]['errorcode']=="0"){
  185. writeLog('updateCar sql='.$sql);
  186. writelog_update_car('update::::user_id='.$user_id."|run_id=".$run_id."|order_ids=".$order_ids."|bus_order_id=".$bus_order_id);
  187. $result=$pdo->query($sql);
  188. $rowset=$result->fetchAll(PDO::FETCH_ASSOC);
  189. $result->closeCursor();
  190. $data=array();
  191. writeLog(json_encode($rowset));
  192. writelog_update_car(json_encode($rowset));
  193. $data['code']=isset($rowset[0]['errorcode'])?$rowset[0]['errorcode']:"500";
  194. $data['info']=isset($rowset[0]['errorinfo'])?$rowset[0]['errorinfo']:"未从数据库获得返回值";
  195. echo json_encode($data);exit();
  196. }
  197. break;
  198. default :
  199. break;
  200. }
  201. function writelog_update_car($log){
  202. $dir=__DIR__."/../Log/";
  203. if (!is_dir($dir)){
  204. mkdir($dir);
  205. }
  206. $filename=$dir.date("Y-m-d").".logtemp";
  207. file_put_contents($filename, date("Y-m-d H:i:s")."\t".$log.PHP_EOL,FILE_APPEND);
  208. }
  209. exit();