ソースを参照

修改预览格式,增加字段

duqinya 6 年 前
コミット
b2e8d43899
共有1 個のファイルを変更した38 個の追加24 個の削除を含む
  1. 38 24
      app/Http/Repositories/CmsContentTemplateSetRepository.php

+ 38 - 24
app/Http/Repositories/CmsContentTemplateSetRepository.php

@@ -34,42 +34,56 @@ class CmsContentTemplateSetRepository {
         }
 
         $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;
+        $banner_rule = $this->cmsContentTemplateSet->select('id','rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>0])->get();
+        $new_rule = [];
+        foreach ($banner_rule->toArray() as $k=>$v){
+            $new_rule[] = $v;
+        }
+        $group_array['content'][0]['rule'] = $new_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;
+        $subject_rule = $this->cmsContentTemplateSet->select('id','rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>1])->get();
 
-        $group_array['content'][2]['area_type'] ="floor";
-        $floor_rule = $this->cmsContentTemplateSet->select('rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>2])->first();
+        $new_rule = [];
+        foreach ($subject_rule->toArray() as $k=>$v){
+            $new_rule[] = $v;
+        }
+        $group_array['content'][1]['rule'] = $new_rule;
 
-        $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();
+        $group_array['content'][2]['area_type'] ="floor";
+        $floor_rule = $this->cmsContentTemplateSet->select('id','rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>2])->get();
+        $new_rule = [];
+        foreach ($floor_rule->toArray() as $k=>$v){
+            $new_rule[] = $v;
+        }
+        foreach ($new_rule as $k=>$v){
+            $rules = json_decode($v['rule'],true);
+            $show_type = $this->cmsSubject->select('show_type')->where('id', $rules['link_url'])->first();
+            $product = $this->cmsSubjectProduct->where('subject_id', $rules['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;
+            $res_id = implode(",", array_column($pro_array, 'id'));
+            $new_rule[$k]['product_id'] = $res_id;
+            $new_rule[$k]['subject_id'] = $rules['link_url'];
+            $new_rule[$k]['show_type'] = $show_type->show_type ?? '';
             unset($v['url']);
             unset($v['show_num']);
-            unset($v['link_url']);
+            unset($rules['link_url']);
             unset($v['link_type']);
         }
-        $group_array['content'][2]['rule'] = json_encode($decode_floor,JSON_UNESCAPED_UNICODE);
+        $group_array['content'][2]['rule'] = $new_rule;
+
         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;
+            $category_rule = $this->cmsContentTemplateSet->select('rule')->where(['tpl_id'=>$request['tpl_id'],'area_type'=>3])->get();
+            $new_rule = [];
+            foreach ($category_rule->toArray() as $k=>$v){
+                $new_rule[] = $v;
+            }
+            $group_array['content'][3]['rule'] = $new_rule;
         }
 
-        foreach ($group_array['content'] as $key=>$value){
-            $rule = json_decode($value['rule'],true);
-            $group_array['content'][$key]['rule'] = $rule;
-        }
-        $json = json_encode($group_array,JSON_UNESCAPED_UNICODE);
-        return $json;
+        $group_json = json_encode($group_array,JSON_UNESCAPED_UNICODE);
+
+        return $group_json;
     }
 }