// +---------------------------------------------------------------------- namespace app\admin\controller; use think\Db; use think\Cache; class WebLog extends Base { /* * 网站日志列表 */ public function weblog_list() { $methods=['GET','POST','PUT','DELETE','HEAD','PATCH','OPTIONS','Ajax','Pjax']; $request_module=input('request_module',''); $controllers=array(); $controllers_arr=array(); if($request_module){ $controllers_arr=\ReadClass::readDir(APP_PATH . $request_module. DS .'controller'); $controllers=array_keys($controllers_arr); } $request_controller=input('request_controller',''); $actions=array(); if($request_module && $request_controller){ $actions=$controllers_arr[$request_controller]; $actions=array_map('array_shift',$actions['method']); } $request_action=input('request_action',''); $request_method=input('request_method',''); //组成where $where=array(); $join = [ [config('database.prefix').'member_list b','b.member_list_id=a.uid', 'LEFT'] ]; if($request_module){ $where['module']=$request_module; } if($request_controller){ $where['controller']=$request_controller; } if($request_action){ $where['action']=$request_action; } if($request_method){ $where['method']=$request_method; } $weblog_list=Db::name('web_log')->where($where) ->order('otime desc')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]); $show=$weblog_list->render(); if($weblog_list){ $weblog_list=$weblog_list->toArray(); $weblog_list=$weblog_list['data']; foreach ($weblog_list as &$row){ $utype=$row['type']; $uid=$row['uid']; $name=''; if($utype==2){ $user=Db::name('admin')->where(['admin_id'=>$uid])->find(); if($user){ $name=$user['admin_username']; } }else{ $user=Db::name('member_list')->where(['member_list_id'=>$uid])->find(); if($user){ $name=$user['member_list_username']; } } $row['member_list_id']=$uid; $row['member_list_username']=$name; } } $this->assign('weblog_list',$weblog_list); $this->assign('page',$show); $this->assign('request_module',$request_module); $this->assign('request_controller',$request_controller); $this->assign('request_action',$request_action); $this->assign('request_method',$request_method); $this->assign('controllers',$controllers); $this->assign('actions',$actions); $this->assign('methods',$methods); if(request()->isAjax()){ return $this->fetch('ajax_weblog_list'); }else{ return $this->fetch(); } } /* * 网站日志删除 */ public function weblog_del() { $rst=Db::name('web_log')->delete(input('id')); if($rst!==false){ $this->success('删除成功',url('admin/WebLog/weblog_list')); }else{ $this -> error("删除失败",url('admin/WebLog/weblog_list')); } } /* * 网站日志全选删除 */ public function weblog_alldel() { $ids = input('id/a'); if(empty($ids)){ $this -> error("请至少选择一行",url('admin/WebLog/weblog_list')); } if(is_array($ids)){ $where = 'id in('.implode(',',$ids).')'; }else{ $where = 'id='.$ids; } $rst=Db::name('web_log')->where($where)->delete(); if($rst!==false){ $this->success("删除成功",url('admin/WebLog/weblog_list')); }else{ $this -> error("删除失败",url('admin/WebLog/weblog_list')); } } /* * 网站日志清空 */ public function weblog_drop() { $rst=Db::name('web_log')->where('id','gt',0)->delete(); if($rst!==false){ $this->success('清空成功',url('admin/WebLog/weblog_list')); }else{ $this -> error("清空失败",url('admin/WebLog/weblog_list')); } } /* * 网站日志设置显示 */ public function weblog_setting() { $web_log=config('web_log'); //模块 $web_log['not_log_module']=(isset($web_log['not_log_module']) && $web_log['not_log_module'])?join(',',$web_log['not_log_module']):''; $web_log['not_log_controller']=(isset($web_log['not_log_controller']) && $web_log['not_log_controller'])?join(',',$web_log['not_log_controller']):''; $web_log['not_log_action']=(isset($web_log['not_log_action']) && $web_log['not_log_action'])?join(',',$web_log['not_log_action']):''; $web_log['not_log_data']=(isset($web_log['not_log_data']) && $web_log['not_log_data'])?join(',',$web_log['not_log_data']):''; $web_log['not_log_request_method']=(isset($web_log['not_log_request_method']) && $web_log['not_log_request_method'])?join(',',$web_log['not_log_request_method']):''; //控制器 模块 $controllers=array(); $actions=array(); $modules=['home','admin']; foreach($modules as $module){ $arr=cache('controllers_'.$module); if(empty($arr)){ $arr=\ReadClass::readDir(APP_PATH . $module. DS .'controller'); cache('controllers'.'_'.$module,$arr); } if($arr){ foreach($arr as $key=>$v){ $controllers[$module][]=$module.'/'.$key; $actions[$module.'/'.$key]=array_map('array_shift',$v['method']); } } } $methods=['GET','POST','PUT','DELETE','HEAD','PATCH','OPTIONS','Ajax','Pjax']; $this->assign('methods',$methods); $this->assign('actions',$actions); $this->assign('modules',$modules); $this->assign('controllers',$controllers); $this->assign('web_log',$web_log); return $this->fetch(); } /* * 网站日志设置保存 */ public function weblog_runset() { $weblog_on=input('weblog_on',0,'intval')?true:false; //设置tags $configs=include APP_PATH.'tags.php'; $module_init=$configs['module_init']; if($weblog_on){ if(!in_array('app\\common\\behavior\\WebLog',$module_init)){ $module_init[]='app\\common\\behavior\\WebLog'; } }else{ $key = array_search('app\\common\\behavior\\WebLog', $module_init); if($key!==false){ unset($module_init[$key]); } } $configs=array_merge($configs,['module_init'=>$module_init]); file_put_contents(APP_PATH.'tags.php', "success('设置保存成功',url('admin/WebLog/weblog_setting')); }else{ $this->error('设置保存失败',url('admin/WebLog/weblog_setting')); } } }