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.

refund.php 5.3 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. /*
  3. * wechat 2.0
  4. * Copyright (c) 2016 yixi wei http://zhizhuchuxing.com/
  5. * Date: 2016.09.07
  6. * Something is to pay QQ1062140302
  7. */
  8. if (ALLOW_ORIGIN)
  9. header("Access-Control-Allow-Origin:*");
  10. date_default_timezone_set('PRC');
  11. require_once __DIR__.'/../../api/cancelOrder.php';
  12. require_once __DIR__.'/../dictionary.php';
  13. $order_id = isset($_POST['order_id']) ? $_POST['order_id'] : "454259";
  14. //echo json_encode(array("code" => 1, "info" => "退票业务暂未开放"));
  15. // exit ;
  16. $pdo = conn();
  17. $list = Find($order_id);
  18. $time_cut = strtotime($list['run_time'])-time();
  19. foreach ($array_line_info[$list['line_id']]['start'] as $v) {
  20. if($v['name']==$list['start_res_name']){
  21. $start_id = $v['id'];
  22. }
  23. }
  24. foreach ($array_line_info[$list['line_id']]['end'] as $v) {
  25. if($v['name']==$list['end_res_name']){
  26. $end_id = $v['id'];
  27. }
  28. }
  29. if($time_cut<=3600){
  30. $code ='1';
  31. $info = 'fail';
  32. $massge = '开车前30分钟禁止退票';
  33. $list = "";
  34. }else{
  35. $sql = "UPDATE order_main SET ORDER_STATUS =148,ORDER_VALID_STATUS = 0 WHERE order_id = " . $order_id ." OR parent_order_id = " .$order_id.";"
  36. . "update run_bus set SALED_COUNT = SALED_COUNT - ".$list['tic_num']." where run_id = ".$list['run_id']." and bus_order_id = ".$list['run_bus_order_id'].";"
  37. . "update run_stock set SALED_COUNT = SALED_COUNT - ".$list['tic_num']." where run_id =".$list['run_id']." and SEAT_TYPE = 72 and SEQ_ID = 1;"
  38. . "update run_prod set SALED_COUNT = SALED_COUNT - ".$list['tic_num']." where run_id =".$list['run_id']." and prod_id = ".$list['prod_id'];
  39. $result = $pdo -> query($sql);
  40. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  41. $result -> closeCursor();
  42. if(!isset($rowset[0]['errorinfo'])){
  43. $sql = " insert into order_refund(`order_id`,`price`,`pay_serial_number`) values(".$order_id.",".$list['order_price'].",'".$list['pay_num']."')";
  44. $pdo ->query($sql);
  45. $code = '0';
  46. $info = 'success';
  47. $massge = '订单已取消';
  48. $cancel_order = new cancelOrder();
  49. $res = $cancel_order ->cancel_order($list['run_id'], $list['run_bus_order_id'],$start_id,$end_id,$order_id, $list['tic_num']);
  50. $massge=$res;
  51. }else{
  52. $code = '1';
  53. $info =$rowset[0]['errorinfo'];
  54. $massge = $rowset[0]['errorinfo'];
  55. }
  56. }
  57. $data['code']=$code;
  58. $data['info']=$massge;
  59. echo json_encode($data);die;
  60. function Find($order_id){
  61. $pdo= conn();
  62. $sql = "select order_description,order_price,order_pay_main_id "
  63. . "from order_main "
  64. . "where order_id=".$order_id;
  65. $result=$pdo->query($sql);
  66. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  67. $order_price = $rowset[0];//订单总价格 订单票的数量
  68. $sql = "SELECT DISTINCT
  69. order_description,parent_order_id,run_date,run_id,run_time,run_bus_order_id,prod_id,parent_prod_id,PROD_START_STATION_AREA_NAME,PROD_START_STATION_RES_NAME,PROD_END_STATION_AREA_NAME,PROD_END_STATION_RES_NAME
  70. FROM `order_main`
  71. where PARENT_ORDER_ID=".$order_id;
  72. $result=$pdo->query($sql);
  73. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  74. $order_station = $rowset[0];//订单来往地址 订单时间 订单好
  75. if(empty($order_station))
  76. return false;
  77. $array_order_desc=array();
  78. $arr_temp = explode('|',$order_price['order_description']);
  79. $arr=array();
  80. foreach ($arr_temp as $k=>$v2) {
  81. if(!empty($v2))
  82. $array_order_desc[]= explode (',', $v2); //订单票 * 数量
  83. }
  84. $list = array();
  85. //上海(黄浦旅游集散站) - 乌镇(西栅1号停车场)//反的数组
  86. $list['station'] = $order_station['PROD_START_STATION_AREA_NAME'].'('.$order_station['PROD_START_STATION_RES_NAME'].')'
  87. .'-'.$order_station['PROD_END_STATION_AREA_NAME'].'('.$order_station['PROD_END_STATION_RES_NAME'].')';
  88. $list['start_station']=$order_station['PROD_START_STATION_AREA_NAME'];
  89. $list['end_station']=$order_station['PROD_END_STATION_AREA_NAME'];
  90. $list['start_res_name'] = $order_station['PROD_START_STATION_RES_NAME'];
  91. $list['end_res_name'] = $order_station['PROD_END_STATION_RES_NAME'];
  92. $list['run_date'] = $order_station['run_date'];
  93. $list['run_time'] = $order_station['run_date'].' '.$order_station['run_time'];
  94. $list['count']='';
  95. $list['tic_num'] = 0;
  96. foreach ($array_order_desc as $v){
  97. $list['count'] .= ' '.$v[0].' × '.$v[2];
  98. $list['tic_num'] +=$v[2] ;
  99. }
  100. $list['order_price'] = $order_price['order_price'];
  101. $sql = "select pay_serial_number from order_pay_detail where pay_main_id =".$order_price['order_pay_main_id'];
  102. $result=$pdo->query($sql);
  103. $rowset = $result -> fetchAll(PDO::FETCH_ASSOC);
  104. $list['pay_num'] = $rowset[0]['pay_serial_number'];
  105. $list['line_id'] = $order_station['parent_prod_id'];
  106. $list['run_id'] = $order_station['run_id'];//run_bus_order_id
  107. $list['run_bus_order_id'] = $order_station['run_bus_order_id'];//parent_order_id
  108. $list['parent_order_id'] = $order_station['parent_order_id'];
  109. $list['prod_id'] = $order_station['prod_id'];
  110. return $list;
  111. }