whereIn('register_area_id',$area_ids) ->where('is_bind_mobile',User::BIND_MOBILE_OK) ->filter($filter) ->orderByDesc('id') ->paginate(); return $this->ok(UserResource::collection($user)); } /** * userDetail 用户详情 * * @param Request $request * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function userDetail(Request $request){ $user_id = $request->get('user_id') ?? ''; if(empty($user_id)) return $this->error('参数错误'); $userDetail = User::query()->find($user_id); if(empty($userDetail)) return $this->error('找不到该用户,参数错误'); $data = [ 'username' => $userDetail->nickname.($userDetail->truename ? '('.$userDetail->truename.')' : ''), 'mobile' => $userDetail->mobile ?? '', 'area' => $userDetail->areas->name ?? '', 'deposit' => $userDetail->deposit_money ?? 0, 'wallet_money' => $userDetail->wallet_money ?? 0, ]; return $this->ok($data); } /** * historicalOrder 历史订单 * * @param Request $request * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function historicalOrder(Request $request){ $user_id = $request->get('user_id') ?? ''; if(empty($user_id)) return $this->error('参数错误'); $order = Order::query() ->where('user_id',$user_id) // ->where('status',Order::STATUS_COMPLETE_ORDER) ->orderByDesc('id') ->paginate(); return $this->ok(OrderResource::collection($order)); } /** * historicalOrderRent 历史日租订单 * * @param Request $request * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function historicalOrderRent(Request $request){ $user_id = $request->get('user_id') ?? ''; if(empty($user_id)) return $this->error('参数错误'); $order = OrderRent::query() ->where('user_id',$user_id) // ->where('status',Order::STATUS_COMPLETE_ORDER) ->orderByDesc('id') ->paginate(); return $this->ok(OrderRentResource::collection($order)); } /** * userStatistics 用户统计 * * @param UserFilter $filter * @param OrderFilter $orderFilter * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function userStatistics(UserFilter $filter,OrderFilter $orderFilter){ $area_ids = self::$areaIds; // 总用户 $totalUser = User::query() ->whereIn('register_area_id',$area_ids) ->filter($filter) ->count('id'); // 押金用户 $depositUser = User::query() ->whereIn('register_area_id',$area_ids) ->where('is_deposit',User::DEPOSIT_OK) ->filter($filter) ->count('id'); //有效用户 $cardUser = User::query() ->whereIn('register_area_id',$area_ids) ->where('is_card_certified',User::CARD_OK) ->filter($filter) ->count('id'); //今日新增 $todayAddUser = User::query() ->whereIn('register_area_id',$area_ids) ->where('is_card_certified',User::CARD_OK) ->where('created_at','>',Carbon::today()) ->filter($filter) ->count('id'); // 今日活跃 $todayActiveOrder = Order::query() ->whereIn('area_id',$area_ids) ->where('created_at','>',Carbon::today()) ->filter($orderFilter) ->get(['user_id']) ->toArray(); $todayActiveUserArr = []; foreach ($todayActiveOrder as $v){ $todayActiveUserArr[] = $v['user_id']; } $todayActiveUser = count(array_unique($todayActiveUserArr)); //去重复后计算总数 $data = [ 'totalUser' => $totalUser ?? 0, 'depositUser' => $depositUser ?? 0, 'cardUser' => $cardUser ?? 0, 'todayAddUser' => $todayAddUser ?? 0, 'todayActiveUser' => $todayActiveUser ?? 0 ]; return $this->ok($data); } }