|
@@ -9,6 +9,7 @@ use App\Http\Requests\API\Requirement\LinkPlanRequest;
|
|
|
use App\Http\Requests\API\Requirement\BatchCreateRequest;
|
|
|
use App\Http\Resources\API\AssetRequirementResource;
|
|
|
use App\Http\Resources\API\RequirementResource;
|
|
|
+use App\Models\Asset;
|
|
|
use App\Models\Enums\RequirementStatus;
|
|
|
use App\Models\Plan;
|
|
|
use App\Models\Requirement;
|
|
@@ -31,6 +32,27 @@ class RequirementController extends Controller
|
|
|
return AssetRequirementResource::collection($requirements);
|
|
|
}
|
|
|
|
|
|
+ public function byAssets(Request $request){
|
|
|
+ $assetIds = $request->get("assets", []);
|
|
|
+ $emptyResponse = $this->success(['data' => []]);
|
|
|
+ if (! $assetIds) {
|
|
|
+ return $emptyResponse;
|
|
|
+ }
|
|
|
+
|
|
|
+ $assets = Asset::query()->where(function ($query) use ($assetIds) {
|
|
|
+ foreach ($assetIds as $index => $assetId) {
|
|
|
+ $where = $index == 0 ? "where" : "orWhere";
|
|
|
+ $query->$where("path", "like", "%,". $assetId . ",%");
|
|
|
+ }
|
|
|
+ })->pluck("id");
|
|
|
+ if ($assets->isEmpty()) {
|
|
|
+ return $emptyResponse;
|
|
|
+ }
|
|
|
+
|
|
|
+ $requirement=Requirement::query()->with('asset')->whereIn('asset_id',$assets->toArray())->get();
|
|
|
+ return AssetRequirementResource::collection($requirement);
|
|
|
+ }
|
|
|
+
|
|
|
// public function byAsset(Request $request,string $assetId)
|
|
|
// {
|
|
|
// $requirements=Requirement::filter($request->all())->with(['createdBy', 'plan','group']) ->where('asset_id', $assetId)->simplePaginate();
|