TaskFunc.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace common\libs\taskQueue;
  3. use common\helpers\Cache;
  4. use common\helpers\Date;
  5. use common\models\forms\HistoryBonusForm;
  6. use common\models\forms\OrderLogisticsForm;
  7. use common\models\TaskQueue;
  8. class TaskFunc
  9. {
  10. /**
  11. * 初始化自动备份余额任务
  12. */
  13. public static function initAutoBakBalance(){
  14. // 查看数据库中是否存在未开始的备份奖金表的任务,如果没有就添加一个新任务
  15. if(!TaskQueue::find()->where('TYPE=:TYPE AND CONTENT=:CONTENT AND STARTED_AT>:STARTED_AT', [':TYPE'=>Queue::TYPE_FUNC, ':CONTENT'=>TaskFunc::class.'::autoBakBonusTable', ':STARTED_AT'=>Date::nowTime()])->asArray()->exists()){
  16. // 获取站点配置中的备份时间
  17. $config = Cache::getSystemConfig();
  18. $backupWeekDate = (int)$config['backupWeekDate']['VALUE'];
  19. $backupTime = (int)$config['backupTime']['VALUE'];
  20. Queue::instance()->addTask(Queue::TYPE_FUNC, TaskFunc::class.'::autoBakBonusTable', [], Queue::LOOP_TYPE_WEEK, $backupWeekDate.','.$backupTime.':00', 0);
  21. }
  22. }
  23. /**
  24. * 自动备份奖金表
  25. * @throws \yii\base\InvalidConfigException
  26. *
  27. */
  28. public static function autoBakBonusTable(){
  29. $form = new HistoryBonusForm();
  30. $form->taskAutoBackup();
  31. }
  32. /**
  33. * 测试队列任务
  34. */
  35. public static function testTaskQueue(){
  36. print_r('执行到测试任务'.PHP_EOL);
  37. }
  38. public static function initAutoOrderLogistics()
  39. {
  40. // 查看数据库中是否存在未开始的发送订单的任务,如果没有就添加一个新任务
  41. // $taskQueue = TaskQueue::find()->where('TYPE = :TYPE AND CONTENT = :CONTENT AND STARTED_AT > :STARTED_AT', [':TYPE' => Queue::TYPE_FUNC, ':CONTENT' => TaskFunc::class . '::autoSendLogistics', ':STARTED_AT' => Date::nowTime()])->asArray()->exists();
  42. // if (!$taskQueue) {
  43. // // 获取站点配置中的备份时间
  44. // $config = Cache::getSystemConfig();
  45. // $backupTime = (int)$config['sendOrderTime']['VALUE'];
  46. // Queue::instance()->addTask(Queue::TYPE_FUNC, TaskFunc::class . '::autoSendLogistics', [], Queue::LOOP_TYPE_DAY, $backupTime . ':00', 0);
  47. // }
  48. self::autoSendLogistics();
  49. }
  50. /**
  51. * 自动发送订单到物流站
  52. * @return void
  53. */
  54. public static function autoSendLogistics(){
  55. $form = new OrderLogisticsForm();
  56. $form->taskAutoSendEmail();
  57. }
  58. }