Forráskód Böngészése

专题新增、编辑、查看单个、列表 修改

durong 5 éve
szülő
commit
fa3d0868b9

+ 18 - 46
app/Http/Controllers/CmsSubjectController.php

@@ -41,14 +41,16 @@ class CmsSubjectController extends BaseController
         $data = $fractal->createData($resource)->toArray();
         $data['extra'] = [
             'filters' => [
-                'id'
+                'id',
+                'city_id',
+                'is_open',
+                'used_mall'
             ],
             'columns' => [
                 'id',
-                'city_id',
                 'city_name',
+                'used_mall',
                 'title',
-                'show_type',
                 'is_open',
                 'product_count',
             ]
@@ -63,10 +65,8 @@ class CmsSubjectController extends BaseController
         $validator = Validator::make($request->all(), [
             'product_id' => 'required',
             'sort' => 'required',
-            'city_id' => 'required|integer',
-            'city_name' => 'required|string',
             'title' => 'required|string',
-            'show_type' => ['required', Rule::in(0,1,2)],
+            'show_type' => ['required', Rule::in(0,1,2,3)],
             'is_open' => ['required', Rule::in(0,1)],
         ]);
         if ($validator->fails()) {
@@ -84,10 +84,8 @@ class CmsSubjectController extends BaseController
             'id' => 'required|exists:cms_subject',
             'product_id' => 'required',
             'sort' => 'required',
-            'city_id' => 'required|integer',
-            'city_name' => 'required|string',
             'title' => 'required|string',
-            'show_type' => ['required', Rule::in(0,1,2)],
+            'show_type' => ['required', Rule::in(0,1,2,3)],
             'is_open' => ['required', Rule::in(0,1)],
         ]);
 
@@ -106,48 +104,22 @@ class CmsSubjectController extends BaseController
             'id' => 'required|integer',
         ]);
 
-        if($validator->fails()) {
-
+        if ($validator->fails()) {
             return $this->response->error($validator->errors()->first(), 500);
         }
-        $getSubject = $this->cmsSubjectRepository->index($request->all());
-
-        if (count($getSubject)>0) {
-            foreach ($getSubject as $k => $v) {
-                $product = CmsSubjectProduct::select('subject_id','product_id','sort')->where('subject_id',$v['id'])->orderBy('sort','asc')->get();
-                $num = $product->toArray();
-                $product_arr = array_column($num,'product_id');
-                $getSubject[$k]->product_id = implode(',',$product_arr);
-                $sort_arry = array_column($num,'sort');
-                $getSubject[$k]->sort = implode(',',$sort_arry);
-        }
-            }
 
-        if(!$getSubject){
-            return $this->response->error($validator->errors()->first(), 500);
-        }
+        $getSubject = $this->cmsSubjectRepository->detail($request->all());
 
-        $fractal = new Manager();
-        $resource = new Collection($getSubject, new CmsSubjectViewTransformer());
-        $resource->setPaginator(new IlluminatePaginatorAdapter($getSubject));
-        $data = $fractal->createData($resource)->toArray();
-        $data['extra'] = [
-            'filters' => [
-                'id'
-            ],
-            'columns' => [
-                'id',
-                'city_id',
-                'city_name',
-                'title',
-                'show_type',
-                'is_open',
-                'product_id',
-                'sort',
-            ]
-        ];
-        return $data;
+        if (count($getSubject->toArray()) > 0) {
+            $product = CmsSubjectProduct::select('subject_id', 'product_id', 'sort')->where('subject_id', $getSubject->id)->orderBy('sort', 'asc')->get();
+            $num = $product->toArray();
+            $product_arr = array_column($num, 'product_id');
+            $getSubject->product_id = implode(',', $product_arr);
+            $sort_arry = array_column($num, 'sort');
+            $getSubject->sort = implode(',', $sort_arry);
+        }
 
+        return $this->response->item($getSubject, new CmsSubjectViewTransformer());
     }
 
 

+ 17 - 5
app/Repositories/CmsSubjectRepository.php

@@ -32,11 +32,19 @@ class CmsSubjectRepository {
         if(isset($request['is_open'])){
             $where[] = ['is_open', '=', $request['is_open']];
         }
+        if(isset($request['used_mall'])){
+            $where[] = ['used_mall', '=', $request['used_mall']];
+        }
 
         return $this->cmsSubject->where($where)->orderBy('id', 'asc')->paginate($perPage);
 
     }
 
+    public function detail($request)
+    {
+        return $this->cmsSubject->find($request['id']);
+    }
+
     /**
      * 添加专题
      */
@@ -48,11 +56,13 @@ class CmsSubjectRepository {
 
         $subject = [
             'title' => $request['title'],
-            'city_id' => $request['city_id'],
-            'city_name' => $request['city_name'],
+            'city_id' => isset($request['city_id']) ? $request['city_id'] : 0,
+            'city_name' => isset($request['city_name']) ? $request['city_name'] : '',
             'show_type' => $request['show_type'],
             'is_open' => $request['is_open'],
-            'used_count' => 0
+            'used_count' => 0,
+            'used_mall' => isset($request['used_mall']) ? $request['used_mall'] : 1,
+            'subject_img' => isset($request['subject_img']) ? $request['subject_img'] : ''
         ];
         $date = date('Y-m-d H:i:s');
 
@@ -102,11 +112,13 @@ class CmsSubjectRepository {
         $subject = $this->cmsSubject->find($request['id']);
 
         $subject->title = $request['title'];
-        $subject->city_id = $request['city_id'];
-        $subject->city_name = $request['city_name'];
+        $subject->city_id = isset($request['city_id']) ? $request['city_id'] : 0;
+        $subject->city_name = isset($request['city_name']) ? $request['city_name'] : '';
         $subject->show_type = $request['show_type'];
         $subject->is_open = $request['is_open'];
         $subject->used_count = 0;
+        $subject->used_mall = isset($request['used_mall']) ? $request['used_mall'] : 1;
+        $subject->subject_img = isset($request['subject_img']) ? $request['subject_img'] : '';
 
         $date = date('Y-m-d H:i:s');
 

+ 2 - 0
app/Transformers/CmsSubjectTransformer.php

@@ -18,6 +18,8 @@ class CmsSubjectTransformer extends TransformerAbstract
             'show_type'    => $cmsSubject['show_type'],
             'product_count'    => $cmsSubject['product_count'],
             'is_open'    => $cmsSubject['is_open'],
+            'used_mall'    => $cmsSubject['used_mall'],
+            'subject_img'    => $cmsSubject['subject_img'],
         ];
     }
 }

+ 2 - 0
app/Transformers/CmsSubjectViewTransformer.php

@@ -19,6 +19,8 @@ class CmsSubjectViewTransformer extends TransformerAbstract
             'is_open'    => $cmsSubject['is_open'],
             'product_id'    => $cmsSubject['product_id'],
             'sort'    => $cmsSubject['sort'],
+            'used_mall'    => $cmsSubject['used_mall'],
+            'subject_img'    => $cmsSubject['subject_img']
         ];
     }
 }