public function initialize()
 {
     $this->setConnectionService('db');
     // 可修改连接的数据库
     $this->addBehavior(new SoftDelete(array('field' => 'isdeleted', 'value' => BaseModel::DELETED)));
     $operationLog = new OperationLog();
     $cacheToken = json_decode($this->getDI()->getSession()->get('token'));
     if (null !== $cacheToken) {
         // 一些公共的接口是没有登录信息的
         $operationLog->setUserId($cacheToken->user_id);
     }
     $this->addBehavior($operationLog);
 }
 /**
  * 操作日志列表
  */
 public function ActionOperationLogList()
 {
     $criteria = new CDbCriteria();
     // 判断查询类型 (分页查询 / 条件查询)
     $searchType = Yii::app()->request->getParam('searchType');
     if ($searchType === 'page') {
         $search_condition = unserialize(base64_decode(Yii::app()->request->getParam('search_condition')));
         // 对分布传来的数据进行还原
     } else {
         // 如有搜索条件 则获取条件并过滤条件数组中的空格与空值
         if (!empty($_POST['search'])) {
             foreach ($_POST['search'] as $key => $val) {
                 $search_condition[$key] = trim($val);
             }
             $search_condition = array_filter($search_condition);
         } else {
             $search_condition = '';
         }
     }
     // 增加搜索条件 [S]
     // 搜索条件中包含时间 则添加时间查询条件
     if (!empty($search_condition['start_time']) || !empty($search_condition['end_time'])) {
         // 如起始时间与结束时间一致 则查询同一个时间点的数据
         if (!empty($search_condition['start_time']) && !empty($search_condition['end_time']) && $search_condition['start_time'] == $search_condition['end_time']) {
             $criteria->addSearchCondition('CreationDate', $search_condition['start_time']);
         } else {
             // 1.只按起始时间查询 2.只按结束时间查询 3.按起始+结束时间段查询
             if (!empty($search_condition['start_time']) && empty($search_condition['end_time'])) {
                 $criteria->addCondition('CreationDate >= :start_time');
                 $criteria->params[':start_time'] = $search_condition['start_time'] . ' 23:59:59';
             } else {
                 if (empty($search_condition['start_time']) && !empty($search_condition['end_time'])) {
                     $criteria->addCondition('CreationDate <= :end_time');
                     $criteria->params[':end_time'] = $search_condition['end_time'] . ' 23:59:59';
                 } else {
                     $criteria->addBetweenCondition('CreationDate', $search_condition['start_time'], $search_condition['end_time']);
                 }
             }
         }
     }
     // 搜索条件中包含真实姓名 则添加关联查询及条件
     if (!empty($search_condition['real_name'])) {
         $criteria->with = array('account' => array('joinType' => 'INNER JOIN', 'condition' => 'account.RealName="' . $search_condition['real_name'] . '"'));
     }
     //增加搜索条件 [E]
     // 分页配置
     $criteria->order = 't.ID DESC';
     $count = OperationLog::model()->count($criteria);
     $pager = new CPagination($count);
     if (!empty($search_condition)) {
         //判断是否存在搜索条件,并对搜索条件进行数据处理(便于url传输)
         $pager->params = array('search_condition' => base64_encode(serialize($search_condition)), 'searchType' => 'page');
     }
     $pager->pageSize = 20;
     $pager->applyLimit($criteria);
     // 获取日志列表
     $operation_log_list = OperationLog::model()->findAll($criteria);
     // 跳转至用户操作日志页面
     $this->render('list_operation_log', array('operation_log_list' => $operation_log_list, 'pages' => $pager, 'search_condition' => $search_condition));
 }
 /**
  * 添加用户操作日志
  * @param $log 描述详细操作
  * @return bool
  */
 public static function AddOperationLog($log)
 {
     if (!empty($log)) {
         $operation_log = new OperationLog();
         $operation_log->Description = $log;
         // 详细操作
         $operation_log->UserId = Yii::app()->user->id;
         // 用户Id
         $operation_log->CreationDate = new CDbExpression('NOW()');
         // 日志生成时间
         $operation_log->save();
         // 保存日志
     } else {
         return false;
     }
 }