PriceModelController.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\OwnerPriceOperation;
  4. use App\Services\OwnerOutStorageRuleService;
  5. use Illuminate\Database\Eloquent\Builder;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Gate;
  8. use Illuminate\Support\Facades\Validator;
  9. class PriceModelController extends Controller
  10. {
  11. public function storageIndex()
  12. {
  13. if(!Gate::allows('计费模型-仓储')){ return redirect('denied'); }
  14. $models = app('OwnerStoragePriceModelService')->paginate(["unit"]);
  15. return response()->view('maintenance.priceModel.storage.index',compact("models"));
  16. }
  17. public function storageCreate()
  18. {
  19. if(!Gate::allows('计费模型-仓储-录入')){ return redirect('denied'); }
  20. $units = app('UnitService')->getSelection();
  21. return response()->view('maintenance.priceModel.storage.create',compact("units"));
  22. }
  23. public function storageStore(Request $request)
  24. {
  25. if(!Gate::allows('计费模型-仓储-录入')){ return redirect('denied'); }
  26. $this->storageValidator($request->input())->validate();
  27. app('OwnerStoragePriceModelService')->create($request->input());
  28. return response()->redirectTo('maintenance/priceModel/storage')->with('successTip',"创建成功!");
  29. }
  30. public function storageEdit($id)
  31. {
  32. if(!Gate::allows('计费模型-仓储-编辑')){ return redirect('denied'); }
  33. $model = app('OwnerStoragePriceModelService')->find($id);
  34. $units = app('UnitService')->getSelection();
  35. return response()->view('maintenance.priceModel.storage.create',compact("units","model"));
  36. }
  37. public function storageUpdate(Request $request)
  38. {
  39. if(!Gate::allows('计费模型-仓储-编辑')){ return redirect('denied'); }
  40. app('OwnerStoragePriceModelService')->update(["id"=>$request->input("id")],[
  41. "counting_type" => $request->input("counting_type"),
  42. "using_type" => $request->input("using_type"),
  43. "minimum_area" => $request->input("minimum_area"),
  44. "price" => $request->input("price"),
  45. "discount_type" => $request->input("discount_type"),
  46. "discount_value"=> $request->input("discount_value"),
  47. "unit_id" => $request->input("unit_id"),
  48. ]);
  49. return response()->redirectTo('maintenance/priceModel/storage')->with('successTip',"更新成功!");
  50. }
  51. public function storageDestroy($id)
  52. {
  53. app("OwnerStoragePriceModelService")->destroy($id);
  54. return ["success"=>true];
  55. }
  56. private function storageValidator(array $params)
  57. {
  58. return Validator::make($params,[
  59. 'counting_type'=>['required'],
  60. 'using_type'=>['required'],
  61. 'minimum_area'=>['nullable','numeric','min:0'],
  62. 'discount_value'=>['nullable','numeric','min:0'],
  63. 'price'=>['required','numeric','min:0'],
  64. 'discount_type'=>['required'],
  65. 'unit_id'=>['required','integer'],
  66. ],[
  67. 'required'=>':attribute 为必填项',
  68. 'min'=>':attribute 不得小于0',
  69. 'integer'=>':attribute 未选择',
  70. ],[
  71. 'counting_type' =>"计费类型",
  72. 'using_type' =>"用仓类型",
  73. 'minimum_area' =>"最低起租面积",
  74. 'price' =>"单价",
  75. 'discount_type' =>"减免类型",
  76. 'discount_value'=>"减免值",
  77. 'unit_id' =>"单位",
  78. ]);
  79. }
  80. public function operationIndex(Request $request){
  81. if(!Gate::allows('计费模型-作业-查询')){ return redirect('denied'); }
  82. $models = app('OwnerPriceOperationService')->paginate($request->input(),["ownerInStorageRule"=>function($query){$query->with("unit");}]);
  83. $owners = app("OwnerService")->getSelection();
  84. return response()->view('maintenance.priceModel.operation.index',compact("models","owners"));
  85. }
  86. /* 获取出库模型规则 */
  87. public function operationGetOutStorageRule(Request $request)
  88. {
  89. if(!Gate::allows('计费模型-作业-查询')){ return ["success"=>false,"data"=>"无权操作"]; }
  90. /** @var OwnerOutStorageRuleService $service */
  91. $service = app('OwnerOutStorageRuleService');
  92. $ownerOutStorageRules = $service->get(["owner_price_operation_id"=>$request->input("id")],["unit"],true)->append("featureFormat");
  93. return ["success"=>true,"data"=>$ownerOutStorageRules];
  94. }
  95. /* 修改出库模型规则 */
  96. public function updateOutStorageRule(Request $request)
  97. {
  98. /** @var OwnerOutStorageRuleService $service */
  99. $service = app('OwnerOutStorageRuleService');
  100. $row = $service->update(["id"=>$request->input("id")],[
  101. "amount"=>$request->input("amount"),
  102. "unit_id"=>$request->input("unit_id"),
  103. "priority"=>$request->input("priority"),
  104. "unit_price"=>$request->input("unit_price")]);
  105. if ($row == 1) return ["success"=>true];
  106. return ["success"=>false,"data"=>"受影响数据数为:".$row];
  107. }
  108. public function createOutStorageRule(Request $request)
  109. {
  110. /** @var OwnerOutStorageRuleService $service */
  111. $service = app('OwnerOutStorageRuleService');
  112. switch ($request->input("strategy")){
  113. case "起步":
  114. $c = $service->isExist(["owner_price_operation_id"=>$request->input("owner_price_operation_id"),"strategy"=>"起步"]);
  115. if ($c > 0)return ["success"=>false,"data"=>"已存在起步策略"];
  116. break;
  117. case "默认":
  118. $c = $service->isExist(["owner_price_operation_id"=>$request->input("owner_price_operation_id"),"strategy"=>"默认"]);
  119. if ($c > 0)return ["success"=>false,"data"=>"已存在默认策略"];
  120. break;
  121. }
  122. $data = $service->create($request->input());
  123. $data->load("unit");
  124. return ["success"=>true,"data"=>$data];
  125. }
  126. public function getFeatures(Request $request)
  127. {
  128. return ["success"=>true,"data"=>app("FeatureService")->translationFeature($request->input("feature"))];
  129. }
  130. public function operationCreate(){
  131. if(!Gate::allows('计费模型-作业-录入')){ return redirect('denied'); }
  132. return response()->view('maintenance.priceModel.operation.create');
  133. }
  134. public function expressIndex(){
  135. if(!Gate::allows('计费模型-快递-查询')){ return redirect('denied'); }
  136. return response()->view('maintenance.priceModel.express.index');
  137. }
  138. public function expressCreate(){
  139. if(!Gate::allows('计费模型-快递-录入')){ return redirect('denied'); }
  140. return response()->view('maintenance.priceModel.express.create');
  141. }
  142. public function logisticIndex(){
  143. if(!Gate::allows('计费模型-物流-查询')){ return redirect('denied'); }
  144. return response()->view('maintenance.priceModel.logistic.index');
  145. }
  146. public function logisticCreate(){
  147. if(!Gate::allows('计费模型-物流-录入')){ return redirect('denied'); }
  148. return response()->view('maintenance.priceModel.logistic.create');
  149. }
  150. public function directLogisticIndex(){
  151. if(!Gate::allows('计费模型-直发-查询')){ return redirect('denied'); }
  152. return response()->view('maintenance.priceModel.directLogistic.index');
  153. }
  154. public function directLogisticCreate(){
  155. if(!Gate::allows('计费模型-直发-录入')){ return redirect('denied'); }
  156. return response()->view('maintenance.priceModel.directLogistic.create');
  157. }
  158. }