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\Http\{Request, Response};
|
||||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
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\Enums\CheckStatus;
|
||||||
use App\Models\{WorkflowLog, WorkflowCheck};
|
use App\Models\WorkflowCheck;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
use App\Admin\Services\WorkFlowService;
|
use App\Admin\Services\WorkFlowService;
|
||||||
use App\Exceptions\RuntimeException;
|
use App\Exceptions\RuntimeException;
|
||||||
|
use App\Http\Resources\TaskResource;
|
||||||
|
use App\Models\TaskHygiene;
|
||||||
|
|
||||||
class WorkflowController extends Controller
|
class WorkflowController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -21,7 +23,7 @@ class WorkflowController extends Controller
|
||||||
]);
|
]);
|
||||||
$subjectType = $request->input('subject_type');
|
$subjectType = $request->input('subject_type');
|
||||||
$model = Relation::getMorphedModel($subjectType);
|
$model = Relation::getMorphedModel($subjectType);
|
||||||
$resource = $this->mapResource($subjectType);
|
$resource = $this->mapResource($model);
|
||||||
|
|
||||||
$user = $request->user();
|
$user = $request->user();
|
||||||
|
|
||||||
|
|
@ -38,6 +40,15 @@ class WorkflowController extends Controller
|
||||||
|
|
||||||
$list = $query->paginate($request->input('per_page'));
|
$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);
|
return $resource::collection($list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -48,7 +59,7 @@ class WorkflowController extends Controller
|
||||||
]);
|
]);
|
||||||
$subjectType = $request->input('subject_type');
|
$subjectType = $request->input('subject_type');
|
||||||
$model = Relation::getMorphedModel($subjectType);
|
$model = Relation::getMorphedModel($subjectType);
|
||||||
$resource = $this->mapResource($subjectType);
|
$resource = $this->mapResource($model);
|
||||||
|
|
||||||
$include = ['workflow'];
|
$include = ['workflow'];
|
||||||
if ($request->input('include')) {
|
if ($request->input('include')) {
|
||||||
|
|
@ -120,21 +131,17 @@ class WorkflowController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function mapResource($key)
|
protected function mapResource(string $model)
|
||||||
{
|
{
|
||||||
$map = [
|
$class = match ($model) {
|
||||||
'reimbursements' => ReimbursementResource::class,
|
TaskHygiene::class => TaskResource::class,
|
||||||
'employee_sign_repairs' => EmployeeSignRepairResource::class,
|
default => 'App\\Http\\Resources\\'.class_basename($model).'Resource',
|
||||||
'holiday_applies' => HolidayApplyResource::class,
|
};
|
||||||
'overtime_applies' => OvertimeApplyResource::class,
|
|
||||||
'agreements' => AgreementResource::class,
|
if (! class_exists($class)) {
|
||||||
'offical_business' => OfficalBusinessResource::class,
|
throw new RuntimeException('未知的 subject_type');
|
||||||
'employee_promotions' => EmployeePromotionResource::class,
|
|
||||||
];
|
|
||||||
$resource = data_get($map, $key);
|
|
||||||
if (!$resource) {
|
|
||||||
throw new RuntimeException('未知的 subject_type resource: ' . $key);
|
|
||||||
}
|
}
|
||||||
return $resource;
|
|
||||||
|
return $class;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue