AdminController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Admin;
  4. use App\Models\Site;
  5. use Carbon\Carbon;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Hash;
  8. use Illuminate\Support\Facades\Storage;
  9. use Illuminate\Support\Facades\Validator;
  10. class AdminController extends Controller
  11. {
  12. public function web(){
  13. return view('website');
  14. }
  15. public function index(Request $request)
  16. {
  17. $role_id=$request->input('role_id',null);
  18. $page_size=$request->input('page_size',10);
  19. $num = ($request->input('page_index')-1)*$page_size;
  20. $data = Admin::query();
  21. if($role_id){
  22. $data->where('role_id',$role_id);
  23. }
  24. $total= $data->count();
  25. $list= $data->skip($num)->take($page_size)->get();
  26. foreach($list as $key=>$val){
  27. $list[$key]->role = $val->role->name;
  28. $role_id_str = ','.$val->role_id.',';
  29. $site_arr = Site::where('limit_role','like','%'.$role_id_str.'%')->pluck('name')->toArray();
  30. $list[$key]->show_site = !empty($site_arr) ? implode(',',$site_arr) : null;
  31. }
  32. return $this->success_list($list,'',$total);
  33. }
  34. public function create(Request $request)
  35. {
  36. $rules=[
  37. 'name' => 'required',
  38. 'phone' => 'required|regex:/^1[345789][0-9]{9}$/',
  39. 'password' => 'required|min:6|max:18',
  40. ];
  41. $messages = [
  42. 'name.required' => '名称为必填项.',
  43. 'phone.required' => '手机号为必填项.',
  44. 'phone.regex' => '手机号格式有误.',
  45. 'password.required' => '密码为必填项.',
  46. 'password.min' => '密码不能少于6个字符.',
  47. 'password.max' => '密码不能超过18个字符.',
  48. ];
  49. $validator = Validator::make($request->all(), $rules, $messages);
  50. if($validator->fails()){
  51. return $this->error('450001',$validator->errors()->first());
  52. }
  53. $admin = new Admin();
  54. $admin->name = $request->input('name');
  55. $admin->phone = $request->input('phone');
  56. $admin->avatar = $request->input('avatar');
  57. $admin->password = Hash::make($request->input('password'));
  58. $admin->role_id = $request->input('role_id');
  59. $admin->status = 1;
  60. $res = $admin->save();
  61. if($res){
  62. return $this->success([]);
  63. }
  64. return $this->error();
  65. }
  66. public function setStatus(Request $request){
  67. $id= $request->input('id');
  68. $admin = Admin::find($id);
  69. if($admin->role_id == 1){
  70. return $this->error('450001','超级管理员不能被禁用');
  71. }
  72. $admin->status = $admin->status==1?0:1;
  73. $res = $admin->save();
  74. if($res){
  75. return $this->success([]);
  76. }
  77. return $this->error();
  78. }
  79. public function show(Request $request)
  80. {
  81. $id= $request->input('id');
  82. $show = Admin::find($id);
  83. return $this->success($show);
  84. }
  85. public function update(Request $request, AdminController $admin)
  86. {
  87. $rules=[
  88. 'name' => 'required',
  89. 'phone' => 'required|regex:/^1[345789][0-9]{9}$/',
  90. 'password' => 'required|min:6|max:18',
  91. ];
  92. $messages = [
  93. 'name.required' => '名称为必填项.',
  94. 'phone.required' => '手机号为必填项.',
  95. 'phone.regex' => '手机号格式有误.',
  96. 'password.required' => '密码为必填项.',
  97. 'password.min' => '密码不能少于6个字符.',
  98. 'password.max' => '密码不能超过18个字符.',
  99. ];
  100. $validator = Validator::make($request->all(), $rules, $messages);
  101. if($validator->fails()){
  102. return $this->error('450001',$validator->errors()->first());
  103. }
  104. $id= $request->input('id');
  105. $admin = Admin::find($id);
  106. if(Hash::check($request->input('password'),$admin->password)){
  107. return $this->error('450001','新旧密码相同');
  108. }
  109. $admin->name = $request->input('name');
  110. $admin->phone = $request->input('phone');
  111. $admin->avatar = $request->input('avatar');
  112. $admin->password = Hash::make($request->input('password'));
  113. $admin->role_id = $request->input('role_id');
  114. $admin->status= 1;
  115. $res=$admin->save();
  116. if($res){
  117. return $this->success([]);
  118. }
  119. return $this->error();
  120. }
  121. public function destroy(Request $request)
  122. {
  123. $id= $request->input('id');
  124. $res= Admin::where('id',$id)->delete();
  125. if($res){
  126. return $this->success([]);
  127. }
  128. return $this->error();
  129. }
  130. public function uploadImg(Request $request)
  131. {
  132. $path_url = 'image/avatar';
  133. $result = $request->file('img')->store($path_url);
  134. if($result) {
  135. $path=Storage::url($result);
  136. return $this->success($path);
  137. }
  138. return $this->error();
  139. }
  140. public function choiceAdminRole(Request $request){
  141. $res = Admin::where('id',$request->input('admin_id'))
  142. ->update([
  143. 'role_id' => $request->input('role_id'),
  144. 'desc' => $request->input('desc')
  145. ]);
  146. if($res){
  147. return $this->success([]);
  148. }
  149. return $this->error();
  150. }
  151. }