49 lines
1.9 KiB
PHP
49 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\SystemSettings;
|
|
|
|
use App\Support\CourierOnboardingReviewers;
|
|
use App\Utilities\SystemAccess;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
|
|
class WorkflowReviewers extends Controller
|
|
{
|
|
public function __construct(private readonly CourierOnboardingReviewers $reviewers)
|
|
{
|
|
$this->middleware(function ($request, $next) {
|
|
abort_unless(SystemAccess::canOpenSettings(), 403);
|
|
return $next($request);
|
|
});
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
return view('system_settings.workflow-reviewers.index', [
|
|
'reviewers' => $this->reviewers->settings(), 'history' => $this->reviewers->history(),
|
|
]);
|
|
}
|
|
|
|
public function search(Request $request)
|
|
{
|
|
$data = $request->validate(['q' => ['required', 'string', 'min:1', 'max:50']]);
|
|
try {
|
|
return response()->json(['people' => $this->reviewers->search(trim($data['q']))])->header('Cache-Control', 'no-store');
|
|
} catch (\Throwable $e) {
|
|
return response()->json(['message' => '钉钉花名册暂时无法查询,请稍后重试。'], 503)->header('Cache-Control', 'no-store');
|
|
}
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
$data = $request->validate([
|
|
'first' => ['required', 'array', 'min:1', 'max:10'],
|
|
'first.*' => ['required', 'string', 'max:100', 'distinct'],
|
|
'final' => ['required', 'array', 'min:1', 'max:10'],
|
|
'final.*' => ['required', 'string', 'max:100', 'distinct'],
|
|
], ['first.required' => '请至少选择一名初审人员。', 'final.required' => '请至少选择一名复审人员。']);
|
|
$this->reviewers->save($data, user());
|
|
return redirect()->route('system-settings.workflow-reviewers.index')->with('success', '审核人员已保存,立即对待审核申请生效。');
|
|
}
|
|
}
|