Log.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 海豚PHP框架 [ DolphinPHP ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2016~2019 广东卓锐软件有限公司 [ http://www.zrthink.com ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://dolphinphp.com
  8. // +----------------------------------------------------------------------
  9. namespace app\admin\controller;
  10. use app\common\builder\ZBuilder;
  11. use app\admin\model\Log as LogModel;
  12. /**
  13. * 系统日志控制器
  14. * @package app\admin\controller
  15. */
  16. class Log extends Admin
  17. {
  18. /**
  19. * 日志列表
  20. * @author 蔡伟明 <314013107@qq.com>
  21. * @return mixed
  22. * @throws \think\Exception
  23. */
  24. public function index()
  25. {
  26. // 查询
  27. $map = $this->getMap();
  28. // 排序
  29. $order = $this->getOrder('admin_log.id desc');
  30. // 数据列表
  31. $data_list = LogModel::getAll($map, $order);
  32. // 分页数据
  33. $page = $data_list->render();
  34. // 使用ZBuilder快速创建数据表格
  35. return ZBuilder::make('table')
  36. ->setPageTitle('系统日志') // 设置页面标题
  37. ->setSearch(['admin_action.title' => '行为名称', 'admin_user.username' => '执行者', 'admin_module.title' => '所属模块']) // 设置搜索框
  38. ->hideCheckbox()
  39. ->addColumns([ // 批量添加数据列
  40. ['id', '编号'],
  41. ['title', '行为名称'],
  42. ['username', '执行者'],
  43. ['action_ip', '执行IP', 'callback', function($value){
  44. return long2ip(intval($value));
  45. }],
  46. ['module_title', '所属模块'],
  47. ['create_time', '执行时间', 'datetime', '', 'Y-m-d H:i:s'],
  48. ['right_button', '操作', 'btn']
  49. ])
  50. ->addOrder(['title' => 'admin_action', 'username' => 'admin_user', 'module_title' => 'admin_module.title'])
  51. ->addFilter(['admin_action.title', 'admin_user.username', 'module_title' => 'admin_module.title'])
  52. ->addRightButton('details', ['icon' => 'fa fa-eye', 'title' => '详情', 'href' => url('details', ['id' => '__id__'])])
  53. ->setRowList($data_list) // 设置表格数据
  54. ->setPages($page) // 设置分页数据
  55. ->fetch(); // 渲染模板
  56. }
  57. /**
  58. * 日志详情
  59. * @param null $id 日志id
  60. * @author 蔡伟明 <314013107@qq.com>
  61. * @return mixed
  62. * @throws \think\Exception
  63. */
  64. public function details($id = null)
  65. {
  66. if ($id === null) $this->error('缺少参数');
  67. $info = LogModel::getAll(['admin_log.id' => $id]);
  68. $info = $info[0];
  69. $info['action_ip'] = long2ip(intval($info['action_ip']));
  70. // 使用ZBuilder快速创建表单
  71. return ZBuilder::make('form')
  72. ->setPageTitle('编辑') // 设置页面标题
  73. ->addFormItems([ // 批量添加表单项
  74. ['hidden', 'id'],
  75. ['static', 'title', '行为名称'],
  76. ['static', 'username', '执行者'],
  77. ['static', 'record_id', '目标ID'],
  78. ['static', 'action_ip', '执行IP'],
  79. ['static', 'module_title', '所属模块'],
  80. ['textarea', 'remark', '备注'],
  81. ])
  82. ->hideBtn('submit')
  83. ->setFormData($info) // 设置表单数据
  84. ->fetch();
  85. }
  86. }