Browse Source

teamMember进行名字筛选,项目详情返回数据调整

kely 9 months ago
parent
commit
cb21578ad3

+ 12 - 2
app/Http/Controllers/API/TeamMemberController.php

@@ -16,11 +16,21 @@ class TeamMemberController extends Controller
     /**
      * Display a listing of the resource.
      */
-    public function members(string $projectId)
+    public function members(Request $request,string $projectId)
     {
         $project = Project::query()->findOrFail($projectId);
+        // 假设你想根据用户的 name 字段进行筛选
+        $name = $request->get('name');
 
-        return TeamMemberResource::collection($project->teamMembers);
+        $project->load(['teamMembers.user' => function ($query) use ($name) {
+            if ($name) {
+                $query->where('name', 'like', "%{$name}%");
+            }
+        }]);
+
+        return TeamMemberResource::collection($project->teamMembers->filter(function ($teamMember) {
+            return $teamMember->user !== null;
+        }));
     }
 
     /**

+ 5 - 6
app/Http/Resources/API/ProjectDetailResource.php

@@ -14,14 +14,14 @@ class ProjectDetailResource extends JsonResource
      */
     public function toArray(Request $request): array
     {
-        $assetIds = [];
         $assets = [];
         foreach ($this->assets as $asset){
-            $assets[] = new AssetResource($asset);
+            $assets[] = new SimpleAssetResource($asset);
             $assetIds[] = $asset->id;
         }
-        $plansIds = [];
+        $plans = [];
         foreach ($this->plans as $plan){
+            $plans[] = new SimplePlanResource($plan);
             $plansIds[] = $plan['id'];
         }
         return [
@@ -37,9 +37,8 @@ class ProjectDetailResource extends JsonResource
             'longitude' => $this->longitude,
             'type' => $this->type,
             'acl' => $this->acl,
-            'assets_detail' =>$assets,
-            'assets' =>$assetIds,
-            'plans' =>$plansIds,
+            'assets' =>$assets,
+            'plans' =>$plans,
             //'whitelist' => $this->whitelist,
             'description' => $this->description?(new \App\Services\File\ImageUrlService)->getImageUrl($this->description):null,
             'requirement_total'=>$this->requirements->count(),