orderBy('level') ->get(); } /** * 获取用户的直接推荐人 * * @param int $userId * @return FarmUserReferral|null */ public function findDirectReferrer(int $userId): ?FarmUserReferral { return FarmUserReferral::where('user_id', $userId) ->where('level', 1) ->first(); } /** * 获取用户推荐的人 * * @param int $referrerId * @return Collection */ public function findReferredByReferrerId(int $referrerId): Collection { return FarmUserReferral::where('referrer_id', $referrerId) ->orderBy('level') ->get(); } /** * 获取用户直接推荐的人 * * @param int $referrerId * @return Collection */ public function findDirectReferred(int $referrerId): Collection { return FarmUserReferral::where('referrer_id', $referrerId) ->where('level', 1) ->get(); } /** * 获取用户间接推荐的人 * * @param int $referrerId * @return Collection */ public function findIndirectReferred(int $referrerId): Collection { return FarmUserReferral::where('referrer_id', $referrerId) ->where('level', 2) ->get(); } /** * 检查推荐关系是否存在 * * @param int $userId * @param int $referrerId * @return bool */ public function checkReferralExists(int $userId, int $referrerId): bool { return FarmUserReferral::where('user_id', $userId) ->where('referrer_id', $referrerId) ->exists(); } }