MemberController.php 2.3 KB

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