92 lines
2.5 KiB
PHP
92 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace common\models;
|
|
|
|
use common\components\DateUtil;
|
|
use common\components\Helper;
|
|
use common\helpers\AppDateTimeHelper;
|
|
use Yii;
|
|
use yii\behaviors\TimestampBehavior;
|
|
use yii\helpers\ArrayHelper;
|
|
|
|
/**
|
|
* This is the model class for table "virtual_key".
|
|
*
|
|
* @property integer $id
|
|
* @property integer $id_card
|
|
* @property integer $id_key
|
|
* @property integer $number
|
|
* @property string $direction_in_at
|
|
* @property string $direction_out_at
|
|
* @property string $created_at
|
|
* @property string $updated_at
|
|
*/
|
|
class VirtualKey extends \yii\db\ActiveRecord
|
|
{
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public static function tableName()
|
|
{
|
|
return 'virtual_key';
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
[['id_card', 'id_key'], 'integer'],
|
|
[[ 'created_at', 'updated_at'], 'required'],
|
|
[[ 'direction_in_at', 'created_at', 'updated_at'], 'safe']
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function attributeLabels()
|
|
{
|
|
return [
|
|
'id' => Yii::t('common/virtualkey', 'ID'),
|
|
'id_card' => Yii::t('common/virtualkey', 'Id Card'),
|
|
'id_key' => Yii::t('common/virtualkey', 'Id Key'),
|
|
'direction_in_at' => Yii::t('common/virtualkey', 'Direction In At'),
|
|
'direction_out_at' => Yii::t('common/virtualkey', 'Direction Out At'),
|
|
'created_at' => Yii::t('common/virtualkey', 'Created At'),
|
|
'updated_at' => Yii::t('common/virtualkey', 'Updated At'),
|
|
];
|
|
}
|
|
|
|
public function behaviors()
|
|
{
|
|
return ArrayHelper::merge([
|
|
[
|
|
'class' => TimestampBehavior::className(),
|
|
'value' => function () {
|
|
return DateUtil::formatDateTimeUtc(DateUtil::utcDateTime() );
|
|
}
|
|
]
|
|
],
|
|
parent::behaviors());
|
|
}
|
|
|
|
public static function readNotInCreatedInTheLastXMinutesByIdCard($idCard,$minutes){
|
|
|
|
$date = DateUtil::utcDateTime();
|
|
$date = DateUtil::minusMinutes($date,$minutes );
|
|
$dateStr = DateUtil::formatDateTimeUtc($date);
|
|
|
|
$virtualKeysNotInCreatedInTheLastXMinuteForCard = VirtualKey::find()
|
|
->andWhere(['id_card' => $idCard])
|
|
->andWhere([">=" ,'created_at',$dateStr])
|
|
->andWhere(['direction_in_at' => null])
|
|
->orderBy(['created_at' => SORT_DESC])
|
|
->all();
|
|
return $virtualKeysNotInCreatedInTheLastXMinuteForCard;
|
|
}
|
|
|
|
|
|
}
|