TimerSubscribe.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace crmeb\subscribes;
  3. use app\admin\model\system\SystemAttachment;
  4. use app\models\store\StoreBargainUser;
  5. use app\models\store\StoreOrder;
  6. use app\models\store\StorePink;
  7. use app\models\user\UserToken;
  8. use crmeb\services\async\ClearanceCalc;
  9. use crmeb\services\async\LuckyCalc;
  10. use think\facade\Db;
  11. use think\facade\Log;
  12. use crmeb\services\async\WechatNotify;
  13. /**
  14. * 定时任务类
  15. * Class TaskSubscribe
  16. * @package crmeb\subscribes
  17. */
  18. class TimerSubscribe
  19. {
  20. public function handle()
  21. {
  22. }
  23. /**
  24. * 2秒钟执行的方法
  25. */
  26. public function onTimer_2()
  27. {
  28. }
  29. /**
  30. * 6秒钟执行的方法
  31. */
  32. public function onTimer_6()
  33. {
  34. }
  35. /**
  36. * 10秒钟执行的方法
  37. */
  38. public function onTimer_10()
  39. {
  40. WechatNotify::notify();
  41. }
  42. /**
  43. * 30秒钟执行的方法
  44. */
  45. public function onTimer_30()
  46. {
  47. try {
  48. Db::startTrans();
  49. StoreBargainUser::startBargainUserStatus();//批量修改砍价状态为 砍价失败
  50. Db::commit();
  51. } catch (\Exception $e) {
  52. Db::rollback();
  53. }
  54. try {
  55. Db::startTrans();
  56. StoreOrder::orderUnpaidCancel();//订单未支付默认取消
  57. Db::commit();
  58. } catch (\Exception $e) {
  59. Db::rollback();
  60. }
  61. try {
  62. Db::startTrans();
  63. StoreOrder::startTakeOrder();//7天自动收货
  64. Db::commit();
  65. } catch (\Exception $e) {
  66. Db::rollback();
  67. }
  68. try {
  69. Db::startTrans();
  70. StorePink::statusPink();//拼团到期修改状态
  71. Db::commit();
  72. } catch (\Exception $e) {
  73. Db::rollback();
  74. }
  75. }
  76. /**
  77. * 60秒钟执行的方法
  78. */
  79. public function onTimer_60()
  80. {
  81. $tm = localtime(time(), true);
  82. if ($tm['tm_min'] == 0 && $tm['tm_sec'] == 0) {
  83. // 整点做活动
  84. $activities = [new ClearanceCalc(), new LuckyCalc()];
  85. foreach($activities as $activity) {
  86. $activity->calc();
  87. }
  88. }
  89. Log::warning('onTimer_60()');
  90. }
  91. /**
  92. * 180秒钟执行的方法
  93. */
  94. public function onTimer_180()
  95. {
  96. }
  97. /**
  98. * 300秒钟执行的方法
  99. */
  100. public function onTimer_300()
  101. {
  102. UserToken::delToken();//删除一天前的过期token
  103. SystemAttachment::emptyYesterdayAttachment();//清除昨日海报
  104. StoreOrder::sendTen();//10分钟未付款发送通知
  105. }
  106. }