| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace App\Http\Controllers;
- use App\BillingModel;
- use App\Carrier;
- use App\Province;
- use App\Unit;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Gate;
- use Illuminate\Support\Facades\Validator;
- class BillingModelsController extends Controller
- {
- public function index()
- {
- if(!Gate::allows('计费模型-查询')){ return redirect(url('/')); }
- $billingModels= BillingModel::paginate(50);
- return view('waybill.billingModel.index',['billingModels'=>$billingModels]);
- }
- public function create()
- {
- if(!Gate::allows('计费模型-录入')){ return redirect(url('/')); }
- $carriers=Carrier::get();
- $provinces=Province::with('cities')->get();
- $units=Unit::get();
- return view('waybill.billingModel.create',['carriers'=>$carriers,'provinces'=>$provinces,'units'=>$units]);
- }
- public function store(Request $request)
- {
- if(!Gate::allows('计费模型-录入')){ return redirect(url('/')); }
- $this->validateBillingModel($request)->validate();
- $billingModel=$request->input('BillingModel');
- BillingModel::create($billingModel);
- $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
- return redirect('billingModel')->with('successTip','新计费模型录入成功');
- }
- public function edit($id)
- {
- if(!Gate::allows('计费模型-编辑')){ return redirect(url('/')); }
- $billingModel=BillingModel::find($id);
- $carriers=Carrier::get();
- $provinces=Province::with('cities')->get();
- $units=Unit::get();
- return view('waybill.billingModel.edit',['billingModel'=>$billingModel,'carriers'=>$carriers,'provinces'=>$provinces,'units'=>$units]);
- }
- public function update(Request $request, $id)
- {
- if(!Gate::allows('计费模型-编辑')){ return redirect(url('/')); }
- $this->validateBillingModel($request)->validate();
- $billingModel=BillingModel::find($id);
- $billingModel->fill($request->input('BillingModel'));
- if ($billingModel->save()){
- $this->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
- return redirect('billingModel')->with('successTip','新计费模型修改成功');
- }
- }
- public function destroy($id)
- {
- if(!Gate::allows('计费模型-删除')){ return redirect(url('/')); }
- $billingModel=BillingModel::find($id);
- $this->log(__METHOD__,__FUNCTION__,json_encode($billingModel),Auth::user()['id']);
- $result=$billingModel->delete();
- return ['success'=>$result];
- }
- protected function validateBillingModel(Request $request){
- $min = $request->input('BillingModel.range_min');
- $validator= Validator::make($request->input(),[
- 'BillingModel.province_id'=>'required|integer',
- 'BillingModel.carrier_id'=>'required|integer',
- 'BillingModel.unit_id'=>'required|integer',
- 'BillingModel.city_id'=>'required|Integer',
- 'BillingModel.range_min'=> 'required|min:0|numeric',
- 'BillingModel.range_max'=> "required|min:{$min}|numeric",
- 'BillingModel.unit_price'=>'required|min:0|numeric',
- 'BillingModel.initial_weight'=>'required|min:0|numeric',
- ],[
- 'required'=>':attribute 为必填项',
- 'min' =>':attribute 数值过小',
- 'max' => ':attribute 数值过大',
- 'numeric' =>':attribute 应为数字',
- 'integer'=> ':attribute 选择错误',
- ],[
- 'BillingModel.province_id'=>'省份',
- 'BillingModel.carrier_id'=>'承运商',
- 'BillingModel.unit_id'=>'计重单位',
- 'BillingModel.city_id'=>'城市',
- 'BillingModel.range_min'=>'价格区间最小值',
- 'BillingModel.range_max'=>'价格区间最大值',
- 'BillingModel.unit_price'=>'单价',
- 'BillingModel.initial_weight'=>'始重',
- ]);
- return $validator;
- }
- }
|