|
@@ -22,6 +22,7 @@ use App\Http\Resources\API\RequirementGroupResource;
|
|
|
use App\Http\Resources\API\SimplePlanResource;
|
|
|
use App\Http\Resources\API\ProjectRequirementResource;
|
|
|
use App\Http\Resources\API\ProjectResource;
|
|
|
+use App\Models\Asset;
|
|
|
use App\Models\Enums\ActionObjectType;
|
|
|
use App\Models\Enums\FileObjectType;
|
|
|
use App\Models\Enums\ObjectAction;
|
|
@@ -63,31 +64,50 @@ class ProjectController extends Controller
|
|
|
return ProjectResource::collection($projectAsset);
|
|
|
}
|
|
|
|
|
|
- public function treeIndex(string $id){
|
|
|
+ public function projectAssetTree(string $id){
|
|
|
$project = Project::allowed($id)->findOrFail($id);
|
|
|
|
|
|
//获取项目所关联的需求所在需求分组的id
|
|
|
- $requirementsGroupIds=$project->requirementsGroup ->pluck('id')->unique()->toArray();
|
|
|
-
|
|
|
- // 加载项目中的所有Asset及其关联的RequirementGroup
|
|
|
- $assetsWithRequirementGroups = $project->assets()->with('requirementGroups')->get();
|
|
|
-
|
|
|
- $filteredAssets = $assetsWithRequirementGroups->map(function ($asset) use ($requirementsGroupIds) {
|
|
|
- if (empty($requirementsGroupIds)) {
|
|
|
- // 如果$requirementsGroupIds为空,则清空requirementGroups集合
|
|
|
- $asset->setRelation('requirementGroups', collect());
|
|
|
- } else {
|
|
|
- // 否则,过滤requirementGroups集合
|
|
|
- $asset->setRelation('requirementGroups', $asset->requirementGroups->filter(function ($group) use ($requirementsGroupIds) {
|
|
|
- return in_array($group->id, $requirementsGroupIds);
|
|
|
- }));
|
|
|
- }
|
|
|
-
|
|
|
- return $asset;
|
|
|
+// $requirementsGroupIds=$project->requirementsGroup ->pluck('id')->unique()->toArray();
|
|
|
+
|
|
|
+// // 加载项目中的所有Asset及其关联的RequirementGroup
|
|
|
+// $assetsWithRequirementGroups = $project->assets()->with('requirementGroups')->get();
|
|
|
+//
|
|
|
+// $filteredAssets = $assetsWithRequirementGroups->map(function ($asset) use ($requirementsGroupIds) {
|
|
|
+// if (empty($requirementsGroupIds)) {
|
|
|
+// // 如果$requirementsGroupIds为空,则清空requirementGroups集合
|
|
|
+// $asset->setRelation('requirementGroups', collect());
|
|
|
+// } else {
|
|
|
+// // 否则,过滤requirementGroups集合
|
|
|
+// $asset->setRelation('requirementGroups', $asset->requirementGroups->filter(function ($group) use ($requirementsGroupIds) {
|
|
|
+// return in_array($group->id, $requirementsGroupIds);
|
|
|
+// }));
|
|
|
+// }
|
|
|
+//
|
|
|
+// return $asset;
|
|
|
+// });
|
|
|
+
|
|
|
+
|
|
|
+// return AssetRequirementGroupTreeResource::collection($filteredAssets);
|
|
|
+ $projectLinkAssets = $project->assets()->select('assets.id', 'assets.name', 'assets.parent_id')->get();
|
|
|
+ $projectLinkAssets->each(function ($assets){
|
|
|
+ $assets->type='asset';
|
|
|
+ $assets->uniId=$assets->type.'_'.$assets->id;
|
|
|
});
|
|
|
+ return $this->success([
|
|
|
+ 'data' => make_tree($projectLinkAssets->toArray())
|
|
|
+ ]);
|
|
|
|
|
|
|
|
|
- return AssetRequirementGroupTreeResource::collection($filteredAssets);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function projectRequirementGroupsTree(string $id){
|
|
|
+ $projectRequirementsGroup=Asset::query()->findOrFail($id)->projectRequirementsGroup()->select('requirement_groups.id', 'requirement_groups.name','requirement_groups.asset_id')->get();
|
|
|
+ $projectRequirementsGroup->each(function ($requirementsgroups){
|
|
|
+ $requirementsgroups->type='requirementsgroups';
|
|
|
+ $requirementsgroups->uniId=$requirementsgroups->type.'_'.$requirementsgroups->id;
|
|
|
+ });
|
|
|
+ return $projectRequirementsGroup;
|
|
|
|
|
|
}
|
|
|
|