LogController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace app\admin\controller;
  3. use think\exception\ValidateException;
  4. use app\model\Log;
  5. use think\facade\Db;
  6. class LogController extends Base
  7. {
  8. /*
  9. * @Description 数据列表
  10. */
  11. function index()
  12. {
  13. $username = input('post.username', '', 'serach_in');
  14. $type = input('post.type', '', 'serach_in');
  15. $create_time = input('post.create_time', '', 'serach_in');
  16. $where = [];
  17. $where['weid'] = weid();
  18. if (!empty($username)) {
  19. $where['username'] = $username;
  20. }
  21. if (!empty($type)) {
  22. $where['type'] = $type;
  23. }
  24. $field = 'id,application_name,username,url,ip,create_time,type';
  25. $query = Log::where($where);
  26. if (!empty($create_time)) {
  27. $query->where('create_time','between', [strtotime($create_time[0]), strtotime($create_time[1])]);
  28. }
  29. $res = $query->field($field)->order('id desc')->paginate(getpage())->toArray();
  30. $data['data'] = $res;
  31. return $this->json($data);
  32. }
  33. /*
  34. * @Description 删除
  35. */
  36. function delete()
  37. {
  38. return $this->del(new Log());
  39. }
  40. /*
  41. * @Description 查看详情
  42. */
  43. function detail()
  44. {
  45. $id = $this->request->post('id', '', 'serach_in');
  46. if (!$id) throw new ValidateException('参数错误');
  47. $field = 'id,application_name,username,url,ip,useragent,content,errmsg,create_time,type';
  48. $res = Log::field($field)->find($id);
  49. return $this->json(['data' => $res]);
  50. }
  51. function dumpdata()
  52. {
  53. $page = $this->request->post('page', 1, 'intval');
  54. $limit = config('my.dumpsize') ? config('my.dumpsize') : 1000;
  55. $username = input('post.username', '', 'serach_in');
  56. $type = input('post.type', '', 'serach_in');
  57. $create_time = input('post.create_time', '', 'serach_in');
  58. $where = [];
  59. if (!empty($username)) {
  60. $where['username'] = $username;
  61. }
  62. if (!empty($type)) {
  63. $where['type'] = $type;
  64. }
  65. $field = 'id,application_name,username,url,ip,useragent,content,errmsg,create_time,type';
  66. $query = Log::where($where);
  67. if (!empty($create_time)) {
  68. $query->where('create_time','between', [strtotime($create_time[0]), strtotime($create_time[1])]);
  69. }
  70. $count = $query->count();
  71. $res = $query->field($field)->order('id desc')->limit(($page - 1) * $limit, $limit)->select()->toArray();
  72. //var_dump($query->getLastSql());
  73. foreach ($res as $key => $val) {
  74. $res[$key]['create_time'] = date('Y-m-d H:i:s', $val['create_time']);
  75. $res[$key]['type'] = getItemVal($val['type'], '[{"key":"登录日志","val":"1","label_color":"info"},{"key":"操作日志","val":"2","label_color":"warning"},{"key":"异常日志","val":"3","label_color":"danger"}]');
  76. }
  77. $data['header'] = explode(',', '编号,应用名,用户名,请求url,客户端ip,浏览器信息,请求内容,异常信息,创建时间,类型');
  78. $data['percentage'] = ceil($page * 100 / ceil($count / $limit));
  79. $data['filename'] = '日志管理.' . config('my.dump_extension');
  80. $data['data'] = $res;
  81. return $this->json($data);
  82. }
  83. }