| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace app\extra\service\saas;
- use app\extra\basic\Service;
- use app\model\saas\SaasUser;
- use app\model\saas\SaasUserBuy;
- class MemberService extends Service
- {
- /**
- * 列表
- * @param array $param
- */
- public function getList(array $param = [])
- {
- $this->mode = new SaasUser();
- return $this->searchVal($param,$this->searchFilter($param))->with(['shop'])->paginate([
- "list_rows" => $param['pageSize'],
- "page" => $param['page']
- ]);
- }
- /**
- * @param array $param
- * @return array
- */
- public function getMpTotal(array $param = []): array
- {
- $this->mode = new SaasUser();
- $commonFilter = [];
- $filter = $this->searchFilter($param);
- // 起止时间
- if (!empty($param['create'])) {
- $times = between_time($param['create']);
- $start = date('Y-m-d',$times['start_time']);
- $end = date('Y-m-d',($times['end_time'] + 86400));
- $commonFilter[] = ['create_at', '>=', $start ];
- $commonFilter[] = ['create_at', '<', $end ];
- }
- $filter = array_merge($filter,$commonFilter);
- $userTotal = $this->mode->field("count(1) as number,sum(balance) as total")->where($filter)->findOrEmpty();
- $filter[] = ['status','=',1];
- $buyTotal = (new SaasUserBuy)->field("count(1) as number,sum(money) as total")->where($filter)->findOrEmpty();
- return [
- "user" => $userTotal['number'],
- "userMoney" => $userTotal['total'],
- "recharge" => $buyTotal['number'],
- "rechargeMoney" => $buyTotal['total'],
- ];
- }
- protected function searchFilter(array $param = []): array
- {
- $filter = [];
- !empty($param['type']) && $filter[] = ["type", '=', $param['type']];
- !empty($param['status']) && $filter[] = ["status", '=', ($param['status']-1)];
- !empty($param['statusGt']) && $filter[] = ["status", '>', ($param['statusGt']-1)];
- !empty($param['orderid']) && $filter[] = ["card_no", 'like', "%{$param['orderid']}%"];
- !empty($param['shop']) && $filter[] = ["shop_id", '=', $param['shop']];
- return $filter;
- }
- }
|