Слияние кода завершено, страница обновится автоматически
<?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 )