CustomerBaseController.php 4.5 KB

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