You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.7 KiB
84 lines
1.7 KiB
5 years ago
|
<?php
|
||
|
/**
|
||
|
* Created by PhpStorm.
|
||
|
* User: xzz
|
||
|
* Date: 2018/4/11
|
||
|
* Time: 9:33
|
||
|
*/
|
||
|
namespace console\models;
|
||
|
|
||
|
use Yii;
|
||
|
use console\helpers\CronParser;
|
||
|
|
||
|
/**
|
||
|
* 定时任务模型
|
||
|
* @author jlb
|
||
|
*/
|
||
|
class Crontab extends \yii\db\ActiveRecord
|
||
|
{
|
||
|
public static function tableName()
|
||
|
{
|
||
|
return 'tb_crontab';
|
||
|
}
|
||
|
/**
|
||
|
* switch字段的文字映射
|
||
|
* @var array
|
||
|
*/
|
||
|
private $switchTextMap = [
|
||
|
0 => '关闭',
|
||
|
1 => '开启',
|
||
|
];
|
||
|
|
||
|
/**
|
||
|
* status字段的文字映射
|
||
|
* @var array
|
||
|
*/
|
||
|
private $statusTextMap = [
|
||
|
0 => '正常',
|
||
|
1 => '任务保存',
|
||
|
];
|
||
|
|
||
|
// public static function getDb()
|
||
|
// {
|
||
|
// #注意!!!替换成自己的数据库配置组件名称
|
||
|
// parent::getDb();
|
||
|
// }
|
||
|
/**
|
||
|
* 获取switch字段对应的文字
|
||
|
* @author jlb
|
||
|
* @return ''|string
|
||
|
*/
|
||
|
public function getSwitchText()
|
||
|
{
|
||
|
if(!isset($this->switchTextMap[$this->switch])) {
|
||
|
return '';
|
||
|
}
|
||
|
return $this->switchTextMap[$this->switch];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 获取status字段对应的文字
|
||
|
* @author jlb
|
||
|
* @return ''|string
|
||
|
*/
|
||
|
public function getStatusText()
|
||
|
{
|
||
|
if(!isset($this->statusTextMap[$this->status])) {
|
||
|
return '';
|
||
|
}
|
||
|
return $this->statusTextMap[$this->status];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 计算下次运行时间
|
||
|
* @author jlb
|
||
|
*/
|
||
|
public function getNextRunDate()
|
||
|
{
|
||
|
if (!CronParser::check($this->crontab_str)) {
|
||
|
throw new \Exception("格式校验失败: {$this->crontab_str}", 1);
|
||
|
}
|
||
|
return CronParser::formatToDate($this->crontab_str, 1)[0];
|
||
|
}
|
||
|
|
||
|
}
|