This commit is contained in:
wushumin
2026-05-11 15:28:27 +08:00
commit 9aac78b8da
289 changed files with 67193 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
<?php
namespace app\controller\open;
use app\support\EnterpriseOpenApiAuthService;
use app\support\EnterpriseOrderService;
use support\Request;
class OrdersController
{
public function create(Request $request)
{
try {
$auth = (new EnterpriseOpenApiAuthService())->authenticate($request);
} catch (\Throwable $e) {
return api_error($e->getMessage(), 401);
}
$payload = json_decode($request->rawBody(), true);
if (!is_array($payload)) {
return api_error('请求体必须是合法 JSON 对象', 422);
}
try {
$result = (new EnterpriseOrderService())->createOrder($auth['customer'], $payload, $request);
} catch (\InvalidArgumentException $e) {
return api_error($e->getMessage(), 422);
} catch (\RuntimeException $e) {
return api_error($e->getMessage(), 409);
} catch (\Throwable $e) {
return api_error('订单创建失败', 500, [
'detail' => $e->getMessage(),
]);
}
return api_success($result, !empty($result['idempotent']) ? '订单已存在' : '订单已创建');
}
public function detail(Request $request)
{
try {
$auth = (new EnterpriseOpenApiAuthService())->authenticate($request);
} catch (\Throwable $e) {
return api_error($e->getMessage(), 401);
}
$externalOrderNo = trim((string)($request->route?->param('external_order_no', '') ?? ''));
if ($externalOrderNo === '') {
$externalOrderNo = trim((string)$request->input('external_order_no', ''));
}
$orderNo = trim((string)$request->input('order_no', ''));
try {
$order = (new EnterpriseOrderService())->findOrder($auth['customer'], $externalOrderNo, $orderNo);
} catch (\InvalidArgumentException $e) {
return api_error($e->getMessage(), 422);
} catch (\RuntimeException $e) {
return api_error($e->getMessage(), 404);
} catch (\Throwable $e) {
return api_error('订单查询失败', 500, [
'detail' => $e->getMessage(),
]);
}
return api_success([
'order' => $order,
]);
}
}