BanIpController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Models\BanIp;
  4. use Carbon\Carbon;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Cache;
  7. use Illuminate\Support\Facades\Validator;
  8. class BanIpController extends AdminController
  9. {
  10. /**
  11. * Display a listing of the resource.
  12. *
  13. * @return \Illuminate\Http\Response
  14. */
  15. public function index(Request $request)
  16. {
  17. $filter = $request->all();
  18. $query = BanIp::query();
  19. /*操作人过滤*/
  20. if( isset($filter['user_id']) && $filter['user_id'] > 0 ){
  21. $query->where('user_id','=',$filter['user_id']);
  22. }
  23. /*关键字过滤*/
  24. if( isset($filter['word']) && $filter['word'] ){
  25. $query->where('ip','like', '%'.$filter['word'].'%');
  26. }
  27. /*时间过滤*/
  28. if( isset($filter['date_range']) && $filter['date_range'] ){
  29. $query->whereBetween('created_at',explode(" - ",$filter['date_range']));
  30. }
  31. $ip = $query->orderBy('created_at','desc')->paginate(10);
  32. return view('admin.banIp.index')->with(compact('filter','ip'));
  33. }
  34. /**
  35. * Show the form for creating a new resource.
  36. *
  37. * @return \Illuminate\Http\Response
  38. */
  39. public function create()
  40. {
  41. //
  42. }
  43. /**
  44. * Store a newly created resource in storage.
  45. *
  46. * @param \Illuminate\Http\Request $request
  47. *
  48. */
  49. public function store(Request $request)
  50. {
  51. $validate = [
  52. 'ip' => 'required|ip|unique:ban_ips',
  53. ];
  54. $validator = Validator::make($request->all(),$validate);
  55. if($validator->fails()){
  56. return $this->error(route('admin.banIp.index'),$validator->errors()->first());
  57. }
  58. $ip = $request->input('ip');
  59. $banIp = BanIp::create([
  60. 'ip' => $ip,
  61. 'user_id' => $request->user()->id,
  62. 'created_at' => Carbon::now()
  63. ]);
  64. $this->updateIpCache();
  65. return $this->success(route('admin.banIp.index'),'添加成功!');
  66. }
  67. public function updateIpCache()
  68. {
  69. Cache::forget('ip_blacklist');
  70. }
  71. /**
  72. * Display the specified resource.
  73. *
  74. * @param int $id
  75. * @return \Illuminate\Http\Response
  76. */
  77. public function show($id)
  78. {
  79. //
  80. }
  81. /**
  82. * Show the form for editing the specified resource.
  83. *
  84. * @param int $id
  85. * @return \Illuminate\Http\Response
  86. */
  87. public function edit($id)
  88. {
  89. //
  90. }
  91. /**
  92. * Update the specified resource in storage.
  93. *
  94. * @param \Illuminate\Http\Request $request
  95. * @param int $id
  96. * @return \Illuminate\Http\Response
  97. */
  98. public function update(Request $request, $id)
  99. {
  100. //
  101. }
  102. /**
  103. * Remove the specified resource from storage.
  104. *
  105. * @param int $id
  106. * @return \Illuminate\Http\Response
  107. */
  108. public function destroy(Request $request)
  109. {
  110. $ids = $request->input('id');
  111. BanIp::destroy($ids);
  112. $this->updateIpCache();
  113. return $this->success(route('admin.banIp.index'),'删除成功');
  114. }
  115. }