SiteController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Admin;
  4. use App\Models\Site;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Support\Facades\Storage;
  8. use Illuminate\Support\Facades\Validator;
  9. class SiteController extends Controller
  10. {
  11. public function index(Request $request)
  12. {
  13. $admin_id=Auth::user()->id;
  14. $role_id=Admin::where('id',$admin_id)->value('role_id');
  15. $version= $request->input('version',1);
  16. $page_size= $request->input('page_size',10);
  17. $num = ($request->input('page_index')-1)*$page_size;
  18. $data= Site::query()->where('version',$version);
  19. if(!$role_id){
  20. return $this->error('450001','账号未分配角色');
  21. }
  22. if($role_id != 1){
  23. $where_role = ','.$role_id.',';
  24. $data->where('limit_role','like','%'.$where_role.'%');
  25. }
  26. $total= $data->count();
  27. $list= $data->skip($num)->take($page_size)->get();
  28. return $this->success_list($list,$total);
  29. }
  30. public function create(Request $request)
  31. {
  32. $rules=[
  33. 'name' => 'required',
  34. 'url' => 'required',
  35. 'bg_img' => 'required',
  36. ];
  37. $messages = [
  38. 'name.required' => '名称为必填项.',
  39. 'url.required' => '链接为必填项.',
  40. 'bg_img.required' => '图标为必填项.',
  41. ];
  42. $validator = Validator::make($request->all(), $rules, $messages);
  43. if($validator->fails()){
  44. return $this->error('450001',$validator->errors()->first());
  45. }
  46. $site = new Site();
  47. $site->name = $request->input('name');
  48. $site->url = $request->input('url');
  49. $site->status = 1;
  50. $site->bg_img = $request->input('bg_img');
  51. $site->version = $request->input('version');
  52. $site->limit_role = self::role($request->input('limit_role'));
  53. $res=$site->save();
  54. if($res){
  55. return $this->success([]);
  56. }
  57. return $this->error();
  58. }
  59. protected static function role($limit_role = null){
  60. if(isset($limit_role)){
  61. $role = implode(',',$limit_role);
  62. return ','.$role.',';
  63. }
  64. return null;
  65. }
  66. public function show(Request $request)
  67. {
  68. $id= $request->input('id');
  69. $show= Site::query()->find($id);
  70. return $this->success($show);
  71. }
  72. public function update(Request $request, Site $site)
  73. {
  74. $rules=[
  75. 'name' => 'required',
  76. 'url' => 'required',
  77. 'bg_img' => 'required',
  78. ];
  79. $messages = [
  80. 'name.required' => '名称为必填项.',
  81. 'url.required' => '链接为必填项.',
  82. 'bg_img.required' => '图标为必填项.',
  83. ];
  84. $validator = Validator::make($request->all(), $rules, $messages);
  85. if($validator->fails()){
  86. return $this->error('450001',$validator->errors()->first());
  87. }
  88. $site = Site::find($request->input('id'));
  89. $site->name = $request->input('name');
  90. $site->url = $request->input('url');
  91. $site->status = 1;
  92. $site->bg_img = $request->input('bg_img');
  93. $site->version = $request->input('version');
  94. $site->limit_role = self::role($request->input('limit_role'));
  95. $res=$site->save();
  96. if($res){
  97. return $this->success([]);
  98. }
  99. return $this->error();
  100. }
  101. public function destroy(Request $request)
  102. {
  103. $id= $request->input('id');
  104. $res= Site::query()->where('id',$id)->delete();
  105. if($res){
  106. return $this->success([]);
  107. }
  108. return $this->error();
  109. }
  110. public function uploadImg(Request $request)
  111. {
  112. $path_url = 'image/site';
  113. $result = $request->file('img')->store($path_url);
  114. if($result) {
  115. $path=Storage::url($result);
  116. return $this->success($path);
  117. }
  118. return $this->error();
  119. }
  120. public function all(){
  121. $site = Site::query()->pluck('name','id');
  122. return $this->success($site);
  123. }
  124. }