| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- namespace App\Module\Farm\Repositories;
- use App\Module\Farm\Models\FarmUserReferral;
- use Dcat\Admin\Repositories\EloquentRepository;
- use Illuminate\Database\Eloquent\Collection;
- /**
- * 用户推荐关系仓库
- *
- * 提供用户推荐关系数据的访问和操作功能。
- * 该类是用户推荐关系模块与后台管理系统的桥梁,用于处理用户推荐关系数据的CRUD操作。
- */
- class FarmUserReferralRepository extends EloquentRepository
- {
- /**
- * 模型类名
- *
- * @var string
- */
- protected $eloquentClass = FarmUserReferral::class;
- /**
- * 获取用户的推荐人
- *
- * @param int $userId
- * @return Collection
- */
- public function findReferrersByUserId(int $userId): Collection
- {
- return FarmUserReferral::where('user_id', $userId)
- ->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();
- }
- }
|