FarmUserRepository.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Module\Farm\Repositories;
  3. use App\Module\Farm\Models\FarmUser;
  4. use Dcat\Admin\Repositories\EloquentRepository;
  5. use Illuminate\Database\Eloquent\Collection;
  6. /**
  7. * 用户农场信息仓库
  8. *
  9. * 提供用户农场信息数据的访问和操作功能。
  10. * 该类是用户农场信息模块与后台管理系统的桥梁,用于处理用户农场信息数据的CRUD操作。
  11. */
  12. class FarmUserRepository extends EloquentRepository
  13. {
  14. /**
  15. * 模型类名
  16. *
  17. * @var string
  18. */
  19. protected $eloquentClass = FarmUser::class;
  20. /**
  21. * 根据用户ID查找农场信息
  22. *
  23. * @param int $userId
  24. * @return FarmUser|null
  25. */
  26. public function findByUserId(int $userId): ?FarmUser
  27. {
  28. return FarmUser::where('user_id', $userId)->first();
  29. }
  30. /**
  31. * 获取指定房屋等级的用户
  32. *
  33. * @param int $houseLevel
  34. * @return Collection
  35. */
  36. public function findByHouseLevel(int $houseLevel): Collection
  37. {
  38. return FarmUser::where('house_level', $houseLevel)->get();
  39. }
  40. /**
  41. * 获取需要检查降级的用户
  42. *
  43. * @param int $days
  44. * @return Collection
  45. */
  46. public function findNeedDowngradeUsers(int $days): Collection
  47. {
  48. $date = now()->subDays($days);
  49. return FarmUser::where('house_level', '>', 1)
  50. ->where('last_upgrade_time', '<', $date)
  51. ->get();
  52. }
  53. }