LogController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace Modules\Log\Http\Controllers;
  3. use Illuminate\Contracts\Support\Renderable;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Routing\Controller;
  6. use DB;
  7. use Modules\Admin\Auxiliary\View\TableAuxiliary;
  8. use Modules\Admin\Http\Controllers\BaseController;
  9. class LogController extends BaseController
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. * @return Renderable
  14. */
  15. public function index(Request $request)
  16. {
  17. $this->menusActive[0] = 'adminLog';
  18. //查询当前登录用户权限内的区域
  19. $user = DB::table('users')->where('staff_num',$request->user()->staff_num)->first();
  20. $mine_array = explode(';',$user->mine_role);//权限内的矿区
  21. $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域
  22. $mine_use = [];//权限内矿区下所有区域
  23. foreach($mine_all as $k=>$v){
  24. if(in_array(explode('|',$v->degree)[0],$mine_array)){
  25. $mine_use[] = $v->id;
  26. }
  27. }
  28. $log_list = DB::table('log')
  29. ->select('log.*','mine_list.title','mine_list.degree','camera_list.camera_name')
  30. ->leftJoin('mine_list','mine_list.id','=','log.mine_id')
  31. ->leftJoin('camera_list','camera_list.id','=','log.camera_id')
  32. ->whereIn('log.mine_id',$mine_use)
  33. ->orderBy('log.created_at', 'desc');
  34. if ($request->has('mine_id') && $request->input('mine_id')) {
  35. $log_list = $log_list->where('mine_list.degree','like',$request->input('mine_id').'|%');
  36. }
  37. if ($request->has('camera_name') && $request->input('camera_name')) {
  38. $log_list = $log_list->where('camera_list.camera_name','like','%'.$request->input('camera_name').'%');
  39. }
  40. if ($request->has('status') && $request->input('status')) {
  41. if($request->input('status') == 1){
  42. $log_list = $log_list->where('log.status',0);
  43. }elseif($request->input('status') == 2){
  44. $log_list = $log_list->where('log.status',1);
  45. }
  46. }
  47. if ($request->has('created_at') && $request->input('created_at')) {
  48. $log_list = $log_list->where('log.created_at','like','%'.$request->input('created_at').'%');
  49. }
  50. $log_list = $log_list->paginate(10);
  51. if(count($log_list)>0){
  52. for($i=0;$i<count($log_list);$i++){
  53. $degree = explode('|',$log_list[$i]->degree);
  54. $mine = DB::table('mine_list')->where('id',$degree[0])->get();
  55. $log_list[$i]->mine_name = $mine[0]->title;
  56. }
  57. }
  58. //权限内矿区列表
  59. $mine_list = DB::table('mine_list')->whereIn('id',$mine_array)->get()->toArray();
  60. $mine_search = [];
  61. foreach($mine_list as $k=>$v){
  62. $mine_search[$v->id] = $v->title;
  63. }
  64. //摄像头状态
  65. $status = [1=>'正常',2=>'异常'];
  66. $tableObj = new TableAuxiliary('log', $log_list);
  67. $tableObj->topActions = [];
  68. $tableObj->actionBtns = [];
  69. $tableObj->search('select', 'mine_id', '选择矿区', $mine_search);
  70. $tableObj->search('input', 'camera_name', '摄像头名称');
  71. $tableObj->search('select', 'status', '摄像头状态', $status);
  72. $tableObj->search('date', 'created_at', '操作时间');
  73. $tableObj->column('mine_name', '矿区名称');
  74. $tableObj->column('title', '区域名称');
  75. $tableObj->column('camera_id', '摄像头ID');
  76. $tableObj->column('camera_name', '摄像头名称');
  77. $tableObj->column('status', '状态',function ($state, $item) {
  78. if ($item->status == 0) {
  79. $state = '正常';
  80. }else{
  81. $state = '异常';
  82. }
  83. return $state;
  84. });
  85. $tableObj->column('log', '返回信息');
  86. $tableObj->column('created_at', '操作时间');
  87. return $this->tableList($tableObj);
  88. }
  89. }