Example #1
0
 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();
         }
     }
 }