Files
x-server-mobile/backend/app/Controller/ApprovalController.php
T

100 lines
2.5 KiB
PHP
Raw Normal View History

<?php
namespace App\Controller;
use App\Service\ApprovalService;
use Webman\Http\Request;
use Webman\Http\Response;
class ApprovalController extends BaseController
{
private ApprovalService $service;
public function __construct()
{
$this->service = new ApprovalService();
}
/**
* 获取审批列表
*/
public function list(Request $request): Response
{
$userId = $this->getUserId($request);
$type = $request->get('type', 'my');
$page = (int) $request->get('page', 1);
$pageSize = (int) $request->get('page_size', 20);
$result = $this->service->getList($userId, $type, $page, $pageSize);
return $this->success($result);
}
/**
* 获取审批详情
*/
public function detail(Request $request): Response
{
$id = (int) $request->route('id');
$approval = \App\Model\ApprovalOrder::with(['flow', 'applicant', 'records'])
->findOrFail($id);
return $this->success($approval);
}
/**
* 审批通过
*/
public function approve(Request $request): Response
{
$userId = $this->getUserId($request);
$id = (int) $request->route('id');
$data = $request->post();
$data = $data ?? [];
$comment = $data['comment'] ?? null;
try {
$approval = $this->service->approve($id, $userId, $comment);
return $this->success($approval, '已通过');
} catch (\Exception $e) {
return $this->error($e->getMessage());
}
}
/**
* 审批拒绝
*/
public function reject(Request $request): Response
{
$userId = $this->getUserId($request);
$id = (int) $request->route('id');
$data = $request->post();
$data = $data ?? [];
$comment = $data['comment'] ?? null;
try {
$approval = $this->service->reject($id, $userId, $comment);
return $this->success($approval, '已拒绝');
} catch (\Exception $e) {
return $this->error($e->getMessage());
}
}
/**
* 撤销申请
*/
public function cancel(Request $request): Response
{
$userId = $this->getUserId($request);
$id = (int) $request->route('id');
try {
$approval = $this->service->cancel($id, $userId);
return $this->success($approval, '已撤销');
} catch (\Exception $e) {
return $this->error($e->getMessage());
}
}
}