MemberController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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');
  23. }
  24. public function resultData()
  25. {
  26. $recordsModels = $this->recordsModels();
  27. $recordsModels->map(function ($item){
  28. $item->yz_member = $item->yzMember;
  29. $item->nickname = $item->nickname ?:
  30. ($item->mobile ? substr($item->mobile, 0, 2) . '******' . substr($item->mobile, -2, 2) : '无昵称会员');
  31. $item->yz_member->level = $item->yzMember->level;
  32. $item->yz_member->group = $item->yzMember->group;
  33. });
  34. return $this->successJson('ok',[
  35. 'shopSet' => Setting::get('shop.member'),
  36. 'amount' => $this->amount(),
  37. 'page' => $this->page($recordsModels),
  38. 'search' => $this->searchParams(),
  39. 'pageList' => $recordsModels,
  40. 'memberLevel' => $this->memberLevels(),
  41. 'memberGroup' => $this->memberGroups(),
  42. ]);
  43. }
  44. /**
  45. * @return array
  46. */
  47. public function searchParams()
  48. {
  49. return request()->search ?: [];
  50. }
  51. /**
  52. * @param LengthAwarePaginator $recordsModels
  53. *
  54. * @return string
  55. */
  56. private function page(LengthAwarePaginator $recordsModels)
  57. {
  58. return PaginationHelper::show($recordsModels->total(), $recordsModels->currentPage(), $recordsModels->perPage());
  59. }
  60. /**
  61. * @return LengthAwarePaginator
  62. */
  63. private function recordsModels()
  64. {
  65. $recordsModels = Member::uniacid();
  66. if ($search = $this->searchParams()) {
  67. $recordsModels = $recordsModels->search($search);
  68. }
  69. return $recordsModels->orderBy('uid', 'desc')->withoutDeleted()->paginate();
  70. }
  71. private function amount()
  72. {
  73. return Member::uniacid()->withoutDeleted()->sum('credit2');
  74. }
  75. private function memberLevels()
  76. {
  77. return MemberLevel::getMemberLevelList();
  78. }
  79. private function memberGroups()
  80. {
  81. return MemberGroup::getMemberGroupList();
  82. }
  83. }