FarmInfoDto.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace App\Module\AppGame\Proto;
  3. use Uraus\Kku\Common\DataHourse;
  4. /**
  5. * 农场信息DTO转换为Protobuf数据对象
  6. */
  7. class FarmInfoDto
  8. {
  9. /**
  10. * 将Farm模块的FarmInfoDto转换为Protobuf的DataHourse对象
  11. *
  12. * @param \App\Module\Farm\Dtos\FarmInfoDto $farmInfoDto
  13. * @return DataHourse
  14. */
  15. public static function toDataHourse(\App\Module\Farm\Dtos\FarmInfoDto $farmInfoDto): DataHourse
  16. {
  17. $dataHourse = new DataHourse();
  18. // 设置房屋等级
  19. $dataHourse->setLevel($farmInfoDto->houseLevel);
  20. // 设置降级时间(如果有)
  21. if (!empty($farmInfoDto->lastUpgradeTime)) {
  22. // 如果lastUpgradeTime是字符串格式的日期时间,转换为时间戳
  23. if (is_string($farmInfoDto->lastUpgradeTime)) {
  24. $downgradeTime = strtotime($farmInfoDto->lastUpgradeTime);
  25. $dataHourse->setDowngradeTime($downgradeTime);
  26. }
  27. // 如果已经是时间戳,直接使用
  28. else if (is_numeric($farmInfoDto->lastUpgradeTime)) {
  29. $dataHourse->setDowngradeTime($farmInfoDto->lastUpgradeTime);
  30. }
  31. }
  32. return $dataHourse;
  33. }
  34. }