MexDailyPriceTrendService.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Module\Mex\Service;
  3. use App\Module\Fund\Enums\FUND_CURRENCY_TYPE;
  4. use App\Module\Mex\Dto\MexDailyPriceTrendDto;
  5. use App\Module\Mex\Logic\MexDailyPriceTrendLogic;
  6. use Illuminate\Support\Collection;
  7. /**
  8. * 农贸市场每日价格趋势服务层
  9. */
  10. class MexDailyPriceTrendService
  11. {
  12. /**
  13. * 生成指定日期的价格趋势数据
  14. */
  15. public static function generateDailyTrend(string $date, int $itemId, FUND_CURRENCY_TYPE $currencyType): ?MexDailyPriceTrendDto
  16. {
  17. $logic = new MexDailyPriceTrendLogic();
  18. return $logic->generateDailyTrend($date, $itemId, $currencyType);
  19. }
  20. /**
  21. * 批量生成多日价格趋势数据
  22. */
  23. public static function generateMultipleDaysTrends(
  24. string $startDate,
  25. string $endDate,
  26. ?int $itemId = null,
  27. ?FUND_CURRENCY_TYPE $currencyType = null
  28. ): Collection {
  29. $logic = new MexDailyPriceTrendLogic();
  30. return $logic->generateMultipleDaysTrends($startDate, $endDate, $itemId, $currencyType);
  31. }
  32. /**
  33. * 获取商品的价格趋势历史
  34. */
  35. public static function getItemPriceTrends(
  36. int $itemId,
  37. FUND_CURRENCY_TYPE $currencyType,
  38. string $startDate,
  39. string $endDate,
  40. int $limit = 100
  41. ): Collection {
  42. $logic = new MexDailyPriceTrendLogic();
  43. return $logic->getItemPriceTrends($itemId, $currencyType, $startDate, $endDate, $limit);
  44. }
  45. /**
  46. * 获取价格趋势统计信息
  47. */
  48. public static function getTrendStatistics(
  49. int $itemId,
  50. FUND_CURRENCY_TYPE $currencyType,
  51. string $startDate,
  52. string $endDate
  53. ): array {
  54. $logic = new MexDailyPriceTrendLogic();
  55. return $logic->getTrendStatistics($itemId, $currencyType, $startDate, $endDate);
  56. }
  57. /**
  58. * 生成今日所有商品的价格趋势
  59. */
  60. public static function generateTodayTrends(): Collection
  61. {
  62. $today = date('Y-m-d');
  63. $logic = new MexDailyPriceTrendLogic();
  64. return $logic->generateMultipleDaysTrends($today, $today);
  65. }
  66. /**
  67. * 生成昨日所有商品的价格趋势
  68. */
  69. public static function generateYesterdayTrends(): Collection
  70. {
  71. $yesterday = date('Y-m-d', strtotime('-1 day'));
  72. $logic = new MexDailyPriceTrendLogic();
  73. return $logic->generateMultipleDaysTrends($yesterday, $yesterday);
  74. }
  75. }