浏览代码

Merge branch 'develop'

wzq 6 年之前
父节点
当前提交
978be9f219

+ 16 - 0
app/Http/Controllers/CmsContentTemplateController.php

@@ -86,4 +86,20 @@ class CmsContentTemplateController extends BaseController
 
     }
 
+    /**
+     * 修改模板名称
+     * @param Request $request
+     * @return mixed|void
+     */
+    public function editTemplateName(Request $request){
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|exists:cms_content_template',
+            'title' => 'required',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->cmsContentTemplate->updateTemplateName($request->all());
+    }
+
 }

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

@@ -37,7 +37,7 @@ class CmsContentTemplateSetController extends BaseController
 
     //banner设置
     public function bannerSet(Request $request)
-    {Log::debug('request-param-bannerSet:'.json_encode($request->all()));
+    {
         $validator = Validator::make($request->all(), [
             'rule' => 'required',
             'tpl_id' => 'required|integer',
@@ -53,7 +53,7 @@ class CmsContentTemplateSetController extends BaseController
 
     //专题广告设置
     public function advertisement(Request $request)
-    {Log::debug('request-param-advertisement:'.json_encode($request->all()));
+    {
         $validator = Validator::make($request->all(), [
             'rule' => 'required',
             'tpl_id' => 'required|integer',
@@ -69,7 +69,7 @@ class CmsContentTemplateSetController extends BaseController
 
     //商品楼层设置
     public function floorSet(Request $request)
-    { Log::debug('request-param-floorSet:'.json_encode($request->all()));
+    {
         $validator = Validator::make($request->all(), [
             'rule' => 'required',
             'tpl_id' => 'required|integer',
@@ -86,7 +86,7 @@ class CmsContentTemplateSetController extends BaseController
     //分类专题设置
     public function categorySet(Request $request)
     {
-        Log::debug('request-param-categorySet:'.json_encode($request->all()));
+//        Log::debug('request-param-categorySet:'.json_encode($request->all()));
         $validator = Validator::make($request->all(), [
             'rule' => 'required',
             'tpl_id' => 'required|integer',
@@ -143,5 +143,18 @@ class CmsContentTemplateSetController extends BaseController
 
     }
 
+    //删除某模板内容
+    public function templateSetDelete(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|exists:cms_content_template_set'
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return $this->cmsContentSetTemplate->templateSetDelete($request->only('id'));
+
+    }
+
 
 }

+ 3 - 1
app/Models/CmsContentTemplate.php

@@ -1,9 +1,11 @@
 <?php
 
 namespace App\Models;
-
+use Illuminate\Database\Eloquent\SoftDeletes;
 class CmsContentTemplate extends BaseModel
 {
+    use SoftDeletes;
+    protected $dates = ['deleted_at'];
     protected  $table = 'cms_content_template';
 
 

+ 28 - 9
app/Repositories/CmsContentTemplateRepository.php

@@ -16,17 +16,17 @@ class CmsContentTemplateRepository {
     {
         $perPage = isset($request['per_page']) ? $request['per_page'] : env('PER_PAGE');
         $where = [];
-        if(isset($request['id'])){
-            $where[] = ['id'=>$request['id'],'is_open'=>1];
-        }
-        if (isset($request['is_open'])){
-            $where[] = ['is_open',$request['is_open']];
-        }
+//        if (isset($request['is_open'])){
+//            $where[] = ['is_open','=',$request['is_open']];
+//        }
         if (isset($request['city_id'])){
-            $where[] = ['city_id'=>$request['city_id'],'is_open'=>1];
+            $where[] = [
+                'city_id','=',$request['city_id'],
+            ];
+
         }
+        return $this->cmsContentTemplate->where($where)->where('is_open','=',1)->orderBy('id', 'asc')->paginate($perPage);
 
-        return $this->cmsContentTemplate->where($where)->orderBy('id', 'asc')->paginate($perPage);
 
     }
 
@@ -37,9 +37,16 @@ class CmsContentTemplateRepository {
     {
         $where = ['city_id'=>$request['city_id'],'title'=>trim($request['title'])];
         $template = $this->cmsContentTemplate->where($where)->get();
-        if (count($template)>2){
+        if (count($template) == 2){
             throw new HttpException(500, '每个城市只能存在两个相同的模版');
         }
+        foreach ($template->toArray() as $k=>$v){
+            if ($v['is_open'] == 1){
+                $request['is_open'] = 0;
+            }else{
+                $request['is_open'] = 1;
+            }
+        }
 
         $subject = [
             'title' => $request['title'],
@@ -59,6 +66,9 @@ class CmsContentTemplateRepository {
      */
     public function edit($request)
     {
+        if ($request['city_id'] == 610100 && $request['is_open'] == 0){
+            throw new HttpException(500, '西安的模板不允许手动关闭');
+        }
         if ($request['is_open']==0){
             $where = [
                 'apply_type'=>$request['apply_type'],
@@ -80,4 +90,13 @@ class CmsContentTemplateRepository {
             throw new HttpException(500, '修改状态失败');
         }
     }
+
+    /**
+     * 修改模板名称
+     * @param $data
+     * @return mixed
+     */
+    public function updateTemplateName($data){
+        return $this->cmsContentTemplate->where('id',$data['id'])->update(['title'=>$data['title']]);
+    }
 }

+ 106 - 65
app/Repositories/CmsContentTemplateSetRepository.php

@@ -25,70 +25,78 @@ class CmsContentTemplateSetRepository {
      */
     public function set($request)
     {
-        $template = $this->cmsContentTemplate->where('id',$request['tpl_id'])->first();
+        $template = $this->cmsContentTemplate->select('id','city_name','city_id','title','apply_type','is_open')->where('id',$request['tpl_id'])->first();
         $templates = $template->toArray();
-
+        $where = [
+            'city_id'=>$templates['city_id'],
+            'title'=>$templates['title'],
+            'apply_type'=>$templates['apply_type'],
+        ];
+        $copys_template = $this->cmsContentTemplate->where($where)->get();
         $request = [];
-            if ($templates['is_open'] == 0){
-                $request['type'] = $templates['apply_type'];
-                $request['tpl_id'] = $templates['id'];
+        $need_create=true;
+        foreach ($copys_template as $k=>$v) {
+            if ($v['is_open'] == 0) {
+                $need_create = false;
+                $request['type'] = $v['apply_type'];
+                $request['tpl_id'] = $v['id'];
                 return $this->preview($request);
             }
+        }
+            if ($need_create) {
+                $new_template = [
+                    'title' => $templates['title'],
+                    'city_id' => $templates['city_id'],
+                    'city_name' => $templates['city_name'],
+                    'apply_type' => $templates['apply_type'],
+                    'is_open' => 0,
+                ];
+                DB::beginTransaction();
+                try {
+                    $res = $this->cmsContentTemplate->create($new_template);
+                    if (!$res) {
+                        throw new HttpException(500, '添加草稿模板失败');
+                    }
 
-            if ($templates['is_open'] == 1){
-                        $new_template = [
-                            'title' => $templates['title'],
-                            'city_id' => $templates['city_id'],
-                            'city_name' => $templates['city_name'],
-                            'apply_type' => $templates['apply_type'],
-                            'is_open' => 0,
-                        ];
-                        DB::beginTransaction();
-                        try {
-                            $res = $this->cmsContentTemplate->create($new_template);
-                            if (!$res) {
-                                throw new HttpException(500, '添加草稿模板失败');
-                            }
-
-                            $template_set = $this->cmsContentTemplateSet->where('tpl_id', $templates['id'])->get();
-                            if (count($template_set) > 0) {
-                                foreach ($template_set->toArray() as $key => $val) {
-                                    $copy_template = [
-                                        'rule' => $val['rule'],
-                                        'tpl_id' => $res->id,
-                                        'area_type' => $val['area_type'],
-                                        'status' => $val['status'],
-                                    ];
-                                    $result = $this->cmsContentTemplateSet->create($copy_template);
-                                    if (!$result) {
-                                        throw new HttpException(500, '生成模板内容失败');
-                                    }
-                                    $request['type'] = $res->apply_type;
-                                    $request['tpl_id'] = $result->tpl_id;
-                                }
+                    $template_set = $this->cmsContentTemplateSet->where('tpl_id', $templates['id'])->get();
+                    if (count($template_set) > 0) {
+                        foreach ($template_set->toArray() as $key => $val) {
+                            $copy_template = [
+                                'rule' => $val['rule'],
+                                'tpl_id' => $res->id,
+                                'area_type' => $val['area_type'],
+                                'status' => $val['status'],
+                            ];
+                            $result = $this->cmsContentTemplateSet->create($copy_template);
+                            if (!$result) {
+                                throw new HttpException(500, '生成模板内容失败');
                             }
-                            DB::commit();
-                           return $this->preview($request);
-    //                        return Response::create();
-
-                        } catch (QueryException $exception) {
-                            DB::rollBack();
-                            return Response::create([
-                                'message' => '生成模板内容失败,请重试',
-                                'error' => $exception->getMessage(),
-                                'status_code' => 500
-                            ]);
+                            $request['type'] = $res->apply_type;
+                            $request['tpl_id'] = $result->tpl_id;
                         }
                     }
+                    DB::commit();
+                    return $this->preview($request);
+                    //return Response::create();
 
+                } catch (QueryException $exception) {
+                    DB::rollBack();
+                    return Response::create([
+                        'message' => '生成模板内容失败,请重试',
+                        'error' => $exception->getMessage(),
+                        'status_code' => 500
+                    ]);
+                }
+            }
     }
 
+
     /**
      * banner配置
      */
     public function bannerSet($request)
     {
-        $banner_id = $request['id']??'';
+        $banner_id = $request['id'] ?? '';
             $rules = $request['rule'];
             if (is_array($rules)){
                 if (count($rules)>10) {
@@ -210,25 +218,45 @@ class CmsContentTemplateSetRepository {
         //同一个城市同一个模板(团购/菜市场) 只能有一种状态(草稿/发布),已发布的一旦被编辑把之前的直接删掉
         $templateSet = $this->cmsContentTemplateSet->where('tpl_id',$request['tpl_id'])->select('id','status')->get();
         $tem_array = $templateSet->toArray();
-        foreach ($tem_array as $k=>$v) {
-                if ($v['status'] == 1) {
-                    $result = $this->cmsContentTemplateSet->where('id', $v['id'])->delete();
-                    if (!$result) {
-                        return Response::create([
-                            'message' => '删除失败,请重试',
-                            'status_code' => 500
-                        ]);
-                    }
-                }
+        $template = $this->cmsContentTemplate->select('id','city_name','city_id','title','apply_type','is_open')->where('id',$request['tpl_id'])->first();
+        $where = [
+            'city_id'=>$template->city_id,
+            'title'=>$template->title,
+            'apply_type'=>$template->apply_type,
+        ];
+        $templates = $this->cmsContentTemplate->where($where)->get();
+        $update_is_open_ids=[];
+        foreach ($templates->toArray() as $k=>$v) {
+            if ($v['is_open'] == 1) {
+                  $update_is_open_ids[]=$v['id'];
+            }
         }
 
-                $res = $this->cmsContentTemplateSet->where('tpl_id',$request['tpl_id'])->update(['status'=>1]);
-                if (!$res){
-                    return Response::create([
-                        'message'  => '修改失败,请重试',
-                        'status_code'   => 500
-                    ]);
-                }
+        $update_tpl = $this->cmsContentTemplate->where('id', $request['tpl_id'])->update(['is_open' => 1]);
+        if (!$update_tpl) {
+            throw new HttpException(500, '修改失败,请重试');
+        }
+        $update_open = $this->cmsContentTemplate->whereIn('id', $update_is_open_ids)->delete();
+        if (!$update_open) {
+            throw new HttpException(500, '删除失败,请重试');
+        }
+
+        $update_open = $this->cmsContentTemplateSet->whereIn('tpl_id', $update_is_open_ids)->update(['status' => 0]);
+
+        if (!$update_open) {
+            throw new HttpException(500, '修改失败,请重试');
+        }
+        $res = $this->cmsContentTemplateSet->where('tpl_id',$request['tpl_id'])->update(['status'=>1]);
+
+        if (!$res){
+            throw new HttpException(500, '修改失败,请重试');
+        }
+        foreach ($templates->toArray() as $k=>$v) {
+            $result = $this->cmsContentTemplateSet->where(['status'=>0,'tpl_id'=>$v['id']])->delete();
+            if ($result) {
+                return Response::create();
+            }
+        }
 
     }
 
@@ -247,10 +275,12 @@ class CmsContentTemplateSetRepository {
         $group_array = [];
         if ($request['type'] == 0){
             $group_array['apply_type'] = 0;
+            $group_array['tpl_id'] = $request['tpl_id'];
             $group_array['title'] = $temalates->title;
             $group_array['content'] =[];
         }else{//菜市场首页
             $group_array['apply_type'] = 1;
+            $group_array['tpl_id'] = $request['tpl_id'];
             $group_array['title'] = $temalates->title;
             $group_array['content'] =[];
         }
@@ -318,4 +348,15 @@ class CmsContentTemplateSetRepository {
 
     }
 
+    public function templateSetDelete($request)
+    {
+        $advertisement = $this->cmsContentTemplateSet->where('id', $request['id'])->first();
+        $res = $advertisement->delete();
+        if (!$res){
+            return Response::create([
+                'message'  => '删除失败,请重试',
+                'status_code'   => 500
+            ]);
+        }
+    }
 }

+ 3 - 0
app/Repositories/CmsSubjectRepository.php

@@ -24,6 +24,9 @@ class CmsSubjectRepository {
         if(isset($request['id'])){
             $where[] = ['id', '=', $request['id']];
         }
+        if(isset($request['city_id'])){
+            $where[] = ['city_id', '=', $request['city_id']];
+        }
 
         return $this->cmsSubject->where($where)->orderBy('id', 'asc')->paginate($perPage);
 

+ 32 - 0
database/migrations/2019_05_22_015511_add_delete_to_cms_content_template_table.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddDeleteToCmsContentTemplateTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('cms_content_template', function (Blueprint $table) {
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('cms_content_template', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 4 - 0
routes/api.php

@@ -66,6 +66,8 @@ $api->version('v1', [
         $api->post('/template/create', 'CmsContentTemplateController@create');
         //列表修改模板状态
         $api->put('/template/edit', 'CmsContentTemplateController@edit');
+        //列表修改模板名称状态
+        $api->put('/template/editName', 'CmsContentTemplateController@editTemplateName');
 
         //banner设置
         $api->post('/templateSet/bannerSet', 'CmsContentTemplateSetController@bannerSet');
@@ -75,6 +77,8 @@ $api->version('v1', [
         $api->post('/templateSet/floorSet', 'CmsContentTemplateSetController@floorSet');
         //分类专题设置
         $api->post('/templateSet/categorySet', 'CmsContentTemplateSetController@categorySet');
+        //模板内容删除
+        $api->delete('/templateSetDelete', 'CmsContentTemplateSetController@templateSetDelete');
 
         //内容发布
         $api->post('/templateSet/release', 'CmsContentTemplateSetController@release');

+ 0 - 0
storage/.gitkeep