MemberService.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\extra\service\saas;
  3. use app\extra\basic\Service;
  4. use app\model\saas\SaasUser;
  5. use app\model\saas\SaasUserBuy;
  6. class MemberService extends Service
  7. {
  8. /**
  9. * 列表
  10. * @param array $param
  11. */
  12. public function getList(array $param = [])
  13. {
  14. $this->mode = new SaasUser();
  15. return $this->searchVal($param,$this->searchFilter($param))->with(['shop'])->paginate([
  16. "list_rows" => $param['pageSize'],
  17. "page" => $param['page']
  18. ]);
  19. }
  20. /**
  21. * @param array $param
  22. * @return array
  23. */
  24. public function getMpTotal(array $param = []): array
  25. {
  26. $this->mode = new SaasUser();
  27. $commonFilter = [];
  28. $filter = $this->searchFilter($param);
  29. // 起止时间
  30. if (!empty($param['create'])) {
  31. $times = between_time($param['create']);
  32. $start = date('Y-m-d',$times['start_time']);
  33. $end = date('Y-m-d',($times['end_time'] + 86400));
  34. $commonFilter[] = ['create_at', '>=', $start ];
  35. $commonFilter[] = ['create_at', '<', $end ];
  36. }
  37. $filter = array_merge($filter,$commonFilter);
  38. $userTotal = $this->mode->field("count(1) as number,sum(balance) as total")->where($filter)->findOrEmpty();
  39. $filter[] = ['status','=',1];
  40. $buyTotal = (new SaasUserBuy)->field("count(1) as number,sum(money) as total")->where($filter)->findOrEmpty();
  41. return [
  42. "user" => $userTotal['number'],
  43. "userMoney" => $userTotal['total'],
  44. "recharge" => $buyTotal['number'],
  45. "rechargeMoney" => $buyTotal['total'],
  46. ];
  47. }
  48. protected function searchFilter(array $param = []): array
  49. {
  50. $filter = [];
  51. !empty($param['type']) && $filter[] = ["type", '=', $param['type']];
  52. !empty($param['status']) && $filter[] = ["status", '=', ($param['status']-1)];
  53. !empty($param['statusGt']) && $filter[] = ["status", '>', ($param['statusGt']-1)];
  54. !empty($param['orderid']) && $filter[] = ["card_no", 'like', "%{$param['orderid']}%"];
  55. !empty($param['shop']) && $filter[] = ["shop_id", '=', $param['shop']];
  56. return $filter;
  57. }
  58. }