Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

218 Zeilen
10 KiB

  1. <?php
  2. require_once '../st-xm/Common/Mysql.php';
  3. header("Access-Control-Allow-Origin:*");
  4. $no_sell_array = array(152739,152740,152741,152691,152697,152715,152709,152715);
  5. $start_date=isset($_POST['start_date'])? $_POST['start_date']:date("Y-m-d");
  6. $end_date=isset($_POST['end_date'])? $_POST['end_date']:date("Y-m-d", strtotime("+1 months"));
  7. $return_data = array();
  8. $return_data['code']='201';
  9. $pdo=conn();
  10. //取得所有的线路
  11. $sql = " SELECT * FROM opera_product WHERE PROD_TYPE=81 AND CANCEL_FLAG = 0 ";
  12. $result=$pdo->query($sql);
  13. $result_array=$result->fetchAll();
  14. $result->closeCursor();
  15. $line_array = array();
  16. $line_id_array = array();
  17. foreach( $result_array as $line_info ) {
  18. $line_id_array[] = $line_info["PROD_ID"];
  19. $line_array[$line_info["PROD_ID"]] = $line_info;
  20. }
  21. //取得所有符合检索条件的班次信息(仅限于上海-乌镇-萧山 和 上海-西塘-乌镇)
  22. $sql2 = " SELECT * FROM run_main WHERE PROD_ID IN (".implode(",",$line_id_array).") AND RUN_STATUS=138 AND RUN_DATE >= '".$start_date."' AND RUN_DATE <= '".$end_date."' ORDER BY RUN_DATE ";
  23. $result=$pdo->query($sql2);
  24. $rowset=$result->fetchAll();
  25. $result->closeCursor();
  26. $return_data['code']='201';
  27. if( $rowset == false ) {
  28. $return_data['all_count'] = 0;
  29. $return_data['data_array'] = array();
  30. echo json_encode($return_data);
  31. }
  32. //取得所有的站点信息
  33. $sql3 = " SELECT * FROM base_resource WHERE RES_TYPE_ID=24 ";
  34. $result=$pdo->query($sql3);
  35. $result_array=$result->fetchAll();
  36. $result->closeCursor();
  37. $res_array = array();
  38. foreach( $result_array as $res_info ) {
  39. $res_array[$res_info["RES_ID"]] = $res_info;
  40. }
  41. //取得所有地区信息
  42. $sql4 = " SELECT * FROM base_area WHERE CANCEL_FLAG=0 ";
  43. $result=$pdo->query($sql4);
  44. $result_array=$result->fetchAll();
  45. $result->closeCursor();
  46. $city_array = array();
  47. foreach( $result_array as $city_info ) {
  48. $city_array[$city_info["ID"]] = $city_info;
  49. }
  50. //获取所有班次run_id和所有班次对应的产品(线路)prod_id
  51. $run_id_array = array();
  52. $prod_id_array = array();
  53. foreach( $rowset as $row_info ) {
  54. if( !in_array($row_info["RUN_ID"], $run_id_array ) ) {
  55. $run_id_array[] = $row_info["RUN_ID"];
  56. }
  57. if( !in_array($row_info["PROD_ID"], $prod_id_array ) ) {
  58. $prod_id_array[] = $row_info["PROD_ID"];
  59. }
  60. }
  61. //获取所有班次的车次信息(显示库存数用)
  62. $sql5 = " SELECT * FROM run_bus WHERE RUN_ID IN(".implode(",",$run_id_array).")";
  63. $result=$pdo->query($sql5);
  64. $result_array=$result->fetchAll();
  65. $result->closeCursor();
  66. $run_bus_array = array();
  67. //将所有班次的车次信息按照班次进行归类 存入$run_bus_array
  68. foreach( $result_array as $run_bus_info ) {
  69. if( !isset($run_bus_array[$run_bus_info["RUN_ID"]]) ) {
  70. $run_bus_array[$run_bus_info["RUN_ID"]] = array();
  71. }
  72. $run_bus_array[$run_bus_info["RUN_ID"]][] = $run_bus_info;
  73. }
  74. //取得所有线路所对应的票种信息
  75. $sql6 = " SELECT * FROM opera_product WHERE PROD_TYPE=82 AND PARENT_ID IN(".implode(",",$prod_id_array).") AND PROD_ID NOT IN (".implode(",",$no_sell_array).")";
  76. $result=$pdo->query($sql6);
  77. $result_array=$result->fetchAll();
  78. $result->closeCursor();
  79. $prod_tickets_array = array();
  80. $prod_tickets_id_array = array();
  81. //将所有票种信息按照PROD_ID来进行分类存储进$prod_tickets_array
  82. //并将所有的票种PROD_ID存储进$prod_tickets_id_array
  83. foreach( $result_array as $prod_tickets_info ) {
  84. $prod_tickets_array[$prod_tickets_info["PROD_ID"]] = $prod_tickets_info;
  85. $prod_tickets_id_array[] = $prod_tickets_info["PROD_ID"];
  86. }
  87. //获取所有票种价格信息
  88. $sql7 = " SELECT * FROM opera_product_price WHERE PROD_TYPE_ID=82 AND PROD_ID IN(".implode(",",$prod_tickets_id_array).") ";
  89. $result=$pdo->query($sql7);
  90. $result_array=$result->fetchAll();
  91. $result->closeCursor();
  92. $prod_price_array = array();
  93. //把所有票价信息按照父ID(线路)进行分类并存储进$prod_price_array
  94. foreach( $result_array as $prod_price_info ) {
  95. $prod_ticket_info = $prod_tickets_array[$prod_price_info["PROD_ID"]];
  96. $prod_ticket_info["PROD_PRICE"] = $prod_price_info["PROD_PRICE"];
  97. $prod_ticket_info["CUS_PRICE"] = $prod_price_info["CUS_PRICE"];
  98. if( !isset($prod_price_array[$prod_ticket_info["PARENT_ID"]]) ) {
  99. $prod_price_array[$prod_ticket_info["PARENT_ID"]] = array();
  100. }
  101. $prod_price_array[$prod_ticket_info["PARENT_ID"]][$prod_price_info["PROD_ID"]] = $prod_ticket_info;
  102. }
  103. //获取班次的站点信息
  104. $sql8 = " SELECT * FROM run_station WHERE RUN_ID IN (".implode( ",", $run_id_array).") ";
  105. $result=$pdo->query($sql8);
  106. $result_array=$result->fetchAll();
  107. $result->closeCursor();
  108. $run_station_array = array();
  109. $res_start_time_array = array();
  110. //把班次站点信息按照班次RUN_ID进行归类,并总结出每个班次的起始站点和终了站点
  111. //根据班次站点对于时间进行归纳,并存储至$res_start_time_array
  112. foreach( $result_array as $run_station_info ) {
  113. if( !isset($run_station_array[$run_station_info["RUN_ID"]]) ) {
  114. $run_station_array[$run_station_info["RUN_ID"]] = array( "start_time" => "","start_res_id" => 0, "start_area_id" => 0, "end_res_id" => 0, "end_area_id" => 0, "end_order_no" => 0 );
  115. }
  116. if( !isset($res_start_time_array[$run_station_info["RUN_ID"]])) {
  117. $res_start_time_array[$run_station_info["RUN_ID"]] = array();
  118. }
  119. $res_start_time_array[$run_station_info["RUN_ID"]][$run_station_info["STATION_RES_ID"]] = $run_station_info["START_TIME"];
  120. if( $run_station_info["STATION_ORDER_ID"] == 1 ) {
  121. $run_station_array[$run_station_info["RUN_ID"]]["start_time"] = $run_station_info["START_TIME"];
  122. $run_station_array[$run_station_info["RUN_ID"]]["start_res_id"] = $run_station_info["STATION_RES_ID"];
  123. $run_station_array[$run_station_info["RUN_ID"]]["start_area_id"] = $run_station_info["AREA_ID"];
  124. } else {
  125. if( $run_station_array[$run_station_info["RUN_ID"]]["end_order_no"] < $run_station_info["STATION_ORDER_ID"] ) {
  126. $run_station_array[$run_station_info["RUN_ID"]]["end_order_no"] = $run_station_info["STATION_ORDER_ID"];
  127. $run_station_array[$run_station_info["RUN_ID"]]["end_res_id"] = $run_station_info["STATION_RES_ID"];
  128. $run_station_array[$run_station_info["RUN_ID"]]["end_area_id"] = $run_station_info["AREA_ID"];
  129. }
  130. }
  131. }
  132. //获取票种的所有信息
  133. $sql9 = " SELECT * FROM opera_product_property WHERE PROD_ID IN(".implode(",",$prod_tickets_id_array).") ";
  134. $result=$pdo->query($sql9);
  135. $result_array=$result->fetchAll();
  136. $result->closeCursor();
  137. $start_end_array = array();
  138. //将所有票种的额外信息按照票种PROD_ID进行归类并存储到$start_end_array 主要为了获取每个票种的起始地目的地
  139. foreach( $result_array as $start_end_info ) {
  140. if( !isset($start_end_array[$start_end_info["PROD_ID"]]) ) {
  141. $start_end_array[$start_end_info["PROD_ID"]] = array();
  142. }
  143. $start_end_array[$start_end_info["PROD_ID"]][$start_end_info["TYPE_ID"]] = $start_end_info["PROPERTY"];
  144. }
  145. $data_array = array();
  146. foreach( $rowset as $row_info ) {
  147. $base_info = array();
  148. $base_info["run_code"] = $row_info["RUN_ID"];
  149. $base_info["supplier"] = "上海南顺";
  150. $base_info["prod_type"] = "景区直通车";
  151. $base_info["run_type"] = "普通班次";
  152. $base_info["bus_type"] = "国产旅游空调车";
  153. $base_info["can_book"] = 1;
  154. $base_info["is_active"] = 1;
  155. $base_info["start_date"] = $row_info["RUN_DATE"];
  156. $base_info["start_time"] = $row_info["RUN_TIME"];
  157. $base_info["pre_days"] = $row_info["PRE_SALE_DAY"] > 0 ? $row_info["PRE_SALE_DAY"] : 1;
  158. $base_info["on_sale"] = $row_info["RUN_STATUS"] == 138 ? 1:0;
  159. if( !$run_bus_array[$row_info["RUN_ID"]] ) {
  160. $base_info["bus_no"] = "以实际情况为准";
  161. $base_info["total_count"] = 0;
  162. $base_info["saled_count"] = 0;
  163. $base_info["remain_count"] = 0;
  164. } else {
  165. $base_info["bus_no"] = mb_strlen($run_bus_array[$row_info["RUN_ID"]][0]["SEND_BUS_NO"]) > 0 ? $run_bus_array[$row_info["RUN_ID"]][0]["SEND_BUS_NO"] : "以实际情况为准";
  166. $total_count = 0;
  167. $saled_count = 0;
  168. $remain_count = 0;
  169. foreach( $run_bus_array[$row_info["RUN_ID"]] as $run_bus_info ) {
  170. $total_count += $run_bus_info["SEAT_COUNT"];
  171. $saled_count += $run_bus_info["SALED_COUNT"];
  172. }
  173. $remain_count = $total_count - $saled_count;
  174. $base_info["total_count"] = $total_count;
  175. $base_info["saled_count"] = $saled_count;
  176. $base_info["remain_count"] = $remain_count;
  177. }
  178. //need add here
  179. $tickets_array = $prod_price_array[$row_info["PROD_ID"]];
  180. foreach( $tickets_array as $tickets_info ) {
  181. $prod_name = $prod_tickets_array[$tickets_info["PROD_ID"]]["PROD_NAME"];
  182. if( mb_strpos( $prod_name, "往返") != false ) {
  183. continue;
  184. } else {
  185. echo mb_strpos( $prod_name, "往返");
  186. }
  187. $base_info["run_code"] = $row_info["RUN_ID"]."_".$tickets_info["PROD_ID"];
  188. $start_end_info = $start_end_array[$tickets_info["PROD_ID"]];
  189. $base_info["start_time"] = $res_start_time_array[$row_info["RUN_ID"]][$start_end_info["112"]];
  190. $base_info["end_time"] = $res_start_time_array[$row_info["RUN_ID"]][$start_end_info["113"]];
  191. $base_info["start_city"] = $city_array[$start_end_info["125"]]["AREA_NAME"];
  192. $base_info["end_city"] = $city_array[$start_end_info["126"]]["AREA_NAME"];
  193. $base_info["start_res"] = $res_array[$start_end_info["112"]]["RES_NAME"];
  194. $base_info["end_res"] = $res_array[$start_end_info["113"]]["RES_NAME"];
  195. $base_info["half_price"] = $prod_price_array[$row_info["PROD_ID"]][$tickets_info["PROD_ID"]]["PROD_PRICE"];
  196. $base_info["full_price"] = $prod_price_array[$row_info["PROD_ID"]][$tickets_info["PROD_ID"]]["CUS_PRICE"];
  197. $base_info["description"] = $prod_name;
  198. $base_info["description"] = "";
  199. $data_array[] = $base_info;
  200. }
  201. }
  202. foreach( $data_array as $base_info ) {
  203. $diff_time = strtotime($base_info["end_time"]) - strtotime($base_info["start_time"]);
  204. $disp_diff_time = floor($diff_time/60);
  205. echo $base_info["start_city"].",".$base_info["end_city"].",".$base_info["start_res"].",".$base_info["end_res"].",0,". $base_info["total_count"].",".$base_info["full_price"].",".$base_info["start_time"].",".$base_info["end_time"].",,".$disp_diff_time.",FALSE,0,test,test,test,0,".$base_info["start_date"].",10,990";
  206. echo "<br />";
  207. }
  208. exit();