Selaa lähdekoodia

新增内容预览

duqinya 6 vuotta sitten
vanhempi
commit
14c9a7c9f6

+ 17 - 6
app/Http/Controllers/CmsContentTemplateSetController.php

@@ -1,15 +1,10 @@
 <?php
 namespace App\Http\Controllers;
 
-use App\Repositories\CmsContentTemplateRepository;
 use App\Repositories\CmsContentTemplateSetRepository;
-use App\Transformers\CmsContentTemplateTransformer;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Validator;
-use League\Fractal\Resource\Collection;
-use League\Fractal\Manager;
 use Illuminate\Validation\Rule;
-use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 /**
  * Created by PhpStorm.
  * User: qinyaer
@@ -101,7 +96,23 @@ class CmsContentTemplateSetController extends BaseController
         }
 
         return  $this->cmsContentSetTemplate->release($request->all());
-        
+
+    }
+
+
+    //内容预览
+    public function preview(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'tpl_id' => 'required|integer',
+            'type' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+
+        return  $this->cmsContentSetTemplate->preview($request->all());
+
     }
 
 

+ 60 - 1
app/Repositories/CmsContentTemplateSetRepository.php

@@ -2,16 +2,20 @@
 
 namespace App\Repositories;
 
+use App\Models\CmsSubject;
 use Dingo\Api\Http\Response;
 use App\Models\CmsContentTemplate;
 use App\Models\CmsContentTemplateSet;
+use App\Models\CmsSubjectProduct;
 use Symfony\Component\HttpKernel\Exception\HttpException;
 
 class CmsContentTemplateSetRepository {
-    public function __construct(CmsContentTemplateSet $cmsContentTemplateSet,CmsContentTemplate $cmsContentTemplate) {
+    public function __construct(CmsContentTemplateSet $cmsContentTemplateSet,CmsContentTemplate $cmsContentTemplate,CmsSubjectProduct $cmsSubjectProduct,CmsSubject $cmsSubject) {
 
         $this->cmsContentTemplateSet = $cmsContentTemplateSet;
         $this->cmsContentTemplate = $cmsContentTemplate;
+        $this->cmsSubjectProduct = $cmsSubjectProduct;
+        $this->cmsSubject = $cmsSubject;
     }
 
     /**
@@ -146,7 +150,62 @@ class CmsContentTemplateSetRepository {
 
     }
 
+    /**
+     * 内容发布
+     */
+    public function preview($request)
+    {
+        //团购首页
+        $group_array = [];
+        if ($request['type'] == 0){
+            $group_array['apply_type'] ="group";
+            $group_array['title'] ="今日团购";
+            $group_array['content'] =[];
+        }else{//菜市场首页
+            $group_array['apply_type'] ="market";
+            $group_array['title'] ="菜市场";
+            $group_array['content'] =[];
+        }
 
+        $group_array['content'][0]['area_type'] ="banner";
+        $banner_rule = $this->cmsContentTemplateSet->select('rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>0])->first();
+        $group_array['content'][0]['rule'] = $banner_rule->rule;
+
+        $group_array['content'][1]['area_type'] ="special";
+        $subject_rule = $this->cmsContentTemplateSet->select('rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>1])->first();
+        $group_array['content'][1]['rule'] = $subject_rule->rule;
+
+        $group_array['content'][2]['area_type'] ="floor";
+        $floor_rule = $this->cmsContentTemplateSet->select('rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>2])->first();
+
+        $decode_floor = json_decode($floor_rule['rule'],true);
+        foreach ($decode_floor as &$v){
+            $show_type = $this->cmsSubject->select('show_type')->where('id',$v['link_url'])->first();
+            $product = $this->cmsSubjectProduct->where('subject_id',$v['link_url'])->orderBy('sort','asc')->get();
+            $pro_array = $product->toArray();
+            $res_id = implode(",",array_column($pro_array,'id'));
+            $v['product_id'] = $res_id;
+            $v['subject_id'] = $v['link_url'];
+            $v['show_type'] = $show_type->show_type;
+            unset($v['url']);
+            unset($v['show_num']);
+            unset($v['link_url']);
+            unset($v['link_type']);
+        }
+        $group_array['content'][2]['rule'] = json_encode($decode_floor,JSON_UNESCAPED_UNICODE);
+        if ($request['type'] == 1){
+            $group_array['content'][3]['area_type'] ="category";
+            $category_rule = $this->cmsContentTemplateSet->select('rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>3])->first();
+            $group_array['content'][3]['rule'] = $category_rule->rule;
+        }
 
+        foreach ($group_array['content'] as $key=>$value){
+            $rule = json_decode($value['rule'],true);
+            $group_array['content'][$key]['rule'] = $rule;
+        }
+        $group_json = json_encode($group_array,JSON_UNESCAPED_UNICODE);
+        return $group_json;
+
+    }
 
 }

+ 3 - 0
routes/api.php

@@ -73,6 +73,9 @@ $api->version('v1', [
 
         //内容发布
         $api->post('/templateSet/release', 'CmsContentTemplateSetController@release');
+        //内容预览
+        $api->post('/templateSet/preview', 'CmsContentTemplateSetController@preview');
+
     });
 
 });