ReleaseCrontabController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * 释放能量池 定时任务
  4. */
  5. namespace addons\Seed\console\controllers;
  6. use addons\Seed\common\enums\SeedEnum;
  7. use addons\Seed\common\logic\SeedLogic;
  8. use common\enums\addons\MallAddonsEnum;
  9. use common\enums\StatusEnum;
  10. use common\models\mall\Mall;
  11. use common\models\mall\MallAddons;
  12. use yii\console\Controller;
  13. use yii\console\ExitCode;
  14. class ReleaseCrontabController extends Controller
  15. {
  16. /**
  17. * 自动释放能量池 - 每小时执行一次
  18. * @Author: lun
  19. * @DateTime: 2022/8/15 0015 16:49
  20. * @Copyright: copyright (c) 2021 广东七件事集团
  21. * @return int
  22. */
  23. public function actionExec(){
  24. try {
  25. // 获取已安装种子金应用的商城
  26. $install_list = MallAddons::find()->where(['addons_name' => SeedEnum::ADDONS_NAME, 'addons_status' => MallAddonsEnum::INSTALL, 'status' => StatusEnum::ENABLED])->asArray()->all();
  27. if (empty($install_list)) {
  28. echo '操作成功';
  29. return ExitCode::OK;
  30. }
  31. // 循环释放处理
  32. foreach ($install_list as $item) {
  33. // 检测商城是否有效
  34. $is_enable = Mall::find()->select('id')->where(['id' => $item['mall_id'], 'is_recycle' => StatusEnum::DISABLED, 'status' => StatusEnum::ENABLED])->asArray()->one();
  35. if (empty($is_enable)) continue;
  36. $res = SeedLogic::release($item['mall_id']);// 释放
  37. if ($res === false) throw new \Exception('商城id:' . $item['mall_id'] .'种子金释放失败:'. SeedLogic::getStaticError());
  38. }
  39. echo '操作成功';
  40. return ExitCode::OK;
  41. } catch (\Exception $e) {
  42. echo $e->getMessage();
  43. $this->stderr('Error: ' . ExitCode::getReason(ExitCode::UNSPECIFIED_ERROR));
  44. return ExitCode::UNSPECIFIED_ERROR;
  45. }
  46. }
  47. }