Prechádzať zdrojové kódy

各类总览详情信息调整,添加projet4s临时接口

kely 6 mesiacov pred
rodič
commit
4ccc9866e9

+ 3 - 0
app/Http/Controllers/API/ProjectController.php

@@ -651,4 +651,7 @@ class ProjectController extends Controller
             'data' => $projects
         ]);
     }
+
+    public function project4s(){
+    }
 }

+ 21 - 1
app/Http/Resources/API/AssetReportResource.php

@@ -11,6 +11,7 @@ namespace App\Http\Resources\API;
 use App\Models\Asset;
 use App\Models\AssetGroup;
 use App\Models\Requirement;
+use App\Models\User;
 use Carbon\Carbon;
 use Illuminate\Http\Request;
 use Illuminate\Http\Resources\Json\JsonResource;
@@ -22,6 +23,8 @@ class AssetReportResource  extends JsonResource
     public function toArray(Request $request): array
     {
         $now = Carbon::now();
+        $whitelist=make_array_list($this->whitelist??'');
+        $whitelistName=User::query()->whereIn('id',$whitelist)->get();
         return[
             'requirement_total' => Requirement::query()->whereIn('asset_id',$this->child_id)->count(),
             'plan_total' => $this->plans()->count(),
@@ -47,8 +50,25 @@ class AssetReportResource  extends JsonResource
             'acl' => $this->acl,
             'latitude' => $this->latitude,
             'longitude' => $this->longitude,
-            'parent_id' => new AssetResource($this->parent),
+            'whitelist'=>$whitelist,
+            'whitelist_name' => UserProfileResource::collection($whitelistName),
+            'parent_asset' => new AssetResource($this->parent),
             'created_at' => (string)$this->created_at,
+            'equity_interest'=>$this->equity_interest,
+            'developer' =>$this->developer,
+            'date_completed' =>$this->date_completed,
+            'total_floor_area' => $this->total_floor_area,
+            'contact_person'=>$this->contact_person,
+            'contact_phone'=>$this->contact_phone,
+            'contact_email'=>$this->contact_email,
+            'property'=> $this->property,
+            'building_type_description'=>$this->building_type_description,
+            'children' =>  $this->when($this->children->isNotEmpty(), function () {
+                return $this->children->map(function ($child) {
+                    return new AssetResource($child, $this->level);
+                })->all();
+            }),
+            'area_unit'=>$this->area_unit,
         ];
     }
 }

+ 9 - 3
app/Http/Resources/API/ContainerDetailResource.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Resources\API;
 
+use App\Models\User;
 use Illuminate\Http\Request;
 use Illuminate\Http\Resources\Json\JsonResource;
 
