cmsContentTemplate = $cmsContentTemplate; } //模板列表 public function index($request) { $perPage = isset($request['per_page']) ? $request['per_page'] : env('PER_PAGE'); $where = []; if (isset($request['is_open'])){ $where[] = ['is_open','=',$request['is_open']]; }else{ $where[] = ['is_open', '=',1]; } if (isset($request['city_id'])){ $where[] = [ 'city_id','=',$request['city_id'], ]; } return $this->cmsContentTemplate->where($where)->where('status',1)->orderBy('id', 'asc')->paginate($perPage); } /** * 新建模板 */ public function create($request) { $where = ['city_id'=>$request['city_id'],'title'=>trim($request['title']),'apply_type'=>$request['apply_type']]; $template = $this->cmsContentTemplate->where($where)->get(); 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'], 'city_id' => $request['city_id'], 'city_name' => $request['city_name'], 'apply_type' => $request['apply_type'], 'is_open' => $request['is_open'] ?? 0, 'status' => 1 ]; if (!$this->cmsContentTemplate->create($subject)) { throw new HttpException(500, '添加失败'); } } /** * 修改模板状态 */ public function edit($request) { $template_id = $this->cmsContentTemplate->find($request['id']); $where = ['city_id'=>$template_id->city_id,'title'=>$template_id->title,'apply_type'=>$template_id->apply_type]; $template = $this->cmsContentTemplate->where($where)->get(); // foreach ($template->toArray() as $v){ // if ($v['is_open'] == 1 && $request['is_open'] == 0){ // throw new HttpException(500, '请先关闭该城市模块下已开启的模板后操作'); // } // } if ($request['city_id'] == 610100 && $request['is_open'] == 0){ throw new HttpException(500, '城市为西安的模板不允许手动关闭'); } $template_id->is_open = $request['is_open']; $template_id->updated_at = date('Y-m-d H:i:s'); $res = $template_id->save(); if (!$res) { throw new HttpException(500, '修改状态失败'); } } /** * 修改模板名称 * @param $data * @return mixed */ public function updateTemplateName($data){ return $this->cmsContentTemplate->where('id',$data['id'])->update(['title'=>$data['title']]); } }