MexDailyPriceTrendDto.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 ?float $buyOpenPrice;
  21. public ?float $buyClosePrice;
  22. public ?float $buyHighPrice;
  23. public ?float $buyLowPrice;
  24. public ?float $buyAvgPrice;
  25. public ?float $sellOpenPrice;
  26. public ?float $sellClosePrice;
  27. public ?float $sellHighPrice;
  28. public ?float $sellLowPrice;
  29. public ?float $sellAvgPrice;
  30. public int $totalVolume;
  31. public float $totalAmount;
  32. public int $transactionCount;
  33. public int $buyVolume;
  34. public int $sellVolume;
  35. public float $buyAmount;
  36. public float $sellAmount;
  37. public int $adminInjectVolume;
  38. public int $adminRecycleVolume;
  39. public float $adminInjectAmount;
  40. public float $adminRecycleAmount;
  41. public ?float $priceChange;
  42. public ?float $priceChangePercent;
  43. public ?float $volatility;
  44. public string $createdAt;
  45. public string $updatedAt;
  46. public string $priceTrendDescription;
  47. public string $volatilityLevel;
  48. /**
  49. * 从模型创建DTO
  50. */
  51. public static function fromModel(MexDailyPriceTrend $model): self
  52. {
  53. $dto = new self();
  54. $dto->id = $model->id;
  55. $dto->itemId = $model->item_id;
  56. $dto->currencyType = $model->currency_type;
  57. $dto->tradeDate = $model->trade_date->format('Y-m-d');
  58. $dto->openPrice = $model->open_price;
  59. $dto->closePrice = $model->close_price;
  60. $dto->highPrice = $model->high_price;
  61. $dto->lowPrice = $model->low_price;
  62. $dto->avgPrice = $model->avg_price;
  63. $dto->buyOpenPrice = $model->buy_open_price;
  64. $dto->buyClosePrice = $model->buy_close_price;
  65. $dto->buyHighPrice = $model->buy_high_price;
  66. $dto->buyLowPrice = $model->buy_low_price;
  67. $dto->buyAvgPrice = $model->buy_avg_price;
  68. $dto->sellOpenPrice = $model->sell_open_price;
  69. $dto->sellClosePrice = $model->sell_close_price;
  70. $dto->sellHighPrice = $model->sell_high_price;
  71. $dto->sellLowPrice = $model->sell_low_price;
  72. $dto->sellAvgPrice = $model->sell_avg_price;
  73. $dto->totalVolume = $model->total_volume;
  74. $dto->totalAmount = $model->total_amount;
  75. $dto->transactionCount = $model->transaction_count;
  76. $dto->buyVolume = $model->buy_volume;
  77. $dto->sellVolume = $model->sell_volume;
  78. $dto->buyAmount = $model->buy_amount;
  79. $dto->sellAmount = $model->sell_amount;
  80. $dto->adminInjectVolume = $model->admin_inject_volume;
  81. $dto->adminRecycleVolume = $model->admin_recycle_volume;
  82. $dto->adminInjectAmount = $model->admin_inject_amount;
  83. $dto->adminRecycleAmount = $model->admin_recycle_amount;
  84. $dto->priceChange = $model->price_change;
  85. $dto->priceChangePercent = $model->price_change_percent;
  86. $dto->volatility = $model->volatility;
  87. $dto->createdAt = $model->created_at->format('Y-m-d H:i:s');
  88. $dto->updatedAt = $model->updated_at->format('Y-m-d H:i:s');
  89. $dto->priceTrendDescription = $model->price_trend_description;
  90. $dto->volatilityLevel = $model->volatility_level;
  91. return $dto;
  92. }
  93. }