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
         $result = [];
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
         $result["regions"] = $regions;
48
         $result["regions"] = $regions;
39
         $result["tags"] = $tags;
49
         $result["tags"] = $tags;
57
                 "region_id" => $project->region_id,
67
                 "region_id" => $project->region_id,
58
                 "region" => $project->region->getTranslation("name", $locale),
68
                 "region" => $project->region->getTranslation("name", $locale),
59
                 "address" => $project->getTranslation("address", $locale),
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
                 "name" => $project->getTranslation("name", $locale),
76
                 "name" => $project->getTranslation("name", $locale),
62
                 "imgUrl" => $project->first_list_img_url
77
                 "imgUrl" => $project->first_list_img_url
63
             ];
78
             ];
71
         $project = Project::find($id);
86
         $project = Project::find($id);
72
 
87
 
73
         $projectHistories = [];
88
         $projectHistories = [];
89
+        $projectSpaceInfo = [];
74
         foreach($project->histories as $history){
90
         foreach($project->histories as $history){
75
             $operateDate = Carbon::parse($history->operate_date);
91
             $operateDate = Carbon::parse($history->operate_date);
76
             $projectHistories[$operateDate->format("Y")][] = [
92
             $projectHistories[$operateDate->format("Y")][] = [
78
                 "title" => $history->getTranslation("title", $locale)
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
         $result = [
104
         $result = [
83
             "name" => $project->getTranslation("name", $locale),
105
             "name" => $project->getTranslation("name", $locale),
84
             "subName" => $project->getTranslation("sub_name", $locale),
106
             "subName" => $project->getTranslation("sub_name", $locale),
85
-            "sub_name" => $project->getTranslation("sub_name", $locale),
107
+            "description" => $project->getTranslation("summaries", $locale),
86
             "images" => $project->img_list,
108
             "images" => $project->img_list,
87
             "region_id" => $project->region_id,
109
             "region_id" => $project->region_id,
88
             "region" => $project->region->getTranslation("name", $locale),
110
             "region" => $project->region->getTranslation("name", $locale),
89
             "address" => $project->getTranslation("address", $locale),
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
             "floor_plan" => $project->getTranslation("floor_plan", $locale),
118
             "floor_plan" => $project->getTranslation("floor_plan", $locale),
92
             "building_structure" => $project->getTranslation("building_structure", $locale),
119
             "building_structure" => $project->getTranslation("building_structure", $locale),
93
             "design_unit" => $project->getTranslation("design_unit", $locale),
120
             "design_unit" => $project->getTranslation("design_unit", $locale),
121
+            "badge_type" => $project->badge_type,
94
             "badges" => $project->getBadgesByType($locale, $project->badge_type),
122
             "badges" => $project->getBadgesByType($locale, $project->badge_type),
95
             "contact_info" => [
123
             "contact_info" => [
96
                 "unitName" => $project->getTranslation("contact_unit", $locale),
124
                 "unitName" => $project->getTranslation("contact_unit", $locale),
97
                 "unitPhone" => $project->getTranslation("contact_phone", $locale),
125
                 "unitPhone" => $project->getTranslation("contact_phone", $locale),
98
                 "inversmentPhone" => $project->getTranslation("inversment_phone", $locale),
126
                 "inversmentPhone" => $project->getTranslation("inversment_phone", $locale),
99
             ],
127
             ],
100
-            "spaceInfo" => $project->getTags($locale),
128
+            "spaceInfo" => $projectSpaceInfo,
101
             "historyList" => $projectHistories
129
             "historyList" => $projectHistories
102
         ];
130
         ];
103
         return Response::ok($result);
131
         return Response::ok($result);

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

18
     ];
18
     ];
19
     protected $casts = ["img_url" => "array"];
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
     public function region()
23
     public function region()
24
     {
24
     {
69
         return $this->hasMany(ProjectSpaceInfo::class);
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
     public function firstListImgUrl(): Attribute
72
     public function firstListImgUrl(): Attribute
80
     {
73
     {
81
         return Attribute::make(
74
         return Attribute::make(
104
                 $badges[] = [
97
                 $badges[] = [
105
                     "imgUrl" => $badge->imgUrlLink,
98
                     "imgUrl" => $badge->imgUrlLink,
106
                     "name" => $badge->getTranslation("title", $locale),
99
                     "name" => $badge->getTranslation("title", $locale),
107
-                    "rewardYear" => "取得年份 : " . $badge->reward_year
100
+                    "awardDate" => "取得時間 : " . $badge->award_date
108
                 ];
101
                 ];
109
             }
102
             }
110
         }
103
         }
122
                     $badges[] = [
115
                     $badges[] = [
123
                         "imgUrl" => $badge->imgUrlLink,
116
                         "imgUrl" => $badge->imgUrlLink,
124
                         "name" => null,
117
                         "name" => null,
125
-                        "rewardYear" => null
118
+                        "awardDate" => null
126
                     ];
119
                     ];
127
                 }
120
                 }
128
                 break;
121
                 break;
132
                     $badges[] = [
125
                     $badges[] = [
133
                         "imgUrl" => $badge->imgUrlLink,
126
                         "imgUrl" => $badge->imgUrlLink,
134
                         "name" => $badge->getTranslation("title", $locale),
127
                         "name" => $badge->getTranslation("title", $locale),
135
-                        "rewardYear" => "取得年份 : " . $badge->award_date
128
+                        "awardDate" => "取得時間 : " . $badge->award_date
136
                     ];
129
                     ];
137
                 }
130
                 }
138
                 break;
131
                 break;