MexDailyPriceTrendDto.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Module\Mex\Dto;
  3. use App\Module\Fund\Enums\FUND_CURRENCY_TYPE;
  4. use App\Module\Mex\Models\MexDailyPriceTrend;
  5. use UCore\Dto\BaseDto;
  6. /**
  7. * 农贸市场每日价格趋势DTO
  8. */
  9. class MexDailyPriceTrendDto extends BaseDto
  10. {
  11. public int $id;
  12. public int $itemId;
  13. public FUND_CURRENCY_TYPE $currencyType;
  14. public string $tradeDate;
  15. public ?float $openPrice;
  16. public ?float $closePrice;
  17. public ?float $highPrice;
  18. public ?float $lowPrice;
  19. public ?float $avgPrice;
  20. public int $totalVolume;
  21. public float $totalAmount;
  22. public int $transactionCount;
  23. public int $buyVolume;
  24. public int $sellVolume;
  25. public float $buyAmount;
  26. public float $sellAmount;
  27. public int $adminInjectVolume;
  28. public int $adminRecycleVolume;
  29. public float $adminInjectAmount;
  30. public float $adminRecycleAmount;
  31. public ?float $priceChange;
  32. public ?float $priceChangePercent;
  33. public ?float $volatility;
  34. public string $createdAt;
  35. public string $updatedAt;
  36. public string $priceTrendDescription;
  37. public string $volatilityLevel;
  38. /**
  39. * 从模型创建DTO
  40. */
  41. public static function fromModel(MexDailyPriceTrend $model): self
  42. {
  43. $dto = new self();
  44. $dto->id = $model->id;
  45. $dto->itemId = $model->item_id;
  46. $dto->currencyType = $model->currency_type;
  47. $dto->tradeDate = $model->trade_date->format('Y-m-d');
  48. $dto->openPrice = $model->open_price;
  49. $dto->closePrice = $model->close_price;
  50. $dto->highPrice = $model->high_price;
  51. $dto->lowPrice = $model->low_price;
  52. $dto->avgPrice = $model->avg_price;
  53. $dto->totalVolume = $model->total_volume;
  54. $dto->totalAmount = $model->total_amount;
  55. $dto->transactionCount = $model->transaction_count;
  56. $dto->buyVolume = $model->buy_volume;
  57. $dto->sellVolume = $model->sell_volume;
  58. $dto->buyAmount = $model->buy_amount;
  59. $dto->sellAmount = $model->sell_amount;
  60. $dto->adminInjectVolume = $model->admin_inject_volume;
  61. $dto->adminRecycleVolume = $model->admin_recycle_volume;
  62. $dto->adminInjectAmount = $model->admin_inject_amount;
  63. $dto->adminRecycleAmount = $model->admin_recycle_amount;
  64. $dto->priceChange = $model->price_change;
  65. $dto->priceChangePercent = $model->price_change_percent;
  66. $dto->volatility = $model->volatility;
  67. $dto->createdAt = $model->created_at->format('Y-m-d H:i:s');
  68. $dto->updatedAt = $model->updated_at->format('Y-m-d H:i:s');
  69. $dto->priceTrendDescription = $model->price_trend_description;
  70. $dto->volatilityLevel = $model->volatility_level;
  71. return $dto;
  72. }
  73. }