| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- namespace App\Module\Mex\Services;
- use App\Module\Mex\Logic\MexOrderLogic;
- use App\Module\Mex\Models\MexOrder;
- use App\Module\Mex\Enums\OrderType;
- use App\Module\Mex\Enums\OrderStatus;
- use App\Module\Fund\Enums\FUND_CURRENCY_TYPE;
- /**
- * 农贸市场订单服务
- *
- * 提供订单相关的对外服务接口
- */
- class MexOrderService
- {
- /**
- * 创建卖出订单
- *
- * @param int $userId 用户ID
- * @param int $itemId 商品ID
- * @param int $quantity 数量
- * @param float $price 价格(信任Fund模块的数据处理)
- * @param FUND_CURRENCY_TYPE|null $currencyType 币种类型,默认使用钻石
- * @return array 操作结果
- */
- public static function createSellOrder(int $userId, int $itemId, int $quantity, float $price, ?FUND_CURRENCY_TYPE $currencyType = null): array
- {
- return MexOrderLogic::createSellOrder($userId, $itemId, $quantity, $price, $currencyType);
- }
- /**
- * 创建买入订单
- *
- * @param int $userId 用户ID
- * @param int $itemId 商品ID
- * @param int $quantity 数量
- * @param float $price 价格(信任Fund模块的数据处理)
- * @param FUND_CURRENCY_TYPE|null $currencyType 币种类型,默认使用钻石
- * @return array 操作结果
- */
- public static function createBuyOrder(int $userId, int $itemId, int $quantity, float $price, ?FUND_CURRENCY_TYPE $currencyType = null): array
- {
- return MexOrderLogic::createBuyOrder($userId, $itemId, $quantity, $price, $currencyType);
- }
- /**
- * 取消订单
- *
- * @param int $userId 用户ID
- * @param int $orderId 订单ID
- * @return array 操作结果
- */
- public static function cancelOrder(int $userId, int $orderId): array
- {
- try {
- return \Illuminate\Support\Facades\DB::transaction(function () use ($userId, $orderId) {
- return MexOrderLogic::cancelOrder($userId, $orderId);
- });
- } catch (\Exception $e) {
- return ['success' => false, 'message' => '取消订单失败:' . $e->getMessage()];
- }
- }
- /**
- * 获取用户订单列表
- *
- * @param int $userId 用户ID
- * @param int $page 页码
- * @param int $pageSize 每页数量
- * @return array 订单列表
- */
- public static function getUserOrders(int $userId, int $page = 1, int $pageSize = 20, $itemId = null): array
- {
- return MexOrderLogic::getUserOrders($userId, $page, $pageSize, $itemId);
- }
- /**
- * 获取订单详情
- *
- * @param int $userId 用户ID
- * @param int $orderId 订单ID
- * @return array|null 订单详情
- */
- public static function getOrderDetail(int $userId, int $orderId): ?array
- {
- return MexOrderLogic::getOrderDetail($userId, $orderId);
- }
- /**
- * 获取待撮合的买入订单
- *
- * @param int $itemId 商品ID
- * @param int $limit 限制数量
- * @return array 订单列表
- */
- public static function getPendingBuyOrders(int $itemId, int $limit = 100): array
- {
- return MexOrderLogic::getPendingBuyOrders($itemId, $limit);
- }
- }
|