Files
datahub/backend/app/Controller/Api/V1/RawRefundItemController.php
2026-03-13 14:07:10 +08:00

151 lines
8.6 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
declare(strict_types=1);
namespace App\Controller\Api\V1;
use App\Middleware\AuthMiddleware;
use App\Middleware\PermissionMiddleware;
use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\Middleware;
use Hyperf\HttpServer\Annotation\RequestMapping;
use OpenApi\Attributes as OA;
use Psr\Http\Message\ResponseInterface;
/**
* 退款项管理接口(Raw Category
*
* 返回关键标识 + raw,供开发/调试查看原始平台数据。
* 列表不返回 raw 字段(单条 JSONB 可达数十 KB)。
* 详情返回完整 raw。
*/
#[OA\Tag(name: 'Refund Items (Raw)', description: '退款项原始数据')]
#[Controller(prefix: "/api/v1/raw/refund-items")]
#[Middleware(AuthMiddleware::class)]
#[Middleware(PermissionMiddleware::class)]
class RawRefundItemController extends RefundItemController
{
protected function getListFields(): array
{
return [
'id', 'platform_refund_id', 'platform_parent_refund_id',
'platform_order_id', 'store_id', 'company_id', 'platform_id',
'refund_status_id', 'created_date', 'updated_at',
];
}
protected function getDetailFields(): array
{
return [
'id', 'platform_refund_id', 'platform_parent_refund_id',
'platform_order_id', 'store_id', 'company_id', 'platform_id',
'refund_status_id', 'raw', 'ext', 'created_date',
];
}
/**
* 退款项列表(Raw
*/
#[OA\Get(
path: '/raw/refund-items',
summary: '退款项列表(Raw',
description: '获取退款项原始数据列表。返回关键标识,不含 raw 字段本身(太大)。筛选参数与 Normal 接口一致。',
security: [['bearerAuth' => []]],
tags: ['Refund Items (Raw)'],
parameters: [
new OA\Parameter(name: 'page', in: 'query', required: false, schema: new OA\Schema(type: 'integer', default: 1)),
new OA\Parameter(name: 'per_page', in: 'query', required: false, schema: new OA\Schema(type: 'integer', default: 15, maximum: 100)),
new OA\Parameter(name: 'company_id', in: 'query', required: false, description: '公司 ID 精确筛选', schema: new OA\Schema(type: 'integer')),
new OA\Parameter(name: 'platform_id', in: 'query', required: false, description: '平台 ID 精确筛选', schema: new OA\Schema(type: 'integer')),
new OA\Parameter(name: 'store_id', in: 'query', required: false, description: '店铺 ID 精确筛选', schema: new OA\Schema(type: 'integer')),
new OA\Parameter(name: 'refund_id', in: 'query', required: false, description: '父退款 ID 精确筛选', schema: new OA\Schema(type: 'integer')),
new OA\Parameter(name: 'refund_status_id', in: 'query', required: false, description: '退款状态 ID 精确筛选', schema: new OA\Schema(type: 'integer')),
new OA\Parameter(name: 'refund_type_id', in: 'query', required: false, description: '退款类型 ID 精确筛选', schema: new OA\Schema(type: 'integer')),
new OA\Parameter(name: 'platform_refund_id', in: 'query', required: false, description: '平台退款子项 ID 精确搜索', schema: new OA\Schema(type: 'string')),
new OA\Parameter(name: 'platform_order_id', in: 'query', required: false, description: '关联平台订单 ID 筛选', schema: new OA\Schema(type: 'string')),
new OA\Parameter(name: 'platform_product_id', in: 'query', required: false, description: '平台商品 ID 精确筛选', schema: new OA\Schema(type: 'string')),
new OA\Parameter(name: 'created_date_from', in: 'query', required: false, description: '创建时间起始(含)', schema: new OA\Schema(type: 'string', format: 'date')),
new OA\Parameter(name: 'created_date_to', in: 'query', required: false, description: '创建时间截止(含)', schema: new OA\Schema(type: 'string', format: 'date')),
],
responses: [
new OA\Response(
response: 200,
description: '获取成功',
content: new OA\JsonContent(properties: [
new OA\Property(property: 'code', type: 'integer', example: 0),
new OA\Property(property: 'message', type: 'string', example: '获取成功'),
new OA\Property(property: 'data', properties: [
new OA\Property(property: 'items', type: 'array', items: new OA\Items(properties: [
new OA\Property(property: 'id', type: 'integer'),
new OA\Property(property: 'platform_refund_id', type: 'string'),
new OA\Property(property: 'platform_parent_refund_id', type: 'string'),
new OA\Property(property: 'platform_order_id', type: 'string'),
new OA\Property(property: 'store_id', type: 'integer'),
new OA\Property(property: 'company_id', type: 'integer'),
new OA\Property(property: 'platform_id', type: 'integer'),
new OA\Property(property: 'refund_status_id', type: 'integer'),
new OA\Property(property: 'created_date', type: 'string', format: 'date-time'),
new OA\Property(property: 'updated_at', type: 'string', format: 'date-time'),
], type: 'object')),
new OA\Property(property: 'total', type: 'integer'),
new OA\Property(property: 'page', type: 'integer'),
new OA\Property(property: 'per_page', type: 'integer'),
], type: 'object'),
])
),
new OA\Response(response: 401, description: '未认证', content: new OA\JsonContent(ref: '#/components/schemas/ErrorResponse')),
new OA\Response(response: 403, description: '无权限', content: new OA\JsonContent(ref: '#/components/schemas/ErrorResponse')),
]
)]
#[RequestMapping(path: "", methods: "GET")]
public function index(): ResponseInterface|array
{
return parent::index();
}
/**
* 退款项详情(Raw
*/
#[OA\Get(
path: '/raw/refund-items/{id}',
summary: '退款项详情(Raw',
description: '获取退款项原始数据详情。返回关键标识 + 完整 raw + ext。',
security: [['bearerAuth' => []]],
tags: ['Refund Items (Raw)'],
parameters: [
new OA\Parameter(name: 'id', in: 'path', required: true, description: '退款项 ID', schema: new OA\Schema(type: 'integer')),
],
responses: [
new OA\Response(
response: 200,
description: '获取成功',
content: new OA\JsonContent(properties: [
new OA\Property(property: 'code', type: 'integer', example: 0),
new OA\Property(property: 'message', type: 'string', example: '获取成功'),
new OA\Property(property: 'data', properties: [
new OA\Property(property: 'id', type: 'integer'),
new OA\Property(property: 'platform_refund_id', type: 'string'),
new OA\Property(property: 'platform_parent_refund_id', type: 'string'),
new OA\Property(property: 'platform_order_id', type: 'string'),
new OA\Property(property: 'store_id', type: 'integer'),
new OA\Property(property: 'company_id', type: 'integer'),
new OA\Property(property: 'platform_id', type: 'integer'),
new OA\Property(property: 'refund_status_id', type: 'integer'),
new OA\Property(property: 'raw', type: 'object', description: '平台原始子项数据'),
new OA\Property(property: 'ext', type: 'object', nullable: true),
new OA\Property(property: 'created_date', type: 'string', format: 'date-time'),
], type: 'object'),
])
),
new OA\Response(response: 401, description: '未认证', content: new OA\JsonContent(ref: '#/components/schemas/ErrorResponse')),
new OA\Response(response: 403, description: '无权限', content: new OA\JsonContent(ref: '#/components/schemas/ErrorResponse')),
new OA\Response(response: 404, description: '数据不存在', content: new OA\JsonContent(ref: '#/components/schemas/ErrorResponse')),
]
)]
#[RequestMapping(path: "{id}", methods: "GET")]
public function show(int $id): ResponseInterface|array
{
return parent::show($id);
}
}