first(); if (!$user) { return null; } $platform = UserLogin::where('user_id', $memberId) ->where('status', UserLogin::STATUS_SUCCESS)->orderBy('id')->value('platform'); return [ 'registered_at' => $user->getRawOriginal('created_at'), 'register_platform' => ActivityEligibility::normalizePlatform($platform), // Same categories as getTotalRecharge(), retaining the database decimal precision. 'deposit_total' => (string)BalanceLog::where('member_id', $memberId)->where('type', 1) ->whereIn('change_type', ['充值', '人工充值', '三方充值']) ->selectRaw('COALESCE(SUM(amount), 0) AS total')->value('total'), ]; } public static function evaluate(ActivityReward $activity, ?array $member): array { return ActivityEligibility::evaluate($activity->toArray(), $member); } public static function isPublishedOn(ActivityReward $activity, ?string $platform): bool { return ActivityEligibility::isPublishedOn($activity->toArray(), $platform); } }