AdminLog.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: 中闽 < 1464674022@qq.com >
  5. * Date: 2023/02/05
  6. * Time: 20:33
  7. */
  8. namespace app\admin\controller;
  9. use app\admin\controller\base\Permissions;
  10. use app\admin\model\AdminMenu;
  11. use think\Db;
  12. use think\Hook;
  13. class AdminLog extends Permissions
  14. {
  15. /**
  16. * 管理员操作记录
  17. * @return mixed
  18. */
  19. public function index()
  20. {
  21. $model = new \app\admin\model\AdminLog();
  22. if ($this->request->isAjax()) {
  23. $post = $this->request->param();
  24. $where = [];
  25. if (isset($post['admin_menu_id']) and $post['admin_menu_id'] > 0) {
  26. $where['admin_menu_id'] = $post['admin_menu_id'];
  27. }
  28. if (isset($post['admin_id']) and $post['admin_id'] > 0) {
  29. $where['admin_id'] = $post['admin_id'];
  30. }
  31. if (isset($post['create_time']) and !empty($post['create_time'])) {
  32. $timerang = explode(' - ', $post['create_time']);
  33. $min_time = strtotime($timerang[0]);
  34. $max_time = strtotime($timerang[1]);
  35. $where['create_time'] = [['>=', $min_time], ['<=', $max_time]];
  36. }
  37. $count = $model->where($where)->count();
  38. $data = $model->where($where)->page($post['page']??0, $post['limit']??15)->order('id desc')->select();
  39. $admin_cates = Db::name('admin_cate')->column('name', 'id');
  40. foreach ($data as $k => $v) {
  41. $v['title'] = !empty($v->menu) ? $v->menu->name : 'no route';
  42. $v['params'] = htmlspecialchars($v->params);
  43. $v['person'] = $v->admin->nickname;
  44. if (!empty($v->admin_id)) {
  45. $v['person'] .= '<' . $admin_cates[$v->admin->admin_cate_id] . '>';
  46. }
  47. $data[$k] = $v;
  48. }
  49. return array('code' => 0, 'count' => $count, 'data' => $data);
  50. } else {
  51. //菜单
  52. $model = new AdminMenu();
  53. $menu = $model->order('orders asc')->select();
  54. $menus = $model->menulist($menu);
  55. $this->assign('menus', $menus);
  56. //管理员
  57. $this->assign('adminer', Db::name('admin')->select());
  58. return $this->fetch();
  59. }
  60. }
  61. //清空log
  62. public function clearLog()
  63. {
  64. $prefix = \think\Env::get("db_prefix", "tplay_");
  65. Db::execute("TRUNCATE {$prefix}admin_log");
  66. //
  67. $result = Hook::exec('app\\common\\behavior\\AdminLogBehavior', 'run', $params);
  68. $this->success("执行成功");
  69. }
  70. }