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; } }