PartyController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Requests\PartyCreateRequest;
  4. use App\Http\Requests\PartyUpdateRequest;
  5. use App\Models\App;
  6. use App\Models\Party;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use App\Models\Role;
  10. class PartyController extends Controller
  11. {
  12. /**
  13. * Display a listing of the resource.
  14. *
  15. * @return \Illuminate\Http\Response
  16. */
  17. public function index()
  18. {
  19. return view('admin.party.index');
  20. }
  21. public function data(Request $request)
  22. {
  23. $partyModel = new Party();
  24. $res = $partyModel
  25. ->select(['ag_party.*','users.username as add_user'])
  26. ->leftJoin('users', 'ag_party.add_user', '=', 'users.id')
  27. ->paginate($request->get('limit', 30))
  28. ->toArray();
  29. ;
  30. //$res = Party::paginate($request->get('limit', 30))->toArray();
  31. $data = [
  32. 'code' => 0,
  33. 'msg' => '正在请求中...',
  34. 'count' => $res['total'],
  35. 'data' => $res['data']
  36. ];
  37. return response()->json($data);
  38. }
  39. /**
  40. * Show the form for creating a new resource.
  41. *
  42. * @return \Illuminate\Http\Response
  43. */
  44. public function create()
  45. {
  46. return view('admin.party.create')->with(['party'=>array()]);
  47. }
  48. /**
  49. * Store a newly created resource in storage.
  50. *
  51. * @param \Illuminate\Http\Request $request
  52. * @return \Illuminate\Http\Response
  53. */
  54. public function store(PartyCreateRequest $request)
  55. {
  56. $data = $request->all();
  57. $add_user_id = $request->session()->get('userInfo')['id'];
  58. $data['add_user'] = $add_user_id;
  59. if (Party::create($data)){
  60. return redirect()->to(route('admin.party'))->with(['status'=>'添加成功']);
  61. }
  62. return redirect()->to(route('admin.party'))->withErrors('系统错误');
  63. }
  64. /**
  65. * Display the specified resource.
  66. *
  67. * @param int $id
  68. * @return \Illuminate\Http\Response
  69. */
  70. public function show($id)
  71. {
  72. //
  73. }
  74. /**
  75. * Show the form for editing the specified resource.
  76. *
  77. * @param int $id
  78. * @return \Illuminate\Http\Response
  79. */
  80. public function edit($id)
  81. {
  82. $party = Party::where('id', $id)->first();
  83. return view('admin.party.edit',compact('party'));
  84. }
  85. /**
  86. * Update the specified resource in storage.
  87. *
  88. * @param \Illuminate\Http\Request $request
  89. * @param int $id
  90. * @return \Illuminate\Http\Response
  91. */
  92. public function update(PartyUpdateRequest $request, $id)
  93. {
  94. // $party = Party::findOrFail($id);
  95. $data = $request->all();
  96. if(empty($data['key'])){
  97. unset($data['key']);
  98. }
  99. if(empty($data['secret'])){
  100. unset($data['secret']);
  101. }
  102. $party = Party::findOrFail($id);
  103. if ($party->update($data)){
  104. return redirect()->to(route('admin.party'))->with(['status'=>'更新成功']);
  105. }
  106. return redirect()->to(route('admin.party'))->withErrors('系统错误');
  107. }
  108. /**
  109. * Remove the specified resource from storage.
  110. *
  111. * @param int $id
  112. * @return \Illuminate\Http\Response
  113. */
  114. public function destroy(Request $request)
  115. {
  116. $ids = $request->get('ids');
  117. if (empty($ids)){
  118. return response()->json(['code'=>1,'msg'=>'请选择删除项']);
  119. }
  120. if (Party::destroy($ids)){
  121. return response()->json(['code'=>0,'msg'=>'删除成功']);
  122. }
  123. return response()->json(['code'=>1,'msg'=>'删除失败']);
  124. }
  125. /**
  126. * 分配角色
  127. */
  128. public function role(Request $request,$id)
  129. {
  130. $party = Party::findOrFail($id);
  131. $roles = Role::get();
  132. $hasRoles = $party->roles();
  133. foreach ($roles as $role){
  134. $role->own = $party->hasRole($role) ? true : false;
  135. }
  136. return view('admin.party.role',compact('roles','party'));
  137. }
  138. /**
  139. * 更新分配角色
  140. */
  141. public function assignRole(Request $request,$id)
  142. {
  143. $party = Party::findOrFail($id);
  144. $roles = $request->get('roles',[]);
  145. if ($party->syncRoles($roles)){
  146. return redirect()->to(route('admin.party'))->with(['status'=>'更新用户角色成功']);
  147. }
  148. return redirect()->to(route('admin.party'))->withErrors('系统错误');
  149. }
  150. /**
  151. * 分配权限
  152. */
  153. public function permission(Request $request,$id)
  154. {
  155. $party = Party::findOrFail($id);
  156. $permissions = $this->tree();
  157. foreach ($permissions as $key1 => $item1){
  158. $permissions[$key1]['own'] = $party->hasDirectPermission($item1['id']) ? 'checked' : false ;
  159. if (isset($item1['_child'])){
  160. foreach ($item1['_child'] as $key2 => $item2){
  161. $permissions[$key1]['_child'][$key2]['own'] = $party->hasDirectPermission($item2['id']) ? 'checked' : false ;
  162. if (isset($item2['_child'])){
  163. foreach ($item2['_child'] as $key3 => $item3){
  164. $permissions[$key1]['_child'][$key2]['_child'][$key3]['own'] = $party->hasDirectPermission($item3['id']) ? 'checked' : false ;
  165. }
  166. }
  167. }
  168. }
  169. }
  170. return view('admin.party.permission',compact('party','permissions'));
  171. }
  172. /**
  173. * 存储权限
  174. */
  175. public function assignPermission(Request $request,$id)
  176. {
  177. $party = Party::findOrFail($id);
  178. $permissions = $request->get('permissions');
  179. if (empty($permissions)){
  180. $party->permissions()->detach();
  181. return redirect()->to(route('admin.party'))->with(['status'=>'已更新用户直接权限']);
  182. }
  183. $party->syncPermissions($permissions);
  184. return redirect()->to(route('admin.party'))->with(['status'=>'已更新用户直接权限']);
  185. }
  186. }