RecordsController.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /****************************************************************
  3. * Author: king -- LiBaoJia
  4. * Date: 12/24/20 4:32 PM
  5. * Email: livsyitian@163.com
  6. * QQ: 995265288
  7. * IDE: PhpStorm
  8. * User: 芸众商城 www.yunzshop.com
  9. ****************************************************************/
  10. namespace app\backend\modules\point\controllers;
  11. use app\backend\modules\finance\models\PointLog;
  12. use app\backend\modules\member\models\MemberGroup;
  13. use app\backend\modules\member\models\MemberLevel;
  14. use app\common\components\BaseController;
  15. use app\common\helpers\PaginationHelper;
  16. use Illuminate\Contracts\Pagination\LengthAwarePaginator;
  17. class RecordsController extends BaseController
  18. {
  19. public function index()
  20. {
  21. return view('point.records', $this->resultData());
  22. }
  23. private function resultData()
  24. {
  25. $recordsModels = $this->recordsModels();
  26. return [
  27. 'page' => $this->page($recordsModels),
  28. 'search' => $this->searchParams(),
  29. 'pageList' => $recordsModels,
  30. 'memberLevel' => $this->memberLevels(),
  31. 'memberGroup' => $this->memberGroups(),
  32. 'sourceComment' => $this->sourceComment(),
  33. ];
  34. }
  35. /**
  36. * @return array
  37. */
  38. public function searchParams()
  39. {
  40. return request()->search ?: [];
  41. }
  42. /**
  43. * @param LengthAwarePaginator $recordsModels
  44. *
  45. * @return string
  46. */
  47. private function page(LengthAwarePaginator $recordsModels)
  48. {
  49. return PaginationHelper::show($recordsModels->total(), $recordsModels->currentPage(), $recordsModels->perPage());
  50. }
  51. /**
  52. * @return LengthAwarePaginator
  53. */
  54. private function recordsModels()
  55. {
  56. $recordsModels = PointLog::uniacid()->with(['member']);
  57. if ($search = $this->searchParams()) {
  58. $recordsModels = $recordsModels->search($search);
  59. }
  60. return $recordsModels->orderBy('id', 'desc')->paginate();
  61. }
  62. private function memberLevels()
  63. {
  64. return MemberLevel::getMemberLevelList();
  65. }
  66. private function memberGroups()
  67. {
  68. return MemberGroup::getMemberGroupList();
  69. }
  70. private function sourceComment()
  71. {
  72. return (new PointLog())->sourceComment();
  73. }
  74. }