MexMatchLogService.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace App\Module\Mex\Services;
  3. use App\Module\Mex\Logic\MexMatchLogLogic;
  4. use App\Module\Mex\Enums\MatchType;
  5. /**
  6. * 农贸市场撮合日志服务
  7. *
  8. * 提供撮合日志相关的对外服务接口
  9. */
  10. class MexMatchLogService
  11. {
  12. /**
  13. * 记录撮合日志
  14. *
  15. * @param MatchType $matchType 撮合类型
  16. * @param int $itemId 商品ID
  17. * @param int $batchSize 批处理大小
  18. * @param array $result 撮合结果
  19. * @param int|null $executionTimeMs 执行时间(毫秒)
  20. * @param string|null $errorMessage 错误消息
  21. * @return array 日志记录结果
  22. */
  23. public static function logMatch(
  24. MatchType $matchType,
  25. int $itemId,
  26. int $batchSize,
  27. array $result,
  28. ?int $executionTimeMs = null,
  29. ?string $errorMessage = null
  30. ): array {
  31. try {
  32. $log = MexMatchLogLogic::logMatch(
  33. $matchType,
  34. $itemId,
  35. $batchSize,
  36. $result,
  37. $executionTimeMs,
  38. $errorMessage
  39. );
  40. return [
  41. 'success' => true,
  42. 'log_id' => $log->id,
  43. 'message' => '撮合日志记录成功'
  44. ];
  45. } catch (\Exception $e) {
  46. return [
  47. 'success' => false,
  48. 'message' => '撮合日志记录失败:' . $e->getMessage()
  49. ];
  50. }
  51. }
  52. /**
  53. * 获取最后撮合时间信息
  54. *
  55. * @return array 最后撮合时间信息
  56. */
  57. public static function getLastMatchTimes(): array
  58. {
  59. return MexMatchLogLogic::getLastMatchTimes();
  60. }
  61. /**
  62. * 获取撮合统计信息
  63. *
  64. * @param int $days 统计天数
  65. * @return array 统计信息
  66. */
  67. public static function getMatchStats(int $days = 7): array
  68. {
  69. return MexMatchLogLogic::getMatchStats($days);
  70. }
  71. /**
  72. * 获取商品撮合历史
  73. *
  74. * @param int $itemId 商品ID
  75. * @param int $limit 限制数量
  76. * @return array 撮合历史
  77. */
  78. public static function getItemMatchHistory(int $itemId, int $limit = 20): array
  79. {
  80. return MexMatchLogLogic::getItemMatchHistory($itemId, $limit);
  81. }
  82. }