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.
 
 
 
 

120 lines
5.1 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Steven
  5. * Date: 2016/8/16
  6. * Time: 11:57
  7. */
  8. require_once '/usr/share/nginx/ZZCS/coding/st-xm/Common/Mysql.php';
  9. require_once '/usr/share/nginx/ZZCS/coding/st-xm/Common/zizai_orderAPI.php';
  10. $current_time = date("Y-m-d H:i:s");
  11. $getOrderInfo = new orderService();
  12. $result = array();
  13. $can_sell_array = array("shz101", "zsz101");
  14. //获取所有可销售线路$ccode
  15. $return_result = $getOrderInfo->run_list(zizaiArgs::$USER);
  16. if ($return_result["code"] == 0) {
  17. $circuitry_list = $return_result["circuitry_list"]["circuitry"];
  18. }
  19. if (isset($circuitry_list['ccode'])) {
  20. $godate_array = $getOrderInfo->godate(zizaiArgs::$USER, $circuitry_list['ccode']);
  21. foreach ($godate_array['date_list']['godate'] as $godate) {
  22. if ($godate <= date("Y-m-d", strtotime("+10 days")) && $godate >= date("Y-m-d", time())) {
  23. $circuitry_list['godate'] = $godate;
  24. //获取班次的信息
  25. $runlist = $getOrderInfo->gorun(zizaiArgs::$USER, $circuitry_list['ccode'], $godate);
  26. //根据班次和时间获取所有的票种信息
  27. if (!isset($runlist['go_run_list']['run']['runid'])) {
  28. foreach ($runlist['go_run_list']['run'] as $key => $runInfo) {
  29. $ticketInfo = $getOrderInfo->ticket(zizaiArgs::$USER, $circuitry_list['ccode'], $runInfo['runid']);
  30. $runInfo['ticket_info'] = $ticketInfo['ticket_list']['ticket'];
  31. $runlist['go_run_list']['run'][$key] = $runInfo;
  32. }
  33. }
  34. $circuitry_list['runlist'] = $runlist['go_run_list']['run'];
  35. $result[] = $circuitry_list;
  36. }
  37. }
  38. } else {
  39. foreach ($circuitry_list as $circuitry) {
  40. if( !in_array($circuitry['ccode'],$can_sell_array) ) {continue;}
  41. //$result=$circuitry;
  42. $godate_array = $getOrderInfo->godate(zizaiArgs::$USER, $circuitry['ccode']); //获取指定线路可销售的运营日
  43. foreach ($godate_array['date_list']['godate'] as $godate) {
  44. if ($godate <= date("Y-m-d", strtotime("+10 days")) && $godate >= date("Y-m-d", time())) {
  45. $circuitry['godate'] = $godate;
  46. //获取班次的信息
  47. $runlist = $getOrderInfo->gorun(zizaiArgs::$USER, $circuitry['ccode'], $godate);
  48. //根据班次和时间获取所有的票种信息
  49. if (!isset($runlist['go_run_list']['run']['runid'])) {
  50. foreach ($runlist['go_run_list']['run'] as $key => $runInfo) {
  51. $ticketInfo = $getOrderInfo->ticket(zizaiArgs::$USER, $circuitry['ccode'], $runInfo['runid']);
  52. $runInfo['ticket_info'] = $ticketInfo['ticket_list']['ticket'];
  53. $runlist['go_run_list']['run'][$key] = $runInfo;
  54. }
  55. }
  56. $circuitry['runlist'] = $runlist['go_run_list']['run'];
  57. $result[] = $circuitry;
  58. }
  59. }
  60. }
  61. }
  62. foreach ($result as $lineInfo) {
  63. //var_dump($lineInfo);
  64. $org_id = 3;
  65. $line_code = $lineInfo['ccode'];
  66. $line_name = $lineInfo['cname'];
  67. $start_date = $lineInfo['godate'];
  68. $area = mb_substr($line_name, 0, (utf8_strlen($line_name) - 5), 'utf-8');
  69. $area_arr = explode("-", $area);
  70. $start_area = $area_arr[0];
  71. $end_area = $area_arr[1];
  72. $end_res = $area_arr[1];
  73. foreach ($lineInfo['runlist'] as $runInfo) {
  74. $run_code = $runInfo['runid'];
  75. $start_time = $runInfo['runtime'];
  76. $start_res = $runInfo['runarea'];
  77. foreach ($runInfo['ticket_info'] as $ticketInfo) {
  78. if ( isset($ticketInfo['ticketname']) ) {
  79. $prod_code = $ticketInfo['ticketid'];
  80. $cus_price = $ticketInfo['ticketprice'];
  81. $mid_price = $ticketInfo['agentprice'];
  82. $remain_count = $ticketInfo['ticketcount'];
  83. $prod_name = $ticketInfo['ticketname'];
  84. $child_pos = mb_strpos($prod_name,"儿童");
  85. if( $mid_price <= 0 || mb_strlen($prod_name) < 5 || $child_pos !== false ) {
  86. continue;
  87. }
  88. $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) " .
  89. " VALUES ( {$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, 0,'{$current_time}' ) " .
  90. " ON DUPLICATE KEY UPDATE remain_count = $remain_count,update_time='{$current_time}' ";
  91. $pdo2 = conn();
  92. if (is_object($pdo2)) {
  93. $result = $pdo2->exec($sql_insert);
  94. }
  95. }
  96. }
  97. }
  98. }
  99. // 计算中文字符串长度
  100. function utf8_strlen($string = null)
  101. {
  102. // 将字符串分解为单元
  103. preg_match_all("/./us", $string, $match);
  104. // 返回单元个数
  105. return count($match[0]);
  106. }