Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

140 строки
5.0 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Steven
  5. * Date: 2016/12/27
  6. * Time: 17:21
  7. *
  8. * CS系统任务通知
  9. * 定时任务:没十五分钟查看当前还有无待处理订单,有则通知客服
  10. */
  11. require_once __DIR__.'/../domain.php';
  12. class sendRTX
  13. {
  14. public function reportforCS()
  15. {
  16. $mem = new Memcache;
  17. $mem->connect("127.0.0.1", 11211);
  18. $newOrder = $mem->get('hotel_newOrder');
  19. if ($newOrder || count($newOrder) > 0) {
  20. foreach ($newOrder as $value) {
  21. foreach ($value as $k => $v) {
  22. //313待发单、382异常处理待发单,383异常处理已取消,148正常已取消,147已完成,198待确认,314已安排。
  23. $data[$v['type']][] = $v;
  24. }
  25. }
  26. $flag = false;
  27. $msg = "你还有以下事项待处理:\n";
  28. foreach ($data as $d_k => $d_v) {
  29. if (count($data[$d_k]) > 0) {
  30. if ($d_k == 313) {
  31. $msg .= "待发单:" . count($data[$d_k]) . "个\n";
  32. $flag = true;
  33. }
  34. if ($d_k == 198) {
  35. $msg .= "待确认:" . count($data[$d_k]) . "个\n";
  36. $flag = true;
  37. }
  38. if ($d_k == 382) {
  39. $msg .= "异常处理待发单:" . count($data[$d_k]) . "个\n";
  40. $flag = true;
  41. }
  42. }
  43. }
  44. if (!$flag) {
  45. return false;
  46. }
  47. $title = "订单处理提醒:\n";
  48. $this->sendMessageToRTX($title, $msg);
  49. }
  50. }
  51. public function httpsPost($url, $param = array())
  52. {
  53. $ch = curl_init(); // 初始化一个 cURL 对象
  54. curl_setopt($ch, CURLOPT_URL, $url); // 设置需要抓取的URL
  55. curl_setopt($ch, CURLOPT_HEADER, 0); // // 设置header
  56. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
  57. // 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
  58. curl_setopt($ch, CURLOPT_POST, 1);
  59. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param)); // 传递一个作为HTTP “POST”操作的所有数据的字符串。//http_build_query:生成 URL-encode 之后的请求字符串
  60. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  61. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  62. curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  63. 'Content-type:application/x-www-form-urlencoded;charset=utf-8'
  64. ));
  65. $rtn = curl_exec($ch); // 运行cURL,请求网页
  66. if ($errno = curl_errno($ch)) {
  67. throw new Exception ('Curl Error(' . $errno . '):' . curl_error($ch));
  68. }
  69. curl_close($ch); // 关闭URL请求
  70. return $rtn; // 返回获取的数据
  71. }
  72. public function sendMessageToRTX($title, $msg)
  73. {
  74. $url = $this->sinaShortenUrl('http://'. CS_DOMAIN. '/zz-jd/hotel_order_list.html');
  75. $msg = $msg . "\n点击查看 " . $url;
  76. $cuntomer_list = 'gaoj,hel,lisb,lufy,panlj,zhusy,shifp,wangxj,chenyb,luocj,zhucy'; //目的地资源部客服
  77. $arr = array(
  78. 'title' => $title,
  79. 'receiver' => $cuntomer_list,
  80. 'msg' => $msg,
  81. );
  82. $this->httpsPost('http://180.168.4.58:8012/SendNotify.cgi', $arr);
  83. }
  84. //获取短网址
  85. public function sinaShortenUrl($long_url)
  86. {
  87. $url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=31641035' . '&url_long=' . $long_url;
  88. //获取请求结果
  89. $result = $this->curlQuery($url);
  90. $json = json_decode($result);
  91. //异常情况返回false
  92. if (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == '')
  93. return false;
  94. else
  95. return $json[0]->url_short;
  96. }
  97. /**
  98. * User:Steven
  99. *
  100. * @param $url
  101. * @return mixed
  102. */
  103. function curlQuery($url)
  104. {
  105. //设置附加HTTP头
  106. $addHead = array(
  107. "Content-type: application/json"
  108. );
  109. //初始化curl,当然,你也可以用fsockopen代替
  110. $curl_obj = curl_init();
  111. //设置网址
  112. curl_setopt($curl_obj, CURLOPT_URL, $url);
  113. //附加Head内容
  114. curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead);
  115. //是否输出返回头信息
  116. curl_setopt($curl_obj, CURLOPT_HEADER, 0);
  117. //将curl_exec的结果返回
  118. curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1);
  119. //设置超时时间
  120. curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15);
  121. //执行
  122. $result = curl_exec($curl_obj);
  123. //关闭curl回话
  124. curl_close($curl_obj);
  125. return $result;
  126. }
  127. }
  128. $sendRTX = new sendRTX();
  129. $sendRTX->reportforCS();
  130. ?>