FarmService.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Module\Farm\Services;
  3. use App\Module\Farm\Dtos\FarmInfoDto;
  4. use App\Module\Farm\Logics\FarmLogic;
  5. use Illuminate\Support\Facades\Log;
  6. /**
  7. * 农场基础服务
  8. */
  9. class FarmService
  10. {
  11. /**
  12. * 获取用户农场信息
  13. *
  14. * @param int $userId
  15. * @return FarmInfoDto|null
  16. */
  17. public static function getFarmInfo(int $userId): ?FarmInfoDto
  18. {
  19. try {
  20. $farmLogic = new FarmLogic();
  21. return $farmLogic->getFarmInfo($userId);
  22. } catch (\Exception $e) {
  23. Log::error('获取用户农场信息失败', [
  24. 'user_id' => $userId,
  25. 'error' => $e->getMessage(),
  26. 'trace' => $e->getTraceAsString()
  27. ]);
  28. return null;
  29. }
  30. }
  31. /**
  32. * 初始化用户农场
  33. *
  34. * @param int $userId
  35. * @return FarmInfoDto|null
  36. */
  37. public static function initializeFarm(int $userId): ?FarmInfoDto
  38. {
  39. try {
  40. $farmLogic = new FarmLogic();
  41. return $farmLogic->initializeFarm($userId);
  42. } catch (\Exception $e) {
  43. Log::error('初始化用户农场失败', [
  44. 'user_id' => $userId,
  45. 'error' => $e->getMessage(),
  46. 'trace' => $e->getTraceAsString()
  47. ]);
  48. return null;
  49. }
  50. }
  51. /**
  52. * 获取或初始化用户农场
  53. *
  54. * @param int $userId
  55. * @return FarmInfoDto|null
  56. */
  57. public static function getOrInitializeFarm(int $userId): ?FarmInfoDto
  58. {
  59. try {
  60. $farmLogic = new FarmLogic();
  61. $farmInfo = $farmLogic->getFarmInfo($userId);
  62. if (!$farmInfo) {
  63. $farmInfo = $farmLogic->initializeFarm($userId);
  64. }
  65. return $farmInfo;
  66. } catch (\Exception $e) {
  67. Log::error('获取或初始化用户农场失败', [
  68. 'user_id' => $userId,
  69. 'error' => $e->getMessage(),
  70. 'trace' => $e->getTraceAsString()
  71. ]);
  72. return null;
  73. }
  74. }
  75. }