public function operatequota() { $organID = Yii::app()->user->getOrganID(); $username = Yii::app()->user->getState('userName'); $userid = Yii::app()->user->id; $route = Yii::app()->getController()->getRoute(); $url = Yii::app()->createUrl('upload/quota') . '?OrganID=' . $organID . '&username='******'&UserID=' . $userid . '&Route=' . str_replace('/', '-', $route); $c = new EMongoCriteria(); $c->OperUrl('==', $route); $c->OrganID('==', $organID); $res = OperateQuota::model()->find($c); //从redis中取配额提醒配置 $QuotaRemind = Yii::app()->redis->get('QuotaRemind'); if (!$QuotaRemind) { //如果redis中没有就从数据库中取出来存到redis中 $QuotaRemind = $this->getQuotaRemind(); if ($QuotaRemind) { Yii::app()->redis->set('QuotaRemind', $QuotaRemind); } } $QuotaRemind = array_filter(explode(',', $QuotaRemind)); if (!$QuotaRemind) { $QuotaRemind = array('100%'); } $times = array(); foreach ($QuotaRemind as $v) { $times[] = round($v * $res->MaxNum / 100, 0); } $times = array_unique($times); $max = end($times); $url .= '&Time=' . ($res->Num + 1); if ($res) { //判断mongo记录时间是否为当天 $t = $_SERVER['REQUEST_TIME']; $today = date('Y-m-d', $t); $time = strtotime($today); $mongotime = date('Y-m-d', $res->Time); if ($mongotime == $today) { //mongo记录时间是当天,判断num是否大于等于maxnum,如果大于等于maxnum返回特定页面并发送危险信息到邮箱(参见登入) if ($res->MaxNum > $res->Num) { $res->Num = $res->Num + 1; $res->save(); } else { if ($res->MaxNum < $res->Num) { $currentnum = $res->Num; if ($currentnum > $max) { Yii::app()->controller->redirect(array('/site/fail')); die; } elseif ($currentnum == $max) { $res->Num = $res->Num + 1; $res->save(); $this->sendfscok($url); Yii::app()->controller->redirect(array('/site/fail')); die; } elseif (in_array($currentnum, $times)) { $this->sendfscok($url); } $res->Num = $res->Num + 1; $res->save(); } else { //发送提醒邮件 $res->Num = $res->Num + 1; $res->save(); $this->sendfscok($url); } } } else { $res->Num = 1; $res->Time = $t; $res->save(); } } }