generated from liutk/owl-admin-base
Update
parent
5cb9045cf1
commit
0c9f3057d4
|
|
@ -4,13 +4,15 @@ namespace App\Http\Controllers\Api;
|
|||
|
||||
use Illuminate\Http\{Request, Response};
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use App\Http\Resources\{ReimbursementResource, WorkflowLogResource, OfficalBusinessResource, EmployeeSignRepairResource, HolidayApplyResource, OvertimeApplyResource, AgreementResource, EmployeePromotionResource};
|
||||
use App\Http\Resources\WorkflowLogResource;
|
||||
use App\Enums\CheckStatus;
|
||||
use App\Models\{WorkflowLog, WorkflowCheck};
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Validation\Rule;
|
||||
use App\Admin\Services\WorkFlowService;
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Resources\TaskResource;
|
||||
use App\Models\TaskHygiene;
|
||||
|
||||
class WorkflowController extends Controller
|
||||
{
|
||||
|
|
@ -21,7 +23,7 @@ class WorkflowController extends Controller
|
|||
]);
|
||||
$subjectType = $request->input('subject_type');
|
||||
$model = Relation::getMorphedModel($subjectType);
|
||||
$resource = $this->mapResource($subjectType);
|
||||
$resource = $this->mapResource($model);
|
||||
|
||||
$user = $request->user();
|
||||
|
||||
|
|
@ -38,6 +40,15 @@ class WorkflowController extends Controller
|
|||
|
||||
$list = $query->paginate($request->input('per_page'));
|
||||
|
||||
switch ($model) {
|
||||
case TaskHygiene::class:
|
||||
$list->loadMissing(['task', 'store']);
|
||||
$list->through(function (TaskHygiene $item) {
|
||||
return tap($item->task)->setRelation('taskable', $item->unsetRelation('task'));
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
return $resource::collection($list);
|
||||
}
|
||||
|
||||
|
|
@ -48,7 +59,7 @@ class WorkflowController extends Controller
|
|||
]);
|
||||
$subjectType = $request->input('subject_type');
|
||||
$model = Relation::getMorphedModel($subjectType);
|
||||
$resource = $this->mapResource($subjectType);
|
||||
$resource = $this->mapResource($model);
|
||||
|
||||
$include = ['workflow'];
|
||||
if ($request->input('include')) {
|
||||
|
|
@ -120,21 +131,17 @@ class WorkflowController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
protected function mapResource($key)
|
||||
protected function mapResource(string $model)
|
||||
{
|
||||
$map = [
|
||||
'reimbursements' => ReimbursementResource::class,
|
||||
'employee_sign_repairs' => EmployeeSignRepairResource::class,
|
||||
'holiday_applies' => HolidayApplyResource::class,
|
||||
'overtime_applies' => OvertimeApplyResource::class,
|
||||
'agreements' => AgreementResource::class,
|
||||
'offical_business' => OfficalBusinessResource::class,
|
||||
'employee_promotions' => EmployeePromotionResource::class,
|
||||
];
|
||||
$resource = data_get($map, $key);
|
||||
if (!$resource) {
|
||||
throw new RuntimeException('未知的 subject_type resource: ' . $key);
|
||||
$class = match ($model) {
|
||||
TaskHygiene::class => TaskResource::class,
|
||||
default => 'App\\Http\\Resources\\'.class_basename($model).'Resource',
|
||||
};
|
||||
|
||||
if (! class_exists($class)) {
|
||||
throw new RuntimeException('未知的 subject_type');
|
||||
}
|
||||
return $resource;
|
||||
|
||||
return $class;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue