123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?php
- namespace App\Http\Controllers\App;
- use App\Filters\OrderFilter;
- use App\Filters\UserFilter;
- use App\Http\Resources\App\OrderRentResource;
- use App\Http\Resources\App\UserResource;
- use App\Http\Resources\App\OrderResource;
- use App\Models\Order;
- use App\Models\OrderRent;
- use App\Models\User;
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Log;
- class UserController extends AppBaseController
- {
- /**
- * userList 用户列表
- *
- * @param UserFilter $filter
- * @return \Illuminate\Http\JsonResponse
- * @author Fx
- *
- */
- public function userList(UserFilter $filter){
- $area_ids = self::$areaIds;
- $user = User::query()
- ->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);
- }
- }
|