feat: add article and production modules
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace plugin\produce\app\adminapi\controller;
|
||||
|
||||
use app\adminapi\controller\Crud;
|
||||
use app\adminapi\middleware\OperationMiddleware;
|
||||
use app\adminapi\middleware\PermissionMiddleware;
|
||||
use app\schema\request\BatchDeleteRequest;
|
||||
use app\schema\request\IdRequest;
|
||||
use core\tool\Json;
|
||||
use madong\swagger\annotation\response\PageResponse;
|
||||
use madong\swagger\annotation\response\SimpleResponse;
|
||||
use madong\swagger\attribute\Permission;
|
||||
use OpenApi\Attributes as OA;
|
||||
use plugin\produce\app\service\admin\HardwareFaultDescriptionService;
|
||||
use plugin\produce\app\validate\HardwareFaultDescriptionValidate;
|
||||
use support\annotation\Middleware;
|
||||
use support\Request;
|
||||
use WebmanTech\Swagger\DTO\SchemaConstants;
|
||||
|
||||
#[Middleware(OperationMiddleware::class, PermissionMiddleware::class)]
|
||||
class HardwareFaultDescriptionController extends Crud
|
||||
{
|
||||
protected ?array $selectInputConfig = [
|
||||
'enable_keyword_search' => true,
|
||||
'keyword_fields' => ['description', 'remark'],
|
||||
];
|
||||
|
||||
public function __construct(HardwareFaultDescriptionService $service, HardwareFaultDescriptionValidate $validate)
|
||||
{
|
||||
$this->service = $service;
|
||||
$this->validate = $validate;
|
||||
}
|
||||
|
||||
#[OA\Get(path: '/produce/hardware-fault-description', summary: '硬件故障描述列表', tags: ['produce-hardware-fault-description'])]
|
||||
#[Permission(code: 'produce:hardware-fault-description:list', description: '硬件故障描述列表')]
|
||||
#[PageResponse(schema: [], example: [])]
|
||||
public function index(Request $request): \support\Response { return parent::index($request); }
|
||||
|
||||
#[OA\Post(path: '/produce/hardware-fault-description/import', summary: '导入硬件故障描述', tags: ['produce-hardware-fault-description'])]
|
||||
#[Permission(code: 'produce:hardware-fault-description:import', description: '导入硬件故障描述')]
|
||||
#[SimpleResponse(schema: [], example: [])]
|
||||
public function import(Request $request): \support\Response
|
||||
{
|
||||
try {
|
||||
$file = $request->file('file');
|
||||
if (!$file) {
|
||||
return Json::fail('请选择Excel文件');
|
||||
}
|
||||
if ($file->getSize() > 5 * 1024 * 1024) {
|
||||
return Json::fail('Excel文件不能超过5MB');
|
||||
}
|
||||
$extension = strtolower((string) $file->getUploadExtension());
|
||||
if (!in_array($extension, ['xlsx', 'xls', 'csv'], true)) {
|
||||
return Json::fail('只支持xlsx、xls或csv格式文件');
|
||||
}
|
||||
|
||||
$result = $this->service->importFromExcel($file->getPathname());
|
||||
return Json::success('导入成功', $result);
|
||||
} catch (\Throwable $e) {
|
||||
return Json::fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
#[OA\Get(path: '/produce/hardware-fault-description/{id}', summary: '硬件故障描述详情', tags: ['produce-hardware-fault-description'], x: [SchemaConstants::X_PROPERTY_IN => 'id', SchemaConstants::X_SCHEMA_REQUEST => IdRequest::class])]
|
||||
#[Permission(code: 'produce:hardware-fault-description:read', description: '硬件故障描述详情')]
|
||||
#[SimpleResponse(schema: [], example: [])]
|
||||
public function show(Request $request): \support\Response { return parent::show($request); }
|
||||
|
||||
#[OA\Post(path: '/produce/hardware-fault-description', summary: '创建硬件故障描述', tags: ['produce-hardware-fault-description'])]
|
||||
#[Permission(code: 'produce:hardware-fault-description:create', description: '创建硬件故障描述')]
|
||||
#[SimpleResponse(schema: [], example: [])]
|
||||
public function store(Request $request): \support\Response { return parent::store($request); }
|
||||
|
||||
#[OA\Put(path: '/produce/hardware-fault-description/{id}', summary: '更新硬件故障描述', tags: ['produce-hardware-fault-description'], x: [SchemaConstants::X_PROPERTY_IN => 'id', SchemaConstants::X_SCHEMA_REQUEST => IdRequest::class])]
|
||||
#[Permission(code: 'produce:hardware-fault-description:update', description: '更新硬件故障描述')]
|
||||
#[SimpleResponse(schema: [], example: [])]
|
||||
public function update(Request $request): \support\Response { return parent::update($request); }
|
||||
|
||||
#[OA\Delete(path: '/produce/hardware-fault-description/{id}', summary: '删除硬件故障描述', tags: ['produce-hardware-fault-description'], x: [SchemaConstants::X_PROPERTY_IN => 'id', SchemaConstants::X_SCHEMA_REQUEST => IdRequest::class])]
|
||||
#[Permission(code: 'produce:hardware-fault-description:delete', description: '删除硬件故障描述')]
|
||||
#[SimpleResponse(schema: [], example: [])]
|
||||
public function destroy(Request $request): \support\Response { return parent::destroy($request); }
|
||||
|
||||
#[OA\Delete(path: '/produce/hardware-fault-description', summary: '批量删除硬件故障描述', tags: ['produce-hardware-fault-description'], x: [SchemaConstants::X_SCHEMA_REQUEST => BatchDeleteRequest::class])]
|
||||
#[Permission(code: 'produce:hardware-fault-description:delete', description: '批量删除硬件故障描述')]
|
||||
#[SimpleResponse(schema: [], example: [])]
|
||||
public function batchDelete(Request $request): \support\Response { return parent::destroy($request); }
|
||||
}
|
||||
Reference in New Issue
Block a user