OwnerLogisticFeeDetailController.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Owner;
  4. use App\OwnerLogisticFeeDetail;
  5. use App\Services\OwnerLogisticFeeDetailService;
  6. use Illuminate\Http\Request;
  7. use Oursdreams\Export\Export;
  8. class OwnerLogisticFeeDetailController extends Controller
  9. {
  10. /** @var $service OwnerLogisticFeeDetailService */
  11. private $service;
  12. /**
  13. * Display a listing of the resource.
  14. *
  15. */
  16. public function index(Request $request)
  17. {
  18. $paginateParams = $request->input();
  19. list($permittingOwnerIds, $owner_id, $start, $end) = $this->getRequestParams($request);
  20. $details = $this->service->getDetails($owner_id, $start, $end, $paginateParams);
  21. $owners = Owner::query()->selectRaw("id,name")->whereIn('id', $permittingOwnerIds)->get();
  22. $owner = Owner::query()->selectRaw("name")->find($owner_id);
  23. return view('finance.settlementBills.logisticFee.detail.index', compact('details', 'paginateParams', 'owners', 'owner'));
  24. }
  25. public function export(Request $request)
  26. {
  27. list($permittingOwnerIds, $owner_id, $start, $end) = $this->getRequestParams($request);
  28. $query = $this->service->getSql($owner_id, $start, $end);
  29. if (!$request->exists('checkAllSign')) {
  30. $query->whereIn('id', explode(',', $request['data']));
  31. }
  32. $details = $this->service->buildDetails($query->get());
  33. $json = [];
  34. foreach ($details as $detail) {
  35. $json[] = array_values($detail);
  36. }
  37. $row = ['主键', '快递公司', '省份', '快递单号', '重量', '首重价格', '续重价格', '快递费',];
  38. return Export::make($row, $json, "快递费用详情");
  39. }
  40. /**
  41. * @param Request $request
  42. * @return array
  43. */
  44. private function getRequestParams(Request $request): array
  45. {
  46. $this->service = app('OwnerLogisticFeeDetailService');
  47. $this->userService = app('UserService');
  48. $permittingOwnerIds = $this->userService->getPermittingOwnerIds(auth()->user());
  49. if (is_null($request->owner_id)) {
  50. $owner_id = $permittingOwnerIds[0];
  51. } else {
  52. $owner_id = $request->owner_id;
  53. }
  54. if (is_null($request->start)) {
  55. $start = now()->subMonth()->startOfMonth()->toDateString();
  56. } else {
  57. $start = $request->start;
  58. }
  59. if (is_null($request->end)) {
  60. $end = now()->subMonth()->endOfMonth()->toDateString();
  61. } else {
  62. $end = $request->end;
  63. }
  64. return array($permittingOwnerIds, $owner_id, $start, $end);
  65. }
  66. }