@@ -15,20 +16,25 @@ class ContainerDetailResource extends JsonResource
     public function toArray(Request $request): array
     {
         $content = $this->content($request->get("version", 0))->first();
-
+        $whitelist=make_array_list($this->whitelist??'');
+        $whitelistName=User::query()->whereIn('id',$whitelist)->get();
+        $mailto=$this->mailto;
+        $mailtoName=User::query()->whereIn('id',$mailto)->get();
         return [
             'id' => $this->id,
             'name' => $content?->name,
             'library' => new LibrarySimpleResource($this->library),
             'naming_rule' => new NamingRuleSimpleResource($this->namingRule),
             'naming_rules' => $this->naming_rules,
-            "mailto"  => $this->mailto,
+            "mailto"  => $mailto,
+            "mailto_name" =>UserProfileResource::collection($mailtoName);
             "email_subject"  => $this->email_subject,
             "doc_stage"  => $this->doc_stage,
             "doc_type"  => $this->doc_type,
             "description"  => $content?->description ? (new \App\Services\File\ImageUrlService)->getImageUrl($content?->description) : "",
             "acl"  => $this->acl,
-            "whitelist"  => make_array_list($this->whitelist??''),
+            "whitelist"  =>$whitelist,
+            "whitelist_name"=>UserProfileResource::collection($whitelistName),
             "version" => $this->version,
             "created_at"  => (string)$this->created_at,
             "created_by" => new UserProfileResource($this->createdBy),

+ 17 - 13
app/Http/Resources/API/ProjectDetailResource.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Resources\API;
 
+use App\Models\User;
 use Illuminate\Http\Request;
 use Illuminate\Http\Resources\Json\JsonResource;
 
@@ -14,16 +15,18 @@ class ProjectDetailResource extends JsonResource
      */
     public function toArray(Request $request): array
     {
-        $assets = [];
-        foreach ($this->assets as $asset){
-            $assets[] = new SimpleAssetResource($asset);
-            $assetIds[] = $asset->id;
-        }
-        $plans = [];
-        foreach ($this->plans as $plan){
-            $plans[] = new SimplePlanResource($plan);
-            $plansIds[] = $plan['id'];
-        }
+//        $assets = [];
+//        foreach ($this->assets as $asset){
+//            $assets[] = new SimpleAssetResource($asset);
+//            $assetIds[] = $asset->id;
+//        }
+//        $plans = [];
+//        foreach ($this->plans as $plan){
+//            $plans[] = new SimplePlanResource($plan);
+//            $plansIds[] = $plan['id'];
+//        }
+        $whitelist=make_array_list($this->whitelist??'');
+        $whitelistName=User::query()->whereIn('id',$whitelist)->get();
         return [
             'id' => $this->id,
             'name' => $this->name,
@@ -37,10 +40,11 @@ class ProjectDetailResource extends JsonResource
             'longitude' => $this->longitude,
             'type' => $this->type,
             'acl' => $this->acl,
-            'assets' =>$assets,
-            'plans' =>$plans,
+            'assets' =>SimpleAssetResource::collection($this->assets),
+            'plans' =>SimplePlanResource::collection($this->plans),
             'approval_status'=>$this->approval_status,
-            "whitelist"  => make_array_list($this->whitelist??''),
+            "whitelist"  => $whitelist,
+            "whitelist_name"=>$whitelistName,
             'description' => $this->description?(new \App\Services\File\ImageUrlService)->getImageUrl($this->description):null,
             'requirement_total'=>$this->requirements->count(),
             'task_total'=>$this->tasks->count(),

+ 5 - 1
app/Http/Resources/API/RequirementResource.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Resources\API;
 
+use App\Models\User;
 use Illuminate\Http\Request;
 use Illuminate\Http\Resources\Json\JsonResource;
 
@@ -14,6 +15,8 @@ class RequirementResource extends JsonResource
      */
     public function toArray(Request $request): array
     {
+        $mailto=$this->mailto;
+        $mailtoName=User::query()->whereIn('id',$mailto)->get();
         return [
             'title' => $this->title,
             'status' => $this->status,
@@ -29,7 +32,8 @@ class RequirementResource extends JsonResource
             'note' => $this->note,
             'description' => $this->description?(new \App\Services\File\ImageUrlService)->getImageUrl($this->description):null,
             'acceptance' => $this->acceptance,
-            'mailto' => $this->mailto,
+            'mailto' => $mailto,
+            'mailto_name'=>UserProfileResource::collection($mailtoName),
             'created_by' => new UserProfileResource($this->createdBy),
             'created_at' => (string)$this->created_at,
             'updated_at' => (string)$this->updated_at,

+ 8 - 2
app/Http/Resources/API/TaskDetailResource.php

@@ -14,6 +14,10 @@ class TaskDetailResource extends JsonResource
      */
     public function toArray(Request $request): array
     {
+        $whitelist=make_array_list($this->whitelist??'');
+        $whitelistName=User::query()->whereIn('id',$whitelist)->get();
+        $mailto=$this->mailto;
+        $mailtoName=User::query()->whereIn('id',$mailto)->get();
         return [
             "id" => $this->id,
             "name" => $this->name,
@@ -35,10 +39,12 @@ class TaskDetailResource extends JsonResource
             'description' => $this->description ? (new \App\Services\File\ImageUrlService)->getImageUrl($this->description) : null,
             "begin" => $this->begin,
             "end" => $this->end,
-            "mailto"  => $this->mailto,
+            "mailto"  => $mailto,
+            "mailto_name" =>UserProfileResource::collection($mailtoName),
             "email_subject"  => $this->email_subject,
             "acl"  => $this->acl,
-            "whitelist"  => make_array_list($this->whitelist??''),
+            "whitelist"  => $whitelist,
+            "whitelist_name"=>UserProfileResource::collection($whitelistName),
             "closed_by" => new UserProfileResource($this->closedBy),
             "closed_at" => $this->closed_at,
             "canceled_by" => new UserProfileResource($this->canceledBy),

+ 2 - 0
routes/api.php

@@ -177,6 +177,8 @@ Route::middleware(['auth:sanctum','account.limit'])->group(function () {
             ->name("project.plan"); //项目关联计划
         Route::get("project/{project}/requirement", [API\ProjectController::class, "requirement"])
             ->name("project.requirement"); //项目需求
+        Route::get("project-4s", [API\ProjectController::class, "project4s"])
+            ->name("project.4s");
 //        Route::get("project/{project}/not-link-asset-requirement", [API\ProjectController::class, "notLinkAssetRequirement"])
 //            ->name("project.not-link-asset-requirement"); //项目未关联的资产需求