Iplimit.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace app\admin\controller;
  3. class Iplimit extends Base
  4. {
  5. //访问ip管理
  6. public function index()
  7. {
  8. if (request()->isAjax()) {
  9. $param = input('param.');
  10. $limit = $param['pageSize'];
  11. $offset = (($param['pageNumber'] - 1) * $limit);
  12. $where['object'] = $param['type'];
  13. if (strlen($param['searchText'])) {
  14. $where['ip'] = ['like', '%' . $param['searchText'] . '%'];
  15. }
  16. $result = db('iplimit')->where($where)->limit($offset, $limit)->select();
  17. $admins = db('admins')->select();
  18. foreach ($result as $key => $vo) {
  19. for($i=0;$i<count($admins);$i++){
  20. if($vo['admin_id'] == $admins[$i]['id']){
  21. $result[$key]['admin'] = $admins[$i]['user_name'];
  22. }
  23. }
  24. // 生成操作按钮.
  25. $result[$key]['operate'] = $this->makeBtn($vo['id']);
  26. }
  27. // 总数据.
  28. $return['total'] = db('iplimit')->where($where)->count(); //总数据
  29. $return['rows'] = $result;
  30. return json($return);
  31. }
  32. return $this->fetch();
  33. }
  34. //访问ip添加
  35. public function add(){
  36. if(request()->isPost()){
  37. $param = input('post.');
  38. $findWhere = [
  39. 'ip' => $param['ip'],
  40. 'object' => $param['object'],
  41. ];
  42. $has = db('iplimit')->where($findWhere)->find();
  43. if (empty($has) === false) {
  44. return json(['code' => -1, 'data' => '', 'msg' => '该ip已经存在']);
  45. }
  46. $param['ctime'] = date('Y-m-d H:i:s',time());
  47. $param['utime'] = date('Y-m-d H:i:s',time());
  48. $param['admin_id'] = session('user_id');
  49. try {
  50. db('iplimit')->insert($param);
  51. } catch(\Exception $e) {
  52. return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
  53. }
  54. return json(['code' => 1, 'data' => '', 'msg' => '添加访问ip成功']);
  55. }
  56. $this->assign([
  57. 'status' => config('kf_status')
  58. ]);
  59. return $this->fetch();
  60. }
  61. //访问ip编辑
  62. public function edit(){
  63. if(request()->isAjax()){
  64. $param = input('post.');
  65. // 检测用户修改的管理员是否重复
  66. $has = db('iplimit')->where('ip', $param['ip'])->where('id', $param['id'])->find();
  67. if(!empty($has)){
  68. return json(['code' => -1, 'data' => '', 'msg' => '该访问ip已经存在']);
  69. }
  70. $param['ctime'] = date('Y-m-d H:i:s',time());
  71. $param['utime'] = date('Y-m-d H:i:s',time());
  72. $param['admin_id'] = session('user_id');
  73. try{
  74. db('iplimit')->where('id', $param['id'])->update($param);
  75. }catch(\Exception $e){
  76. return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
  77. }
  78. return json(['code' => 1, 'data' => '', 'msg' => '编辑访问ip成功']);
  79. }
  80. $id = input('param.id/d');
  81. $info = db('iplimit')->where('id', $id)->find();
  82. $this->assign([
  83. 'info' => $info,
  84. 'status' => config('kf_status')
  85. ]);
  86. return $this->fetch();
  87. }
  88. //删除
  89. public function del(){
  90. if(request()->isAjax()){
  91. $id = input('param.id/d');
  92. // return $id;
  93. try{
  94. db('iplimit')->where('id', $id)->delete();
  95. }catch(\Exception $e){
  96. return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
  97. }
  98. return json(['code' => 1, 'data' => '', 'msg' => '删除ip成功']);
  99. }
  100. }
  101. // 生成按钮
  102. private function makeBtn($id)
  103. {
  104. $operate = '<a href="' . url('iplimit/edit', ['id' => $id]) . '">';
  105. $operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
  106. $operate .= '<a href="javascript:Del(' . $id . ')"><button type="button" class="btn btn-danger btn-sm">';
  107. $operate .= '<i class="fa fa-trash-o"></i> 删除</button></a> ';
  108. return $operate;
  109. }
  110. }