UrsUserReferralDto.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Module\UrsPromotion\Dtos;
  3. use App\Module\UrsPromotion\Models\UrsUserReferral;
  4. use UCore\Dto\BaseDto;
  5. /**
  6. * URS用户推荐关系数据传输对象
  7. *
  8. * 用于在服务层返回URS用户推荐关系信息,避免直接暴露模型对象
  9. */
  10. class UrsUserReferralDto extends BaseDto
  11. {
  12. /**
  13. * @var int 推荐关系ID
  14. */
  15. public int $id;
  16. /**
  17. * @var int URS用户ID
  18. */
  19. public int $ursUserId;
  20. /**
  21. * @var int URS推荐人ID
  22. */
  23. public int $ursReferrerId;
  24. /**
  25. * @var string 推荐时间
  26. */
  27. public string $referralTime;
  28. /**
  29. * @var int 状态
  30. */
  31. public int $status;
  32. /**
  33. * @var string 状态文本
  34. */
  35. public string $statusText;
  36. /**
  37. * @var string 创建时间
  38. */
  39. public string $createdAt;
  40. /**
  41. * @var string 更新时间
  42. */
  43. public string $updatedAt;
  44. /**
  45. * 从模型创建DTO
  46. *
  47. * @param UrsUserReferral $model URS用户推荐关系模型
  48. * @return self
  49. */
  50. public static function fromModel(UrsUserReferral $model): self
  51. {
  52. $dto = new self();
  53. $dto->id = $model->id;
  54. $dto->ursUserId = $model->urs_user_id;
  55. $dto->ursReferrerId = $model->urs_referrer_id;
  56. $dto->referralTime = $model->referral_time ? $model->referral_time->toDateTimeString() : '';
  57. $dto->status = $model->status;
  58. $dto->statusText = UrsUserReferral::$statusMap[$model->status] ?? '未知';
  59. $dto->createdAt = $model->created_at ? $model->created_at->toDateTimeString() : '';
  60. $dto->updatedAt = $model->updated_at ? $model->updated_at->toDateTimeString() : '';
  61. return $dto;
  62. }
  63. }