61 lines
2.0 KiB
PHP
61 lines
2.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace plugin\produce\app\adminapi\controller;
|
|
|
|
use app\adminapi\middleware\OperationMiddleware;
|
|
use app\adminapi\middleware\PermissionMiddleware;
|
|
use core\tool\Json;
|
|
use madong\swagger\annotation\response\DataResponse;
|
|
use madong\swagger\annotation\response\SimpleResponse;
|
|
use madong\swagger\attribute\Permission;
|
|
use OpenApi\Attributes as OA;
|
|
use plugin\produce\app\service\admin\ProduceConfigService;
|
|
use support\annotation\Middleware;
|
|
use support\Request;
|
|
use support\Response;
|
|
|
|
#[Middleware(OperationMiddleware::class, PermissionMiddleware::class)]
|
|
class ProduceConfigController
|
|
{
|
|
public function __construct(protected ProduceConfigService $service)
|
|
{
|
|
}
|
|
|
|
#[OA\Get(path: '/produce/config/info', summary: '获取生产配置', tags: ['produce-config'])]
|
|
#[DataResponse(description: '获取成功')]
|
|
#[Permission(code: 'produce:config:read', description: '查看生产配置')]
|
|
public function info(Request $request): Response
|
|
{
|
|
$groupCode = (string) $request->input('group_code', '');
|
|
if ($groupCode === '') {
|
|
return Json::fail('配置组代码不能为空');
|
|
}
|
|
|
|
return Json::success('获取成功', $this->service->getConfigByGroup($groupCode));
|
|
}
|
|
|
|
#[OA\Post(path: '/produce/config/save', summary: '保存生产配置', tags: ['produce-config'])]
|
|
#[SimpleResponse(description: '保存成功')]
|
|
#[Permission(code: 'produce:config:update', description: '保存生产配置')]
|
|
public function save(Request $request): Response
|
|
{
|
|
$payload = $request->post();
|
|
$groupCode = (string) ($payload['group_code'] ?? '');
|
|
$configs = $payload['configs'] ?? [];
|
|
|
|
if ($groupCode === '') {
|
|
return Json::fail('配置组代码不能为空');
|
|
}
|
|
|
|
if (!is_array($configs) || $configs === []) {
|
|
return Json::fail('配置数据不能为空');
|
|
}
|
|
|
|
$this->service->saveConfig($groupCode, $configs);
|
|
|
|
return Json::success('保存成功');
|
|
}
|
|
}
|