1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/buwangyun-bwsaas

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
RequestTrait.php 2.5 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
hnlg666 Отправлено 5 лет назад 7545112
<?php
// +----------------------------------------------------------------------
// | Bwsaas
// +----------------------------------------------------------------------
// | Copyright (c) 2015~2020 http://www.buwangyun.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Gitee ( https://gitee.com/buwangyun/bwsaas )
// +----------------------------------------------------------------------
// | Author: buwangyun <hnlg666@163.com>
// +----------------------------------------------------------------------
// | Date: 2020-9-28 10:55:00
// +----------------------------------------------------------------------
namespace buwang\traits;
/**
* 同用户新增请求限制
* @author: JiaoYuKun
* @day: 2019/12/9
*/
trait RequestTrait
{
public static $countdown = 0; //剩余提交时间
/** 根据时间间隔限制新增数据数量
* @param int $interval 插入数据时间间隔
* @param array $where 查询条件
* @param null $time_field 新增时间字段
* @return bool
* @throws \Exception
*/
public function existInterval($interval = 180, $where = [], $time_field = null)
{
self::$countdown = $interval;
//获取当前新增时间戳字段名
if ($time_field) {
$addTimeField = $time_field;
} else {
//如果存在模型时间戳字段则使用
if (property_exists($this, 'createTime')) {
if ($interval) {
$addTimeField = $this->createTime;
}
} else {
throw new \Exception("未设置新增字段");//主动抛异常
}
}
//得到该数据集最后的添加时间
$addtime_start = self::where($where)->max($addTimeField);
//通过间隔时间计算得到时间区间
$addtime_end = $addtime_start + $interval;
$time = time();
//判断当前时间是否属于该时间区间集
//属于则说明在间隔时间内,返回false,不允许继续
if ($addtime_start < $time && $time < $addtime_end) {
//得到剩余倒计时秒数
self::$countdown = $addtime_end - $time;
return false;
} else {
self::$countdown = 0;
//不属于则说明在间隔时间外,返回true,允许继续
return true;
}
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/buwangyun-bwsaas.git
git@gitlife.ru:oschina-mirror/buwangyun-bwsaas.git
oschina-mirror
buwangyun-bwsaas
buwangyun-bwsaas
v1.4.0