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_njyyt_bus.php 6.6 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Redstop
  5. * Date: 2016/12/17
  6. * Time: 11:57
  7. */
  8. header("Content-type:text/html;charset=utf-8");
  9. require_once __DIR__.'/../Common/Mysql.php';
  10. require_once __DIR__.'/../Common/api_common.php';
  11. $today = date("Y-m-d");
  12. $update_time = date("Y-m-d H:i:s");
  13. $sell_limit_time = date("Y-m-d H:i:s", strtotime("+30 minutes"));
  14. $start_date = date("Y-m-d H:i:s");
  15. $search_end_date = date("Y-m-d", strtotime("+1 months"));
  16. $pdo = conn_njyyt();
  17. //取得所有的站点信息
  18. $res_array = getBaseResourceArray( $pdo );
  19. //取得所有地区信息
  20. $city_array = getBaseAreaArray($pdo);
  21. //取得所有可售卖的班次
  22. $line_info_array = array();
  23. $no_sell_array = array();
  24. $sell_line_array = getSellLineArray($pdo,$line_info_array,$no_sell_array);
  25. $sell_line_array = array( 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,51 );
  26. //获取所有班次run_id和所有班次对应的产品(线路)prod_id
  27. $run_id_array = array();
  28. $prod_id_array = array();
  29. $all_run_array = array();
  30. $run_return_array = array();
  31. $all_line_run_array = array();
  32. $return_prod_id = array();
  33. $return_prod_time = array();
  34. $all_run_main =getRunMainArray( $sell_line_array, $start_date, $search_end_date, $pdo, $return_prod_id, $return_prod_time, $run_id_array, $prod_id_array, $all_run_array, $run_return_array, $all_line_run_array );
  35. if( $all_run_main == false ) {
  36. exit();
  37. }
  38. //获取所有班次的车次信息(显示库存数用)
  39. $run_bus_array = getRunBusArray( $pdo, $run_id_array );
  40. //取得所有线路所对应的票种信息
  41. $prod_tickets_array = array();
  42. $prod_tickets_id_array = array();
  43. $bothway_tickets_id_array = array();
  44. $prod_price_array = array();
  45. $start_end_array = array();
  46. $res_start_reach_array = array();
  47. getTicketDetailArray2( $prod_id_array,$no_sell_array, $pdo,$prod_tickets_array, $prod_tickets_id_array, $bothway_tickets_id_array, $prod_price_array, $start_end_array, $res_start_reach_array );
  48. //获取所有票种的改渠道下的销售规则
  49. $from_org_id = 1233;
  50. $org_tickets_array = array();
  51. $org_tickets_array = getOrgTicketsArray( $pdo, $from_org_id, $prod_tickets_id_array );
  52. //获取各个班次的票种信息
  53. $run_prod_array = getRunProdArray( $run_id_array, $pdo );
  54. //获取班次的站点信息
  55. $run_station_array = array();
  56. $res_start_time_array = array();
  57. getRunStationArray( $run_id_array, $pdo, $run_station_array, $res_start_time_array );
  58. $org_id = 1286;
  59. $all_tickets_array = array();
  60. foreach( $all_run_main as $row_info ) {
  61. if( $row_info["RUN_STATUS"] != 138 ) {
  62. continue;
  63. }
  64. $run_start_time = $row_info["RUN_DATE"]." ".$row_info["RUN_TIME"];
  65. if( $sell_limit_time >= $run_start_time ) {
  66. continue;
  67. }
  68. $insert_array = array();
  69. $insert_array["start_date"] = $row_info["RUN_DATE"];
  70. $insert_array["run_code"] = "NJYYT".$row_info["RUN_ID"];
  71. $insert_array["line_code"] = "NJYYT".$row_info["PROD_ID"];
  72. $insert_array["line_name"] = $line_info_array[$row_info["PROD_ID"]]["LINE_NAME"];
  73. $tickets_array = $run_prod_array[$row_info["RUN_ID"]];
  74. $total_count = 0;
  75. $saled_count = 0;
  76. $remain_count = 0;
  77. foreach( $run_bus_array[$row_info["RUN_ID"]] as $run_bus_info ) {
  78. $total_count += $run_bus_info["SEAT_COUNT"];
  79. $saled_count += $run_bus_info["SALED_COUNT"];
  80. }
  81. $insert_array["saled_count"] = $saled_count + 3;
  82. $remain_count = $total_count - $saled_count - 3;
  83. $insert_array["total_count"] = $total_count;
  84. $insert_array["remain_count"] = $remain_count < 0 ? 0 : $remain_count;
  85. foreach ($tickets_array as $tickets_temp) {
  86. $tickets_id = $tickets_temp["PROD_ID"];
  87. if( !isset($prod_tickets_array[$tickets_id]) ) {
  88. continue;
  89. }
  90. $tickets_info = $prod_tickets_array[$tickets_id];
  91. //销售规则
  92. if( isset($org_tickets_array[$tickets_id]) ) {
  93. $org_tickets_info = $org_tickets_array[$tickets_id];
  94. if( $org_tickets_info["AUTHORITY_STATUS"] == 0 ) {
  95. continue;
  96. }
  97. $tickets_info["CUS_PRICE"] = $org_tickets_info["PROD_PRICE"];
  98. }
  99. $prod_name = $tickets_info["TICKET_NAME"];
  100. $start_end_info = $start_end_array[$tickets_info["TICKET_ID"]];
  101. if( !isset($res_start_time_array[$row_info["RUN_ID"]]) || !isset($res_start_time_array[$row_info["RUN_ID"]][$start_end_info["START_STATION_RES_ID"]]) ) {
  102. continue;
  103. }
  104. $insert_array["ticket_code"] = "NJYYT".$row_info["RUN_ID"] . "T" . $tickets_info["TICKET_ID"];
  105. $insert_array["prod_name"] = $prod_name;
  106. $insert_array["start_time"] = $res_start_time_array[$row_info["RUN_ID"]][$start_end_info["START_STATION_RES_ID"]];
  107. $insert_array["start_city"] = getDispAreaNameForCtrip($city_array[$start_end_info["START_STATION_AREA_ID"]]["AREA_NAME"]);
  108. $insert_array["end_city"] = getDispAreaNameForCtrip($city_array[$start_end_info["END_STATION_AREA_ID"]]["AREA_NAME"]);
  109. $insert_array["start_res"] = getDispResNameForCtrip($res_array[$start_end_info["START_STATION_RES_ID"]]["RES_NAME"]);
  110. $insert_array["end_res"] = getDispResNameForCtrip($res_array[$start_end_info["END_STATION_RES_ID"]]["RES_NAME"]);
  111. $insert_array["full_price"] = $tickets_info["CUS_PRICE"];
  112. $sql_insert = " INSERT INTO outside_run ( org_id, run_code, prod_code, prod_name, line_code, line_name, start_date, start_time, start_area, end_area, start_res, end_res, cus_price, mid_price, remain_count, cancel_flag,update_time) " .
  113. " VALUES ( {$org_id}, '{$insert_array["run_code"]}', '{$insert_array["ticket_code"]}', '{$insert_array["prod_name"]}', '{$insert_array["line_code"]}', '{$insert_array["line_name"]}', '{$insert_array["start_date"]}', '{$insert_array["start_time"]}', '{$insert_array["start_city"]}', '{$insert_array["end_city"]}', '{$insert_array["start_res"]}', '{$insert_array["end_res"]}', {$insert_array["full_price"]}, {$insert_array["full_price"]}, {$insert_array["remain_count"]}, 0,'{$update_time}' ) " .
  114. " ON DUPLICATE KEY UPDATE cus_price={$tickets_info["CUS_PRICE"]},mid_price={$tickets_info["CUS_PRICE"]},remain_count = {$insert_array["remain_count"]},end_res='{$insert_array["end_res"]}',start_time='{$insert_array["start_time"]}',update_time='{$update_time}' ";
  115. $pdo2 = conn();
  116. if (is_object($pdo2)) {
  117. $result = $pdo2->exec($sql_insert);
  118. }
  119. }
  120. }
  121. $sql_update = " update outside_run set remain_count=0 where org_id=1286 AND update_time < '{$today} 00:00:00' ";
  122. $pdo_update = conn1();
  123. $pdo_update->exec($sql_update);
  124. //$sql_update = " UPDATE outside_ticket SET cancel_flag = 1 WHERE update_time < '{$today} 00:00:00' ";
  125. //$pdo_update2 = conn1();
  126. //$pdo_update2->exec($sql_update);
  127. echo $update_time." update success";
  128. exit();