You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

169 lines
4.0 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use DB;
  4. use App\Common\Helper;
  5. use App\Common\ReturnData;
  6. use Illuminate\Http\Request;
  7. use App\Http\Logic\AdminRoleLogic;
  8. use App\Http\Model\AdminRole;
  9. class AdminRoleController extends CommonController
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. public function getLogic()
  16. {
  17. return new AdminRoleLogic();
  18. }
  19. public function index(Request $request)
  20. {
  21. $res = '';
  22. $where = function ($query) use ($res) {
  23. if(isset($_REQUEST["keyword"]))
  24. {
  25. $query->where('name', 'like', '%'.$_REQUEST['keyword'].'%');
  26. }
  27. if(isset($_REQUEST["pid"]))
  28. {
  29. $query->where('pid', $_REQUEST["pid"]);
  30. }
  31. if(isset($_REQUEST["status"]))
  32. {
  33. $query->where('status', $_REQUEST["status"]);
  34. }
  35. };
  36. $posts = $this->getLogic()->getPaginate($where, array('listorder', 'asc'));
  37. $data['posts'] = $posts;
  38. return view('admin.adminrole.index', $data);
  39. }
  40. public function add(Request $request)
  41. {
  42. return view('admin.adminrole.add');
  43. }
  44. public function doadd(Request $request)
  45. {
  46. if(Helper::isPostRequest())
  47. {
  48. $res = $this->getLogic()->add($_POST);
  49. if($res['code'] == ReturnData::SUCCESS)
  50. {
  51. success_jump($res['msg'], route('admin_adminrole'));
  52. }
  53. error_jump($res['msg']);
  54. }
  55. }
  56. public function edit(Request $request)
  57. {
  58. if(!checkIsNumber($request->input('id',null))){error_jump('参数错误');}
  59. $id = $request->input('id');
  60. $data['id'] = $where['id'] = $id;
  61. $data['post'] = $this->getLogic()->getOne($where);
  62. return view('admin.adminrole.edit', $data);
  63. }
  64. public function doedit(Request $request)
  65. {
  66. if(!checkIsNumber($request->input('id',null))){error_jump('参数错误');}
  67. $id = $request->input('id');
  68. if(Helper::isPostRequest())
  69. {
  70. $where['id'] = $id;
  71. $res = $this->getLogic()->edit($_POST, $where);
  72. if($res['code'] == ReturnData::SUCCESS)
  73. {
  74. success_jump($res['msg'], route('admin_adminrole'));
  75. }
  76. error_jump($res['msg']);
  77. }
  78. }
  79. public function del(Request $request)
  80. {
  81. if(!checkIsNumber($request->input('id',null))){error_jump('参数错误');}
  82. $id = $request->input('id');
  83. $where['id'] = $id;
  84. $res = $this->getLogic()->del($where);
  85. if($res['code'] == ReturnData::SUCCESS)
  86. {
  87. success_jump($res['msg']);
  88. }
  89. error_jump($res['msg']);
  90. }
  91. //角色权限设置视图
  92. public function permissions()
  93. {
  94. if(!empty($_GET["id"])){$data['role_id'] = $_GET["id"];}else{error_jump('您访问的页面不存在或已被删除');}
  95. $menu = [];
  96. $access = model('Access')->getAll(['role_id'=>$data['role_id']]);
  97. if($access)
  98. {
  99. foreach($access as $k=>$v)
  100. {
  101. $menu[] = $v->menu_id;
  102. }
  103. }
  104. $data['menus'] = category_tree(get_category('menu',0));
  105. foreach($data['menus'] as $k=>$v)
  106. {
  107. $data['menus'][$k]['is_access'] = 0;
  108. if(!empty($menu) && in_array($v['id'], $menu))
  109. {
  110. $data['menus'][$k]['is_access'] = 1;
  111. }
  112. }
  113. return view('admin.adminrole.permissions', $data);
  114. }
  115. //角色权限设置
  116. public function dopermissions()
  117. {
  118. $menus = [];
  119. if($_POST['menuid'] && $_POST['role_id'])
  120. {
  121. foreach($_POST['menuid'] as $row)
  122. {
  123. $menus[] = [
  124. 'role_id' => $_POST['role_id'],
  125. 'menu_id' => $row
  126. ];
  127. }
  128. }
  129. else
  130. {
  131. error_jump('操作失败');
  132. }
  133. DB::beginTransaction();
  134. model('Access')->del(['role_id'=>$_POST['role_id']]);
  135. if(model('Access')->add($menus, 1))
  136. {
  137. DB::commit();
  138. success_jump('操作成功');
  139. }
  140. DB::rollBack();
  141. error_jump('操作失败');
  142. }
  143. }