PrivController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. class PrivController extends Controller {
  6. function addTo(Request $req) {
  7. $dt = \App\Lib\DataTable\DataTable::init();
  8. $dt->setLang('priv_code');
  9. $dt->setdataSource('/admin/priv/dataSource?role_id=' . $req->role_id . '&priv_code=' . $req->priv_code);
  10. $dt->addColsFields('priv_name');
  11. $dt->addColsFields('priv_code');
  12. $dt->addColsFields('remark');
  13. $dt->addColsFields('create_at');
  14. $dt->addColsFields('update_at');
  15. $dt->enableCheckBox();
  16. return view('admin.Priv/addTo', $dt->render());
  17. }
  18. public function insert(Request $req) {
  19. $id = $req->id;
  20. if (empty($id)) {
  21. return responseToJson(-2001); //id不能为空
  22. }
  23. $ids = explode(',', $id);
  24. if (!is_array($ids) && intval($ids) < 0) {
  25. return responseToJson(-2002); //id错误
  26. }
  27. if (is_array($ids) && count($ids) > 0) {
  28. foreach ($ids as $k => $v) {
  29. if (intval($v) < 1) {
  30. unset($ids[$k]);
  31. }
  32. }
  33. }
  34. //获取权限详情
  35. $code_data=\App\Models\Priv_codeModel::whereIn('id',$ids)->get();
  36. $code_data=$code_data->toArray();
  37. //获取角色信息
  38. $role_info=\App\Models\System_root::where('id',$req->role_id)->first();
  39. $role_info=$role_info->toArray();
  40. //组装权限角色关联数组
  41. $data=array();
  42. foreach ($code_data as $k=>$v){
  43. $data[$k]['role_id']=$req->role_id;
  44. $data[$k]['priv_id']=$v['id'];
  45. $data[$k]['role_name']=$role_info['name'];
  46. // $data[$k]['priv_code']=$v['priv_code'];
  47. $data[$k]['create_at']=date('Y-m-d H:i:s');
  48. }
  49. $rows = \App\Models\Priv_roleModel::insert($data);
  50. return responseToJson(1, trans('priv_role.insert_success')); //id错误
  51. }
  52. public function dataSource(Request $req) {
  53. $limit = intval($req->limit) > 0 ? $req->limit : 10;
  54. $page = intval($req->page) > 0 ? $req->page : 1;
  55. $field = !empty($req->field) ? $req->field : '';
  56. $order = !empty($req->order) ? $req->order : 'asc';
  57. $model = \App\Models\Priv_codeModel::offset(($page - 1) * $limit)
  58. ->limit($limit);
  59. if (!empty($field) && !empty($order)) {
  60. $model = $model->orderBy($field, $order);
  61. }
  62. $priv_name = $req->role_name ? $req->role_name : '';
  63. if (!empty($priv_name)) {
  64. $model = $model->where('priv_name', 'like','%' . $priv_name . '%');
  65. }
  66. $priv_code = $req->priv_code ? $req->priv_code : '';
  67. if (!empty($priv_code)) {
  68. $model = $model->where('priv_code','like', '%' . $priv_code . '%');
  69. }
  70. $remark = $req->priv_id ? $req->priv_id : '';
  71. if (!empty($remark)) {
  72. $model = $model->where('remark','like', '%' . $remark . '%');
  73. }
  74. $ids = \App\Models\Priv_roleModel::where('role_id', $req->role_id)->select('priv_id')->get();
  75. if ($ids) {
  76. $ids = $ids->toArray();
  77. if (is_array($ids) && count($ids)) {
  78. $ids2 = array();
  79. foreach ($ids as $v) {
  80. $ids2[] = $v['priv_id'];
  81. }
  82. $model = $model->whereNotIn('id', $ids2);
  83. }
  84. }
  85. $data = $model->get();
  86. if (!$data) {
  87. return;
  88. }
  89. $data = $data->toArray();
  90. $count = $model->count();
  91. return \App\Lib\DataTable\DataTable::init()->toJson($data, $count);
  92. }
  93. }