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 8.9 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  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. $res_extra_array = getBaseResourcePropertyArray( $pdo );
  20. //取得所有地区信息
  21. $city_array = getBaseAreaArray($pdo);
  22. //取得所有可售卖的班次
  23. $line_info_array = array();
  24. $no_sell_array = array();
  25. $sell_line_array = getSellLineArray($pdo,$line_info_array,$no_sell_array);
  26. $sell_line_array = array( 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,51,53,54,56,57,59,60,79,81 );
  27. //获取所有班次run_id和所有班次对应的产品(线路)prod_id
  28. $run_id_array = array();
  29. $prod_id_array = array();
  30. $all_run_array = array();
  31. $run_return_array = array();
  32. $all_line_run_array = array();
  33. $return_prod_id = array();
  34. $return_prod_time = array();
  35. $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 );
  36. if( $all_run_main == false ) {
  37. exit();
  38. }
  39. //获取所有班次的车次信息(显示库存数用)
  40. $run_bus_array = getRunBusArray( $pdo, $run_id_array );
  41. //取得所有线路所对应的票种信息
  42. $prod_tickets_array = array();
  43. $prod_tickets_id_array = array();
  44. $bothway_tickets_id_array = array();
  45. $prod_price_array = array();
  46. $start_end_array = array();
  47. $res_start_reach_array = array();
  48. 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 );
  49. //获取所有票种的改渠道下的销售规则
  50. $from_org_id = 1233;
  51. $org_tickets_array = array();
  52. $org_tickets_array = getOrgTicketsArray( $pdo, $from_org_id, $prod_tickets_id_array );
  53. $org_tickets_array2 = getOrgTicketsArray( $pdo, 1, $prod_tickets_id_array );
  54. $org_tickets_array3 = getOrgTicketsAgentArray( $pdo, 1, $prod_tickets_id_array );
  55. //获取各个班次的票种信息
  56. $run_prod_array = getRunProdArray( $run_id_array, $pdo );
  57. //获取班次的站点信息
  58. $run_station_array = array();
  59. $res_start_time_array = array();
  60. getRunStationArray( $run_id_array, $pdo, $run_station_array, $res_start_time_array );
  61. $org_id = 1286;
  62. $all_tickets_array = array();
  63. foreach( $all_run_main as $row_info ) {
  64. if( $row_info["RUN_STATUS"] != 138 ) {
  65. continue;
  66. }
  67. $run_start_time = $row_info["RUN_DATE"]." ".$row_info["RUN_TIME"];
  68. if( $sell_limit_time >= $run_start_time ) {
  69. continue;
  70. }
  71. $insert_array = array();
  72. $insert_array["start_date"] = $row_info["RUN_DATE"];
  73. $insert_array["run_code"] = "NJYYT".$row_info["RUN_ID"];
  74. $insert_array["line_code"] = "NJYYT".$row_info["PROD_ID"];
  75. $insert_array["line_name"] = $line_info_array[$row_info["PROD_ID"]]["LINE_NAME"];
  76. $tickets_array = $run_prod_array[$row_info["RUN_ID"]];
  77. $total_count = 0;
  78. $saled_count = 0;
  79. $remain_count = 0;
  80. foreach( $run_bus_array[$row_info["RUN_ID"]] as $run_bus_info ) {
  81. $total_count += $run_bus_info["SEAT_COUNT"];
  82. $saled_count += $run_bus_info["SALED_COUNT"];
  83. }
  84. $insert_array["saled_count"] = $saled_count + 3;
  85. $remain_count = $total_count - $saled_count - 3;
  86. $insert_array["total_count"] = $total_count;
  87. $insert_array["remain_count"] = $remain_count < 0 ? 0 : $remain_count;
  88. foreach ($tickets_array as $tickets_temp) {
  89. $tickets_id = $tickets_temp["PROD_ID"];
  90. if( !isset($prod_tickets_array[$tickets_id]) ) {
  91. continue;
  92. }
  93. $tickets_info = $prod_tickets_array[$tickets_id];
  94. //销售规则
  95. if( isset($org_tickets_array[$tickets_id]) ) {
  96. $org_tickets_info = $org_tickets_array[$tickets_id];
  97. if( $org_tickets_info["AUTHORITY_STATUS"] == 0 ) {
  98. continue;
  99. }
  100. $tickets_info["CUS_PRICE"] = $org_tickets_info["PROD_PRICE"];
  101. } else if( !isset($org_tickets_array3[$tickets_id]) ) {
  102. $org_tickets_agent = $org_tickets_array3[$tickets_id];
  103. if( $org_tickets_agent["AUTHORITY_STATUS"] == 0 ) {
  104. continue;
  105. }
  106. $tickets_info["CUS_PRICE"] = $org_tickets_agent["PROD_PRICE"];
  107. }
  108. $prod_name = $tickets_info["TICKET_NAME"];
  109. $start_end_info = $start_end_array[$tickets_info["TICKET_ID"]];
  110. 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"]]) ) {
  111. continue;
  112. }
  113. $insert_array["ticket_code"] = "NJYYT".$row_info["RUN_ID"] . "T" . $tickets_info["TICKET_ID"];
  114. $insert_array["prod_name"] = $prod_name;
  115. $insert_array["start_time"] = $res_start_time_array[$row_info["RUN_ID"]][$start_end_info["START_STATION_RES_ID"]];
  116. $insert_array["start_city"] = getDispAreaNameForCtrip($city_array[$start_end_info["START_STATION_AREA_ID"]]["AREA_NAME"]);
  117. $insert_array["end_city"] = getDispAreaNameForCtrip($city_array[$start_end_info["END_STATION_AREA_ID"]]["AREA_NAME"]);
  118. $insert_array["start_res"] = getDispResNameForCtrip($res_array[$start_end_info["START_STATION_RES_ID"]]["RES_NAME"]);
  119. $insert_array["end_res"] = getDispResNameForCtrip($res_array[$start_end_info["END_STATION_RES_ID"]]["RES_NAME"]);
  120. $insert_array["start_res_address"] = isset($res_extra_array[$start_end_info["START_STATION_RES_ID"]][279]) ? $res_extra_array[$start_end_info["START_STATION_RES_ID"]][279] : $insert_array["start_res"];
  121. $insert_array["end_res_address"] = isset($res_extra_array[$start_end_info["END_STATION_RES_ID"]][279]) ? $res_extra_array[$start_end_info["END_STATION_RES_ID"]][279] : $insert_array["end_res"];
  122. $insert_array["start_res_long"] = isset($res_extra_array[$start_end_info["START_STATION_RES_ID"]][212]) ? $res_extra_array[$start_end_info["START_STATION_RES_ID"]][212] : "";
  123. $insert_array["end_res_long"] = isset($res_extra_array[$start_end_info["END_STATION_RES_ID"]][212]) ? $res_extra_array[$start_end_info["END_STATION_RES_ID"]][212] : "";
  124. $insert_array["start_res_lat"] = isset($res_extra_array[$start_end_info["START_STATION_RES_ID"]][213]) ? $res_extra_array[$start_end_info["START_STATION_RES_ID"]][213] : "";
  125. $insert_array["end_res_lat"] = isset($res_extra_array[$start_end_info["END_STATION_RES_ID"]][213]) ? $res_extra_array[$start_end_info["END_STATION_RES_ID"]][213] : "";
  126. $insert_array["full_price"] = $tickets_info["CUS_PRICE"];
  127. $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, start_res_address, end_res_address, start_res_long, end_res_long, start_res_lat, end_res_lat, cus_price, mid_price, remain_count, cancel_flag,update_time) " .
  128. " 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["start_res_address"]}', '{$insert_array["end_res_address"]}','{$insert_array["start_res_long"]}', '{$insert_array["end_res_long"]}','{$insert_array["start_res_lat"]}', '{$insert_array["end_res_lat"]}',{$insert_array["full_price"]}, {$insert_array["full_price"]}, {$insert_array["remain_count"]}, 0,'{$update_time}' ) " .
  129. " 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_res_address='{$insert_array["start_res_address"]}',end_res_address='{$insert_array["end_res_address"]}',start_res_long='{$insert_array["start_res_long"]}',end_res_long='{$insert_array["end_res_long"]}',start_res_lat='{$insert_array["start_res_lat"]}',end_res_lat='{$insert_array["end_res_lat"]}',start_time='{$insert_array["start_time"]}',update_time='{$update_time}' ";
  130. $pdo2 = conn();
  131. if (is_object($pdo2)) {
  132. $result = $pdo2->exec($sql_insert);
  133. }
  134. }
  135. }
  136. $sql_update = " update outside_run set remain_count=0 where org_id=1286 AND update_time < '{$today} 00:00:00' ";
  137. $pdo_update = conn1();
  138. $pdo_update->exec($sql_update);
  139. //$sql_update = " UPDATE outside_ticket SET cancel_flag = 1 WHERE update_time < '{$today} 00:00:00' ";
  140. //$pdo_update2 = conn1();
  141. //$pdo_update2->exec($sql_update);
  142. echo $update_time." update success";
  143. exit();