parent
commit
10d715c8da
2 changed files with 38 additions and 17 deletions
  1. 34
    6
      app/Http/Controllers/Api/ProjectController.php
  2. 4
    11
      app/Models/Project.php

+ 34
- 6
app/Http/Controllers/Api/ProjectController.php View File

@@ -32,8 +32,18 @@ class ProjectController extends Controller
32 32
         $result = [];
33 33
 
34 34
         //年份清單
35
-        $regions = Region::where("visible", 1)->pluck("name", "id")->all();
36
-        $tags = Tag::where("visible", 1)->pluck("name", "id")->all();
35
+        $regions = Region::select(['id', 'name'])->where("visible", 1)->get()->map(function ($record) use ($locale){
36
+            return [
37
+                "id" => $record->id,
38
+                "name" => $record->getTranslation("name", $locale)
39
+            ];
40
+        });
41
+        $tags = Tag::select(['id', 'name'])->where("visible", 1)->get()->map(function ($record) use ($locale){
42
+            return [
43
+                "id" => $record->id,
44
+                "name" => $record->getTranslation("name", $locale)
45
+            ];
46
+        });
37 47
 
38 48
         $result["regions"] = $regions;
39 49
         $result["tags"] = $tags;
@@ -57,7 +67,12 @@ class ProjectController extends Controller
57 67
                 "region_id" => $project->region_id,
58 68
                 "region" => $project->region->getTranslation("name", $locale),
59 69
                 "address" => $project->getTranslation("address", $locale),
60
-                "tags" => $project->tags->pluck('name', 'id')->all(),
70
+                "tags" => $project->tags->map(function ($record) use ($locale){
71
+                    return [
72
+                        "id" => $record->id,
73
+                        "name" => $record->getTranslation("name", $locale)
74
+                    ];
75
+                }),
61 76
                 "name" => $project->getTranslation("name", $locale),
62 77
                 "imgUrl" => $project->first_list_img_url
63 78
             ];
@@ -71,6 +86,7 @@ class ProjectController extends Controller
71 86
         $project = Project::find($id);
72 87
 
73 88
         $projectHistories = [];
89
+        $projectSpaceInfo = [];
74 90
         foreach($project->histories as $history){
75 91
             $operateDate = Carbon::parse($history->operate_date);
76 92
             $projectHistories[$operateDate->format("Y")][] = [
@@ -78,26 +94,38 @@ class ProjectController extends Controller
78 94
                 "title" => $history->getTranslation("title", $locale)
79 95
             ];
80 96
         }
97
+        foreach($project->spaceInfos as $spaceInfo){
98
+            $projectSpaceInfo[] = [
99
+                "title" => $spaceInfo->getTranslation("title", $locale),
100
+                "content" => $spaceInfo->getTranslation("content", $locale)
101
+            ];
102
+        }
81 103
 
82 104
         $result = [
83 105
             "name" => $project->getTranslation("name", $locale),
84 106
             "subName" => $project->getTranslation("sub_name", $locale),
85
-            "sub_name" => $project->getTranslation("sub_name", $locale),
107
+            "description" => $project->getTranslation("summaries", $locale),
86 108
             "images" => $project->img_list,
87 109
             "region_id" => $project->region_id,
88 110
             "region" => $project->region->getTranslation("name", $locale),
89 111
             "address" => $project->getTranslation("address", $locale),
90
-            "tags" => $project->tags->pluck("name", "id")->all(),
112
+            "tags" => $project->tags->map(function ($record) use ($locale){
113
+                return [
114
+                    "id" => $record->id,
115
+                    "name" => $record->getTranslation("name", $locale)
116
+                ];
117
+            }),
91 118
             "floor_plan" => $project->getTranslation("floor_plan", $locale),
92 119
             "building_structure" => $project->getTranslation("building_structure", $locale),
93 120
             "design_unit" => $project->getTranslation("design_unit", $locale),
121
+            "badge_type" => $project->badge_type,
94 122
             "badges" => $project->getBadgesByType($locale, $project->badge_type),
95 123
             "contact_info" => [
96 124
                 "unitName" => $project->getTranslation("contact_unit", $locale),
97 125
                 "unitPhone" => $project->getTranslation("contact_phone", $locale),
98 126
                 "inversmentPhone" => $project->getTranslation("inversment_phone", $locale),
99 127
             ],
100
-            "spaceInfo" => $project->getTags($locale),
128
+            "spaceInfo" => $projectSpaceInfo,
101 129
             "historyList" => $projectHistories
102 130
         ];
103 131
         return Response::ok($result);

+ 4
- 11
app/Models/Project.php View File

@@ -18,7 +18,7 @@ class Project extends Model
18 18
     ];
19 19
     protected $casts = ["img_url" => "array"];
20 20
 
21
-    protected $appends = ["first_list_img_url", "img_list", "meta_img_url"];
21
+    protected $appends = ["first_list_img_url", "img_list"];
22 22
 
23 23
     public function region()
24 24
     {
@@ -69,13 +69,6 @@ class Project extends Model
69 69
         return $this->hasMany(ProjectSpaceInfo::class);
70 70
     }
71 71
 
72
-    protected function metaImgUrl(): Attribute
73
-    {
74
-        return Attribute::make(
75
-            get: fn ($value) => is_null($this->meta_img) ? null :Storage::url($this->meta_img),
76
-        );
77
-    }
78
-
79 72
     public function firstListImgUrl(): Attribute
80 73
     {
81 74
         return Attribute::make(
@@ -104,7 +97,7 @@ class Project extends Model
104 97
                 $badges[] = [
105 98
                     "imgUrl" => $badge->imgUrlLink,
106 99
                     "name" => $badge->getTranslation("title", $locale),
107
-                    "rewardYear" => "取得年份 : " . $badge->reward_year
100
+                    "awardDate" => "取得時間 : " . $badge->award_date
108 101
                 ];
109 102
             }
110 103
         }
@@ -122,7 +115,7 @@ class Project extends Model
122 115
                     $badges[] = [
123 116
                         "imgUrl" => $badge->imgUrlLink,
124 117
                         "name" => null,
125
-                        "rewardYear" => null
118
+                        "awardDate" => null
126 119
                     ];
127 120
                 }
128 121
                 break;
@@ -132,7 +125,7 @@ class Project extends Model
132 125
                     $badges[] = [
133 126
                         "imgUrl" => $badge->imgUrlLink,
134 127
                         "name" => $badge->getTranslation("title", $locale),
135
-                        "rewardYear" => "取得年份 : " . $badge->award_date
128
+                        "awardDate" => "取得時間 : " . $badge->award_date
136 129
                     ];
137 130
                 }
138 131
                 break;