Task.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace Heanup\App\Script\Controller;
  3. use Heanup\App\Api\Model\Dataoke;
  4. use Heanup\App\Api\Package\Database\Goods;
  5. use Heanup\App\Api\Package\Database\WechatTask;
  6. use Heanup\App\Script\Controller;
  7. use Heanup\Library\WechatLib;
  8. class Task extends Controller
  9. {
  10. protected function main()
  11. {
  12. while (true) {
  13. try {
  14. //开始商品采集
  15. $dataoke = new Dataoke();
  16. $wechat['wxid_saebe60wd0mi22'] = WechatLib::getInstance("http://myhome.97admin.com:8074/send");
  17. $wechat['wxid_2tv9hne5x9bm22'] = WechatLib::getInstance("http://myhome.97admin.com:8073/send");
  18. $hour = intval(date("H"));
  19. $key = "/tmp/get_data_v2_" . date("YmdH");
  20. $data = file_get_contents($key);
  21. if (!$data) {
  22. Goods::delete([':add_time' => date("Y-m-d H:i:s", time() - 86400 * 2)], "add_time<:add_time");
  23. for ($i = 1; $i <= 4; $i++) {
  24. $dataoke->getProducts($i);
  25. }
  26. file_put_contents($key, 1);
  27. }
  28. //商品采集结束,开始进行消息推送
  29. if ($hour >= 7 && $hour <= 24) {
  30. //收集待推送的群组列表
  31. $configs = $task_config = WechatTask::select([], ['status' => 1], "", null, 0, ['id' => false]);
  32. $result = $dataoke->send(0);
  33. while (!$result) {
  34. $result = $dataoke->send(0);
  35. }
  36. foreach ($configs as $item) {
  37. if ($item['id'] != 1) {
  38. $result = $dataoke->send(0, $item['user'], $result['data']);
  39. }
  40. if (!$result) {
  41. continue;
  42. }
  43. echo date("Y-m-d H:i:s") . "\t正在发送" . $item['user'] . "的宝贝:\t" . $result['data']['dtitle'] . PHP_EOL;
  44. if ($item['id'] == 1) {
  45. $wechat[$item['robot_wxid']]->sendImageMsg($result['pic'], $item['robot_wxid'], $item['group_id']);
  46. sleep(1);
  47. $wechat[$item['robot_wxid']]->sendTextMsg($result['msg'], $item['robot_wxid'], $item['group_id']);
  48. sleep(1);
  49. $_key = "/tmp/cache_" . $item['robot_wxid'];
  50. $date = intval(file_get_contents($_key));
  51. if (time() - $date > 3600 * 4 && $hour < 20) {
  52. $wechat[$item['robot_wxid']]->sendImageMsg("https://www.phplife.net/ele.jpg", $item['robot_wxid'], '6657767651@chatroom');
  53. file_put_contents($_key, time());
  54. }
  55. } else {
  56. $wechat[$item['robot_wxid']]->sendTextMsg($result['msg'], $item['robot_wxid'], $item['group_id']);
  57. sleep(1);
  58. $wechat[$item['robot_wxid']]->sendImageMsg($result['pic'], $item['robot_wxid'], $item['group_id']);
  59. sleep(1);
  60. }
  61. }
  62. $sleep = rand(500, 800);
  63. echo "休息" . $sleep . "秒" . PHP_EOL;
  64. sleep($sleep);
  65. } else {
  66. echo "当前时段不支持发送消息!";
  67. sleep(1801);
  68. }
  69. } catch (\Exception $exception) {
  70. print_r($exception);
  71. }
  72. }
  73. }
  74. }