UserWorkGroupController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Authority;
  4. use App\UserWorkgroup;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Support\Facades\Gate;
  8. use Illuminate\Support\Facades\Validator;
  9. class UserWorkgroupController extends Controller
  10. {
  11. public function index()
  12. {
  13. if(!Gate::allows('工作组-查询')){ return redirect(url('/')); }
  14. $UserWorkgroups=UserWorkgroup::with('wareHouse')->orderBy('id',"DESC")->paginate(50);
  15. //dd($UserWorkgroups);
  16. return view('maintenance.userWorkgroup.index',['userWorkgroups'=>$UserWorkgroups]);
  17. }
  18. public function create()
  19. {
  20. if(!Gate::allows('工作组-录入')){ return redirect(url('/')); }
  21. return view('maintenance.userWorkgroup.create');
  22. }
  23. public function store(Request $request)
  24. {
  25. if(!Gate::allows('工作组-录入')){ return redirect(url('/')); }
  26. $id=false;
  27. $this->validatorUserWorkgroup($request,$id)->validate();
  28. $UserWorkgroup=new UserWorkgroup($request->input());
  29. $UserWorkgroup->save();
  30. $this->storeAuthority($UserWorkgroup['name'],$UserWorkgroup->id);
  31. $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
  32. return redirect('maintenance/userWorkgroup')->with('successTip','新工作组“'.$request->input('name').'”添加成功');
  33. }
  34. private function storeAuthority($name,$id){
  35. Authority::create([
  36. "name"=>$name,
  37. "alias_name"=>$name,
  38. "type"=>"工作组",
  39. "relevance"=>$id,
  40. ]);
  41. }
  42. public function edit($id)
  43. {
  44. if(!Gate::allows('工作组-编辑')){ return redirect(url('/')); }
  45. $userWorkgroup=UserWorkgroup::find($id);
  46. return view('maintenance.userWorkgroup.edit',['userWorkgroup'=>$userWorkgroup]);
  47. }
  48. public function update(Request $request, $id)
  49. {
  50. if(!Gate::allows('工作组-编辑')){ return redirect(url('/')); }
  51. $this->validatorUserWorkgroup($request,$id)->validate();
  52. $data=$request->input();
  53. $userWorkgroup=UserWorkgroup::find($id);
  54. if ($data['name']!=$userWorkgroup->name){
  55. $authority=Authority::where("name",$userWorkgroup->name)->first();
  56. if ($authority){
  57. $authority->name=$data['name'];
  58. $authority->alias_name=$data['name'];
  59. $authority->update();
  60. }
  61. if (!$authority){
  62. $this->storeAuthority($data['name'],$id);
  63. }
  64. $userWorkgroup->fill($data);
  65. $userWorkgroup->save();
  66. $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
  67. }
  68. return redirect('maintenance/userWorkgroup')->with('successTip','工作组“'.$request->input('name').'”修改成功');
  69. }
  70. public function destroy($id)
  71. {
  72. if(!Gate::allows('工作组-删除')){ return redirect(url('/')); }
  73. $UserWorkgroup=UserWorkgroup::find($id);
  74. $this->log(__METHOD__,__FUNCTION__,json_encode($UserWorkgroup),Auth::user()['id']);
  75. $result=$UserWorkgroup->delete();
  76. return ['success'=>$result];
  77. }
  78. protected function validatorUserWorkgroup(Request $request,$id){
  79. if ($id){$name=$id;}
  80. $validator=Validator::make($request->input(),[
  81. 'name'=>['required','max:10',isset($name)?"unique:user_workgroups,name,$name":'unique:user_workgroups,name'],
  82. ],[
  83. 'required'=>':attribute 为必填项',
  84. 'max'=>':attribute 过长',
  85. 'unique'=>':attribute 已存在',
  86. ],[
  87. 'name'=>'工作组名称',
  88. ]);
  89. return $validator;
  90. }
  91. }