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.
 
 
 
 
 

215 lines
6.0 KiB

  1. <?php
  2. date_default_timezone_set('GMT');
  3. $start_area_id = trim($_POST['start_area_id']);
  4. $start_res_id = trim($_POST['start_res_id']);
  5. $end_area_id = trim($_POST['end_area_id']);
  6. $end_res_id = trim($_POST['end_res_id']);
  7. $run_id = trim($_POST['run_id']);
  8. $price_type = 1;
  9. //$line_id = 152248;
  10. $line_id = '';//线路ID
  11. $run_date = '';//出发时间
  12. $price_name = '';//分销价或零售价
  13. //巴士类型
  14. $bus_type = '';
  15. $ticket_type = '';
  16. //班次站点信息
  17. $run_station = array();
  18. //顺序站点
  19. $res_station_seq = array();
  20. //余票信息
  21. $ticket_over = array();
  22. $ticket_over_array = array();
  23. $ticket_over_id = array();
  24. //票种信息
  25. $ticket_id_info = array();
  26. $ticket_info = array();
  27. $ticket_go = '';
  28. $ticket_back = '';
  29. $ticket = array();
  30. //上车站数组
  31. $start_res_array = array();
  32. //下车站数组
  33. $end_res_array = array();
  34. //站点数组
  35. $res_array = array();
  36. $res_id_array = array();
  37. //终极数组
  38. $final = array();
  39. if($price_type ==1){
  40. $price_name = "cus_price";
  41. }else{
  42. $price_name = "prod_price";
  43. }
  44. $sql = "SELECT
  45. prod_id
  46. FROM
  47. run_main
  48. WHERE
  49. run_id = " . $run_id . "
  50. AND run_status = 138";
  51. $result=$pdo->query($sql);
  52. $line_id = $result->fetchAll(PDO::FETCH_ASSOC);
  53. writeLog($sql);
  54. $line_id = $line_id[0]['prod_id'];
  55. $sql = "select prod_id from run_prod where run_id = " . $run_id;
  56. $result=$pdo->query($sql);
  57. $line_ticket_id = $result->fetchAll(PDO::FETCH_ASSOC);
  58. writeLog($sql);
  59. foreach($line_ticket_id as $k => $v){
  60. $line_ticket_info[$v['prod_id']] = $v['prod_id'];
  61. }
  62. foreach($line_array[$line_id]['ticket_info']['go'] as $k => $v){
  63. if(!in_array($k,$line_ticket_info) && $v['start_area'] == $start_area && $v['end_area'] == $end_area){
  64. unset($line_array[$line_id]['ticket_info']['go'][$k]);
  65. }
  66. }
  67. foreach($line_array[$line_id]['ticket_info']['back'] as $k => $v){
  68. if(!in_array($k,$line_ticket_info) && $v['start_area'] == $start_area && $v['end_area'] == $end_area){
  69. unset($line_array[$line_id]['ticket_info']['back'][$k]);
  70. }
  71. }
  72. foreach($line_array[$line_id]['ticket_info']['go'] as $k => $v){
  73. if($v['start_res'] == $start_res_id && $v['end_res'] == $end_res_id){
  74. $ticket_go = $v;
  75. }
  76. }
  77. foreach($line_array[$line_id]['ticket_info']['back'] as $k => $v){
  78. if($v['start_res'] == $start_res_id && $v['end_res'] == $end_res_id){
  79. $ticket_back = $v;
  80. }
  81. }
  82. if(!empty($ticket_back)){
  83. $ticket_id = $ticket_back['prod_id'];
  84. $ticket_type = 'back';
  85. }else{
  86. $ticket_id = $ticket_go['prod_id'];
  87. $ticket_type = 'go';
  88. }
  89. $ticket_info = $line_array[$line_id]['ticket_info'][$ticket_type][$ticket_id];
  90. if(!empty($ticket_info)){
  91. $bus_type = $line_array[$line_id]['line_info']['bus_type'];
  92. if($bus_type == 0 || $bus_type == 255 ){
  93. $bus_type = 255;
  94. }else{
  95. $bus_type = 256;
  96. }
  97. $sql = "SELECT
  98. run_id,
  99. res_id,
  100. seq_id,
  101. prod_id,
  102. total_count,
  103. saled_count
  104. FROM
  105. run_stock
  106. WHERE
  107. run_id = " . $run_id . "
  108. AND seat_type = 72
  109. ORDER BY
  110. run_id ASC,
  111. seq_id ASC";
  112. $result=$pdo->query($sql);
  113. $ticket_over_id = $result->fetchAll(PDO::FETCH_ASSOC);
  114. writeLog($sql);
  115. foreach($ticket_over_id as $k => $v){
  116. $ticket_over[$v['res_id']] = $v['total_count'] - $v['saled_count'];
  117. }
  118. $sql = "select start_time from run_station where run_id = " . $run_id . " and station_res_id = " . $start_res_id;
  119. $result=$pdo->query($sql);
  120. $start_time = $result->fetchAll(PDO::FETCH_ASSOC);
  121. writeLog($sql);
  122. $start_time = $start_time[0]['start_time'];
  123. //将基本数据放入数组中
  124. // $final['start_time'] = $ticket_over[$final['start_res_id']]['start_time'];
  125. // $final['end_time'] = $end_res_array[$final['end_res_id']]['start_time'];
  126. //print_r($ticket_go);print_r($ticket_back);
  127. $tick_over_status = 0;
  128. foreach($ticket_over as $k => $v){
  129. if($k == $end_res_id){
  130. break;
  131. }
  132. if($k == $start_res_id || $tick_over_status > 0){
  133. $ticket_over_array[] = $v;
  134. $tick_over_status++;
  135. }
  136. }
  137. asort($ticket_over_array);
  138. $ticket_over_array = array_values($ticket_over_array);
  139. $ticket['start_time'] = $start_time;
  140. $ticket['ticket_id'] = $ticket_id;
  141. $ticket['ticket_type'] = $ticket_type;
  142. $setcookie_go = $_COOKIE['go_price_go'];
  143. $setcookie_back = $_COOKIE['go_price_back'];
  144. $ticket['go_price'] = (string)$ticket_go[$price_name];
  145. if($ticket_type == 'back'){
  146. $ticket['price'] = (string)(ceil($ticket_info[$price_name]+$setcookie_back-$setcookie_go));
  147. $ticket['discount_price'] = (string)(ceil($setcookie_go-$ticket['price']));
  148. }else{
  149. $ticket['discount_price'] = '0';
  150. $ticket['price'] = $ticket_info[$price_name];
  151. }
  152. $ticket['ticket_over'] = (string)$ticket_over_array[0];
  153. $final = $ticket;
  154. $final['site'] = "普通座";
  155. $final['run_type'] = "往返";
  156. $json = array();
  157. $json['code'] = '0';
  158. $json['info'] = "返回数据成功";
  159. $json['list'] = $final;
  160. }else{
  161. $json = array();
  162. $json['code'] = '1';
  163. $json['info'] = "无票种";
  164. $json['list'] = array();
  165. }
  166. echo json_encode($json);
  167. ?>