123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- /**
- * @author: xaboy<365615158@qq.com>
- * @day: 2017/11/28
- */
- namespace app\admin\model\system;
- use crmeb\traits\ModelTrait;
- use crmeb\basic\BaseModel;
- /**
- * 管理员操作记录
- * Class SystemLog
- * @package app\admin\model\system
- */
- class SystemLog extends BaseModel
- {
- /**
- * 数据表主键
- * @var string
- */
- protected $pk = 'id';
- /**
- * 模型名称
- * @var string
- */
- protected $name = 'system_log';
- use ModelTrait;
- protected $insert = ['add_time'];
- protected function setAddTimeAttr()
- {
- return time();
- }
- /**
- * 管理员访问记录
- *
- * @param $adminId
- * @param $adminName
- * @param $type
- * @return SystemLog|\think\Model
- */
- public static function adminVisit($adminId,$adminName,$type)
- {
- $request = app('request');
- $module = app('http')->getName();
- $controller = $request->controller();
- $action = $request->action();
- $route = $request->route();
- self::startTrans();
- try{
- $data = [
- 'method'=>app('http')->getName(),
- 'admin_id'=>$adminId,
- 'add_time'=>time(),
- 'admin_name'=>$adminName,
- 'path'=>SystemMenus::getAuthName($action,$controller,$module,$route),
- 'page'=>SystemMenus::getVisitName($action,$controller,$module,$route)?:'未知',
- 'ip'=>$request->ip(),
- 'type'=>$type
- ];
- $res = self::create($data);
- if($res){
- self::commit();
- return true;
- }else{
- self::rollback();
- return false;
- }
- }catch (\Exception $e){
- self::rollback();
- return self::setErrorInfo($e->getMessage());
- }
- }
- /**
- * 手动添加管理员当前页面访问记录
- * @param array $adminInfo
- * @param string $page 页面名称
- * @return object
- */
- public static function setCurrentVisit($adminInfo, $page)
- {
- $request = app('request');
- $module = app('http')->getName();
- $controller = $request->controller();
- $action = $request->action();
- $route = $request->route();
- $data = [
- 'method'=>$request->method(),
- 'admin_id'=>$adminInfo['id'],
- 'path'=>SystemMenus::getAuthName($action,$controller,$module,$route),
- 'page'=>$page,
- 'ip'=>$request->ip()
- ];
- return self::create($data);
- }
- /**
- * 获取管理员访问记录
- * @param array $where
- * @return array
- */
- public static function systemPage($where = array()){
- $model = new self;
- $model = $model->alias('l');
- if($where['pages'] !== '') $model = $model->where('l.page','LIKE',"%$where[pages]%");
- if($where['path'] !== '') $model = $model->where('l.path','LIKE',"%$where[path]%");
- if($where['ip'] !== '') $model = $model->where('l.ip','LIKE',"%$where[ip]%");
- if($where['admin_id'] != '')
- $adminIds = $where['admin_id'];
- else
- $adminIds = SystemAdmin::where('level','>=',$where['level'])->column('id','id');
- $model = $model->where('l.admin_id','IN',$adminIds);
- if($where['data'] !== ''){
- list($startTime,$endTime) = explode(' - ',$where['data']);
- $model = $model->where('l.add_time','>',strtotime($startTime));
- $model = $model->where('l.add_time','<',strtotime($endTime));
- }
- $model->where('l.type','system');
- $model = $model->order('l.id desc');
- return self::page($model,$where);
- }
- /**
- * 删除超过90天的日志
- * @throws \Exception
- */
- public static function deleteLog(){
- $model = new self;
- $model->where('add_time','<',time()-7776000);
- $model->delete();
- }
- }
|