ProcessMethodController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Http\Response;
  5. use Illuminate\Support\Facades\Gate;
  6. use Illuminate\Support\Facades\Validator;
  7. class ProcessMethodController extends Controller
  8. {
  9. /**
  10. * Display a listing of the resource.
  11. *
  12. * @return Response
  13. */
  14. public function index()
  15. {
  16. if(!Gate::allows('作业类型-查询')){ return redirect('denied'); }
  17. $methods = app('ProcessMethodService')->paginate();
  18. return response()->view("maintenance.processMethod.index",compact("methods"));
  19. }
  20. /**
  21. * Show the form for creating a new resource.
  22. *
  23. * @return Response
  24. */
  25. public function create()
  26. {
  27. if(!Gate::allows('作业类型-录入')){ return redirect('denied'); }
  28. $units = app('UnitService')->getSelection();
  29. return response()->view("maintenance.processMethod.create",compact("units"));
  30. }
  31. /**
  32. * Store a newly created resource in storage.
  33. *
  34. * @param Request $request
  35. * @return Response
  36. */
  37. public function store(Request $request)
  38. {
  39. if(!Gate::allows('作业类型-录入')){ return redirect('denied'); }
  40. $this->validator($request->input())->validate();
  41. app('ProcessMethodService')->create([
  42. "name"=>$request->input("name"),
  43. "unit_id"=>$request->input("unit_id"),
  44. "unit_price"=>$request->input("unit_price"),
  45. ]);
  46. return response()->redirectTo("maintenance/processMethod")->with("successTip","成功创建项目组“".$request->input("name")."”");
  47. }
  48. /**
  49. * Show the form for editing the specified resource.
  50. *
  51. * @param int $id
  52. * @return Response
  53. */
  54. public function edit($id)
  55. {
  56. if(!Gate::allows('作业类型-编辑')){ return redirect('denied'); }
  57. $method = app('ProcessMethodService')->find($id);
  58. $units = app('UnitService')->getSelection();
  59. return response()->view('maintenance.processMethod.create',compact("method","units"));
  60. }
  61. /**
  62. * Update the specified resource in storage.
  63. *
  64. * @param Request $request
  65. * @param int $id
  66. * @return Response
  67. */
  68. public function update(Request $request, $id)
  69. {
  70. if(!Gate::allows('作业类型-编辑')){ return redirect('denied'); }
  71. $this->validator($request->input(),$id)->validate();
  72. $result = app('ProcessMethodService')->update(["id"=>$id],[
  73. "name"=>$request->input("name"),
  74. "unit_id"=>$request->input("unit_id"),
  75. "unit_price"=>$request->input("unit_price"),
  76. ]);
  77. if ($result == 1){
  78. return response()->redirectTo("maintenance/processMethod")->with("successTip","成功修改项目组“".$request->input("name")."”的信息");
  79. }
  80. return response()->view("exception.default",["code"=>"509"]);
  81. }
  82. /**
  83. * Remove the specified resource from storage.
  84. *
  85. * @param int $id
  86. * @return array
  87. */
  88. public function destroy($id)
  89. {
  90. if(!Gate::allows('作业类型-删除')){ return ["success"=>false,"data"=>"无权操作!"]; }
  91. $result = app('ProcessMethodService')->destroy($id);
  92. if ($result == 1)return ["success"=>true];
  93. return ["success"=>false,"data"=>"删除了“".$result."”行"];
  94. }
  95. private function validator(array $params, $id = null)
  96. {
  97. return Validator::make($params,[
  98. 'name'=>['required',$id?"unique:process_methods,name,$id":'unique:process_methods,name','max:20'],
  99. "unit_id" => ["nullable",'numeric'],
  100. "unit_price" => ["nullable",'numeric','min:0'],
  101. ],[
  102. 'required'=>':attribute 为必填项',
  103. 'max'=>':attribute 字符过多或输入值过大',
  104. 'unique'=>':attribute 已存在',
  105. 'numeric'=>':attribute 必须为数字',
  106. 'min'=>':attribute 数值过小',
  107. ],[
  108. 'name'=>'作业类型名称',
  109. 'unit_id'=>'作业类型单位',
  110. 'unit_price'=>'作业类型单价',
  111. ]);
  112. }
  113. }