PkRankCrontabController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wniu
  5. * Date: 2022/6/5
  6. * Time: 8:14 下午
  7. */
  8. namespace addons\Pk\console\controllers;
  9. use addons\Pk\common\enums\PkEnum;
  10. use addons\Pk\common\models\PkActivity;
  11. use common\enums\StatusEnum;
  12. use yii\console\Controller;
  13. class PkRankCrontabController extends Controller
  14. {
  15. public function actionDoJob()
  16. {
  17. $now_time = time();
  18. self::doActivityOpenJob($now_time);
  19. self::doActivityExpireJob($now_time);
  20. }
  21. public static function doActivityOpenJob($now_time)
  22. {
  23. $list = PkActivity::find()->where(['active_status' => PkEnum::STATUS_NOT_START, 'status' => StatusEnum::ENABLED])->all();
  24. foreach ($list as $k) {
  25. if ($k->attributes['begin_time'] < $now_time && $k->attributes['end_time'] > $now_time) {
  26. $k->attributes = ['active_status' => PkEnum::STATUS_STARTED];
  27. $k->save();
  28. }
  29. }
  30. }
  31. /**
  32. * 执行活动到期任务
  33. */
  34. public static function doActivityExpireJob($now_time)
  35. {
  36. $list = PkActivity::find()->where(['active_status' => PkEnum::STATUS_STARTED, 'status' => StatusEnum::ENABLED])->all();
  37. foreach ($list as $k) {
  38. if ($k->attributes['end_time'] <= $now_time) {
  39. $k->attributes = ['active_status' => PkEnum::STATUS_END];
  40. $k->save();
  41. }
  42. }
  43. }
  44. }