MexOrderService.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Module\Mex\Services;
  3. use App\Module\Mex\Logic\MexOrderLogic;
  4. use App\Module\Mex\Models\MexOrder;
  5. use App\Module\Mex\Enums\OrderType;
  6. use App\Module\Mex\Enums\OrderStatus;
  7. use App\Module\Fund\Enums\FUND_CURRENCY_TYPE;
  8. /**
  9. * 农贸市场订单服务
  10. *
  11. * 提供订单相关的对外服务接口
  12. */
  13. class MexOrderService
  14. {
  15. /**
  16. * 创建卖出订单
  17. *
  18. * @param int $userId 用户ID
  19. * @param int $itemId 商品ID
  20. * @param int $quantity 数量
  21. * @param float $price 价格(信任Fund模块的数据处理)
  22. * @param FUND_CURRENCY_TYPE|null $currencyType 币种类型,默认使用钻石
  23. * @return array 操作结果
  24. */
  25. public static function createSellOrder(int $userId, int $itemId, int $quantity, float $price, ?FUND_CURRENCY_TYPE $currencyType = null): array
  26. {
  27. return MexOrderLogic::createSellOrder($userId, $itemId, $quantity, $price, $currencyType);
  28. }
  29. /**
  30. * 创建买入订单
  31. *
  32. * @param int $userId 用户ID
  33. * @param int $itemId 商品ID
  34. * @param int $quantity 数量
  35. * @param float $price 价格(信任Fund模块的数据处理)
  36. * @param FUND_CURRENCY_TYPE|null $currencyType 币种类型,默认使用钻石
  37. * @return array 操作结果
  38. */
  39. public static function createBuyOrder(int $userId, int $itemId, int $quantity, float $price, ?FUND_CURRENCY_TYPE $currencyType = null): array
  40. {
  41. return MexOrderLogic::createBuyOrder($userId, $itemId, $quantity, $price, $currencyType);
  42. }
  43. /**
  44. * 取消订单
  45. *
  46. * @param int $userId 用户ID
  47. * @param int $orderId 订单ID
  48. * @return array 操作结果
  49. */
  50. public static function cancelOrder(int $userId, int $orderId): array
  51. {
  52. return MexOrderLogic::cancelOrder($userId, $orderId);
  53. }
  54. /**
  55. * 获取用户订单列表
  56. *
  57. * @param int $userId 用户ID
  58. * @param int $page 页码
  59. * @param int $pageSize 每页数量
  60. * @return array 订单列表
  61. */
  62. public static function getUserOrders(int $userId, int $page = 1, int $pageSize = 20): array
  63. {
  64. return MexOrderLogic::getUserOrders($userId, $page, $pageSize);
  65. }
  66. /**
  67. * 获取订单详情
  68. *
  69. * @param int $userId 用户ID
  70. * @param int $orderId 订单ID
  71. * @return array|null 订单详情
  72. */
  73. public static function getOrderDetail(int $userId, int $orderId): ?array
  74. {
  75. return MexOrderLogic::getOrderDetail($userId, $orderId);
  76. }
  77. /**
  78. * 获取待撮合的买入订单
  79. *
  80. * @param int $itemId 商品ID
  81. * @param int $limit 限制数量
  82. * @return array 订单列表
  83. */
  84. public static function getPendingBuyOrders(int $itemId, int $limit = 100): array
  85. {
  86. return MexOrderLogic::getPendingBuyOrders($itemId, $limit);
  87. }
  88. }