BTemplateController.php 4.5 KB
<?php

namespace App\Http\Controllers\Bside\Template;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\BTemplate\BTemplateLogic;
use App\Http\Requests\Bside\Template\TemplateRequest;
use App\Models\Template\BTemplate;
use App\Models\Template\BTemplateMain;
use App\Models\Template\Template;

class BTemplateController extends BaseController
{
    /**
     * @remark :获取所有公共主题
     * @name   :ATemplateLists
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 9:21
     */
    public function publicTemplateLists(BTemplateLogic $BTemplateLogic){
        $lists = $BTemplateLogic->publicTemplateLists($this->map,$this->page,$this->row,$this->order);
        if(!empty($lists) && !empty($lists['list'])){
            foreach ($lists['list'] as $k => &$v){
                $v['image_link'] = getImageUrl($v['image']);
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :获取当前已选择的模板
     * @name   :getModuleTemplate
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 9:40
     */
    public function getPublicTemplate(BTemplateLogic $BTemplateLogic){
        $this->request->validate([
            'source'=>'required',
            'source_id'=>'required',
        ],[
            'source.required' => 'source不能为空',
            'source_id.required' => 'source_id不能为空',
        ]);
        $info = $BTemplateLogic->getTemplate();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :保存编辑后的模板
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 10:02
     */
    public function save(TemplateRequest $templateRequest,BTemplateLogic $BTemplateLogic){
        $templateRequest->validated();
        $BTemplateLogic->templateSave();
        $this->response('success');
    }

    /**
     * @remark :可视化装修数据类型设置
     * @name   :moduleSetting
     * @author :lyh
     * @method :post
     * @time   :2023/7/17 15:55
     */
    public function getTypeSetting(BTemplateLogic $BTemplateLogic){
        $list = $BTemplateLogic->getModuleType();
        $this->response('success',Code::SUCCESS,$list);
    }

    /**
     * @remark :公共主题设置公共head
     * @name   :setHead
     * @author :lyh
     * @method :post
     * @time   :2023/7/10 15:30
     */
    public function setHeadFooter(BTemplateLogic $BTemplateLogic){
        $this->request->validate([
            'head'=>'required',
            'footer'=>'required'
        ],[
            'head.required' => 'head不能为空',
            'footer.required' => 'footer不能为空'
        ]);
        $BTemplateLogic->setHeadFooterSave();
        $this->response('success');
    }

    /**
     * @remark :获取公共主题head
     * @name   :getHead
     * @author :lyh
     * @method :post
     * @time   :2023/7/10 15:30
     */
    public function getHeadFooter(BTemplateLogic $BTemplateLogic){
        $info = $BTemplateLogic->getHeadFooterList();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :根据项目保存公共模板
     * @name   :savePublicTemplate
     * @author :lyh
     * @method :post
     * @time   :2023/9/18 10:58
     */
    public function savePublicTemplate(BTemplateLogic $BTemplateLogic){
        $this->request->validate([
            'name'=>'required',
            'html'=>'required',
            'image'=>'required',
        ],[
            'name.required' => '模板名称不能为空',
            'html.required' => 'html不能为空',
            'image.required' => '模板图片不能为空'
        ]);
        $BTemplateLogic->savePublicTemplateHtml();
        $this->response('模板保存成功');
    }

    /**
     * @remark :获取可视化详情页模板数据
     * @name   :getDetailInfo
     * @author :lyh
     * @method :post
     * @time   :2023/10/24 11:27
     */
    public function getDetailInfo(BTemplateLogic $BTemplateLogic){
        $html = $BTemplateLogic->getDetail();
        $this->response('success',Code::SUCCESS,['html'=>$html]);
    }

    /**
     * @remark :保存详情页模板数据
     * @name   :saveDetail
     * @author :lyh
     * @method :post
     * @time   :2023/10/24 14:47
     */
    public function saveDetail(BTemplateLogic $BTemplateLogic){
        $BTemplateLogic->saveDetail();
        $this->response('success');
    }

}