UrsUserMappingDto.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Module\UrsPromotion\Dtos;
  3. use App\Module\UrsPromotion\Models\UrsUserMapping;
  4. use UCore\Dto\BaseDto;
  5. /**
  6. * URS用户映射数据传输对象
  7. *
  8. * 用于在服务层返回URS用户映射信息,避免直接暴露模型对象
  9. */
  10. class UrsUserMappingDto 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 string|null URS用户凭证
  22. */
  23. public ?string $userKey;
  24. /**
  25. * @var int 农场用户ID
  26. */
  27. public int $userId;
  28. /**
  29. * @var string 映射时间
  30. */
  31. public string $mappingTime;
  32. /**
  33. * @var int 状态
  34. */
  35. public int $status;
  36. /**
  37. * @var string 状态文本
  38. */
  39. public string $statusText;
  40. /**
  41. * @var string 创建时间
  42. */
  43. public string $createdAt;
  44. /**
  45. * @var string 更新时间
  46. */
  47. public string $updatedAt;
  48. /**
  49. * 从模型创建DTO
  50. *
  51. * @param UrsUserMapping $model URS用户映射模型
  52. * @return self
  53. */
  54. public static function fromModel(UrsUserMapping $model): self
  55. {
  56. $dto = new self();
  57. $dto->id = $model->id;
  58. $dto->ursUserId = $model->urs_user_id;
  59. $dto->userKey = $model->user_key;
  60. $dto->userId = $model->user_id;
  61. $dto->mappingTime = $model->mapping_time ? $model->mapping_time->toDateTimeString() : '';
  62. $dto->status = $model->status;
  63. $dto->statusText = UrsUserMapping::$statusMap[$model->status] ?? '未知';
  64. $dto->createdAt = $model->created_at ? $model->created_at->toDateTimeString() : '';
  65. $dto->updatedAt = $model->updated_at ? $model->updated_at->toDateTimeString() : '';
  66. return $dto;
  67. }
  68. }