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.
 
 
 
 
 
 

154 lines
5.3 KiB

  1. <?php
  2. if (ALLOW_ORIGIN)
  3. header("Access-Control-Allow-Origin:*");
  4. date_default_timezone_set('PRC');
  5. //require_once '../../Common/Mysql.php';
  6. $user_id =$_COOKIE['user_id'] ;//getUserId();
  7. $back_order_id=0;
  8. if($_POST || 1){
  9. $method = isset($_POST['iffirst']) ? $_POST['iffirst'] : "2";
  10. $order_id = isset($_POST['order_id']) ? $_POST['order_id'] : "204351";
  11. $ifback = "0";
  12. $to_order_id=$order_id;
  13. $pdo = conn();
  14. $sql_s = "select * from to_from where to_orderid=".$order_id." or back_orderid=".$order_id;
  15. $result=$pdo->query($sql_s);
  16. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  17. if($rowset){
  18. $ifback=1;
  19. $to_order_id = $rowset[0]['to_orderid'];
  20. $back_order_id = $rowset[0]['back_orderid'];
  21. if ($method == "2") {
  22. $sql = "CALL SP_CANCEL_ORDER(" . 0 . "," . $to_order_id . ")";
  23. $result = $pdo -> query($sql);
  24. $sql = "CALL SP_CANCEL_ORDER(" . 0 . "," . $back_order_id . ")";
  25. $result = $pdo -> query($sql);
  26. if($list['to'] && Find($back_order_id)){
  27. $code = 0;
  28. $info = 'success';
  29. $massge = '成功';
  30. }
  31. $result -> closeCursor();
  32. }else{
  33. $list['to'] = Find($to_order_id);
  34. $time_cut = time()-strtotime($list['to']['run_date'].' '.$list['to']['run_time']);
  35. $list['back'] = Find($back_order_id);
  36. if($list['to'] && Find($back_order_id)){
  37. $code = 0;
  38. $info = 'success';
  39. $massge = '成功';
  40. $list = $list;
  41. if($time_cut<=1800){
  42. $code =1;
  43. $info = 'fail';
  44. $massge = '开车前30分钟禁止退票,请刷新页面确认时间';
  45. $list = "";
  46. }
  47. }else{
  48. $code =1;
  49. $info = 'fail';
  50. $massge = '失败';
  51. $list = "";
  52. }
  53. }
  54. $time_cut = time()-strtotime($list['to']['run_time']); ///时间在开场30分钟前可以退票
  55. }else{
  56. //单程情况
  57. if ($method == "2") {
  58. $pdo = conn();
  59. $sql = "CALL SP_CANCEL_ORDER(" . 0 . "," . $order_id . ")";
  60. $result = $pdo -> query($sql);
  61. $code = 0;
  62. $info = 'success';
  63. $massge = '订单已取消';
  64. $result -> closeCursor();
  65. }else{
  66. if($list = Find($order_id)){
  67. $code = 0;
  68. $info = 'success';
  69. $massge = '成功';
  70. $list = $list;
  71. $time_cut = time()-strtotime($list['run_date'].' '.$list['run_time']);
  72. if($time_cut<=1800){
  73. $code =1;
  74. $info = 'fail';
  75. $massge = '开车前30分钟禁止退票';
  76. $list = "";
  77. }
  78. }else{
  79. $code =1;
  80. $info = 'fail';
  81. $massge = '失败';
  82. $list = "";
  83. }
  84. }
  85. $time_cut = time()-strtotime($list['run_time']); ///时间在开场30分钟前可以退票
  86. }
  87. } else {
  88. $code =1;
  89. $info = 'fail';
  90. $massge = '失败';
  91. $list = "";
  92. }
  93. $json['ifback'] =$ifback;
  94. $json['code'] = $code;
  95. $json['info'] = $massge;
  96. $json['order_id']=$to_order_id;
  97. $json['back_order_id']=$back_order_id;
  98. echo json_encode($json);
  99. die;
  100. function Find($order_id){
  101. $pdo= conn();
  102. $sql = "select order_description,order_price "
  103. . "from order_main "
  104. . "where order_id=".$order_id;
  105. $result=$pdo->query($sql);
  106. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  107. $order_price = $rowset[0];//订单总价格 订单票的数量
  108. $sql = "SELECT DISTINCT
  109. order_description,parent_order_id,run_date,run_time,PROD_START_STATION_AREA_NAME,PROD_START_STATION_RES_NAME,PROD_END_STATION_AREA_NAME,PROD_END_STATION_RES_NAME
  110. FROM `order_main`
  111. where PARENT_ORDER_ID=".$order_id;
  112. $result=$pdo->query($sql);
  113. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  114. $order_station = $rowset[0];//订单来往地址 订单时间 订单好
  115. if(empty($order_station))
  116. return false;
  117. $array_order_desc=array();
  118. $arr_temp = explode('|',$order_price['order_description']);
  119. $arr=array();
  120. foreach ($arr_temp as $k=>$v2) {
  121. if(!empty($v2))
  122. $array_order_desc[]= explode (',', $v2); //订单票 * 数量
  123. }
  124. $list = array();
  125. //上海(黄浦旅游集散站) - 乌镇(西栅1号停车场)//反的数组
  126. $list['station'] = $order_station['PROD_START_STATION_AREA_NAME'].'('.$order_station['PROD_START_STATION_RES_NAME'].')'
  127. .'-'.$order_station['PROD_END_STATION_AREA_NAME'].'('.$order_station['PROD_END_STATION_RES_NAME'].')';
  128. $list['start_station']=$order_station['PROD_START_STATION_AREA_NAME'];
  129. $list['end_station']=$order_station['PROD_END_STATION_AREA_NAME'];
  130. $list['start_res_name'] = $order_station['PROD_START_STATION_RES_NAME'];
  131. $list['end_res_name'] = $order_station['PROD_END_STATION_RES_NAME'];
  132. $list['run_date'] = $order_station['run_date'];
  133. $list['run_time'] = $order_station['run_date'].' '.$order_station['run_time'];
  134. $list['count']='';
  135. foreach ($array_order_desc as $v){
  136. $list['count'] .= ' '.$v[0].' × '.$v[2];
  137. }
  138. $list['order_price'] = $order_price['order_price'];
  139. return $list;
  140. }