BillingModelsController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\BillingModel;
  4. use App\Carrier;
  5. use App\Province;
  6. use App\Unit;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Support\Facades\Gate;
  10. use Illuminate\Support\Facades\Validator;
  11. class BillingModelsController extends Controller
  12. {
  13. public function index()
  14. {
  15. if(!Gate::allows('计费模型-查询')){ return redirect(url('/')); }
  16. $billingModels= BillingModel::paginate(50);
  17. return view('waybill.billingModel.index',['billingModels'=>$billingModels]);
  18. }
  19. public function create()
  20. {
  21. if(!Gate::allows('计费模型-录入')){ return redirect(url('/')); }
  22. $carriers=Carrier::get();
  23. $provinces=Province::with('cities')->get();
  24. $units=Unit::get();
  25. return view('waybill.billingModel.create',['carriers'=>$carriers,'provinces'=>$provinces,'units'=>$units]);
  26. }
  27. public function store(Request $request)
  28. {
  29. if(!Gate::allows('计费模型-录入')){ return redirect(url('/')); }
  30. $this->validateBillingModel($request)->validate();
  31. $billingModel=$request->input('BillingModel');
  32. BillingModel::create($billingModel);
  33. $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
  34. return redirect('billingModel')->with('successTip','新计费模型录入成功');
  35. }
  36. public function edit($id)
  37. {
  38. if(!Gate::allows('计费模型-编辑')){ return redirect(url('/')); }
  39. $billingModel=BillingModel::find($id);
  40. $carriers=Carrier::get();
  41. $provinces=Province::with('cities')->get();
  42. $units=Unit::get();
  43. return view('waybill.billingModel.edit',['billingModel'=>$billingModel,'carriers'=>$carriers,'provinces'=>$provinces,'units'=>$units]);
  44. }
  45. public function update(Request $request, $id)
  46. {
  47. if(!Gate::allows('计费模型-编辑')){ return redirect(url('/')); }
  48. $this->validateBillingModel($request)->validate();
  49. $billingModel=BillingModel::find($id);
  50. $billingModel->fill($request->input('BillingModel'));
  51. if ($billingModel->save()){
  52. $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
  53. return redirect('billingModel')->with('successTip','新计费模型修改成功');
  54. }
  55. }
  56. public function destroy($id)
  57. {
  58. if(!Gate::allows('计费模型-删除')){ return redirect(url('/')); }
  59. $billingModel=BillingModel::find($id);
  60. $this->log(__METHOD__,__FUNCTION__,json_encode($billingModel),Auth::user()['id']);
  61. $result=$billingModel->delete();
  62. return ['success'=>$result];
  63. }
  64. protected function validateBillingModel(Request $request){
  65. $min = $request->input('BillingModel.range_min');
  66. $validator= Validator::make($request->input(),[
  67. 'BillingModel.province_id'=>'required|integer',
  68. 'BillingModel.carrier_id'=>'required|integer',
  69. 'BillingModel.unit_id'=>'required|integer',
  70. 'BillingModel.city_id'=>'required|Integer',
  71. 'BillingModel.range_min'=> 'required|min:0|numeric',
  72. 'BillingModel.range_max'=> "required|min:{$min}|numeric",
  73. 'BillingModel.unit_price'=>'required|min:0|numeric',
  74. 'BillingModel.initial_weight'=>'required|min:0|numeric',
  75. ],[
  76. 'required'=>':attribute 为必填项',
  77. 'min' =>':attribute 数值过小',
  78. 'max' => ':attribute 数值过大',
  79. 'numeric' =>':attribute 应为数字',
  80. 'integer'=> ':attribute 选择错误',
  81. ],[
  82. 'BillingModel.province_id'=>'省份',
  83. 'BillingModel.carrier_id'=>'承运商',
  84. 'BillingModel.unit_id'=>'计重单位',
  85. 'BillingModel.city_id'=>'城市',
  86. 'BillingModel.range_min'=>'价格区间最小值',
  87. 'BillingModel.range_max'=>'价格区间最大值',
  88. 'BillingModel.unit_price'=>'单价',
  89. 'BillingModel.initial_weight'=>'始重',
  90. ]);
  91. return $validator;
  92. }
  93. }