BTemplateController.php 5.9 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\Setting;
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'],$this->user['storage_type'],$this->user['project_location']);
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :获取数据详情
     * @name   :templateInfo
     * @author :lyh
     * @method :post
     * @time   :2024/7/31 14:27
     */
    public function info(BTemplateLogic $BTemplateLogic){
        $this->request->validate([
            'id'=>'required',
        ],[
            'id.required' => 'id不能为空',
        ]);
        $info = $BTemplateLogic->getTemplateInfo();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :获取用户模版id
     * @name   :getUserTemplate
     * @author :lyh
     * @method :post
     * @time   :2023/12/28 15:34
     */
    public function getTemplate(){
        $bSettingModel = new Setting();
        $info = $bSettingModel->read(['project_id'=>$this->user['project_id']]);
        if($info === false){
            $this->fail('请先选择模版');
        }
        $templateModel = new BTemplate();
        $templateInfo = $templateModel->read(['template_id'=>$info['template_id'], 'source'=>BTemplate::SOURCE_HOME, 'source_id'=>0],['updated_at']);
        if($templateInfo !== false){
            $info['updated_at'] = $templateInfo['updated_at'];
        }
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @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->getTemplateHtml();
        $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 :可视化装修数据类型设置
     * @name   :moduleSetting
     * @author :lyh
     * @method :post
     * @time   :2023/7/17 15:55
     */
    public function getModuleTypes(BTemplateLogic $BTemplateLogic){
        $list = $BTemplateLogic->getModuleTypes();
        $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   :setPublicTemplate
     * @author :lyh
     * @method :post
     * @time   :2024/5/24 15:08
     */
    public function setPublicTemplate(BTemplateLogic $BTemplateLogic){
        $this->request->validate([
            'id'=>'required',
            'template_id'=>'required',
        ],[
            'id.required' => '当前数据id不能为空',
            'template_id.required' => '模版id不能为空',
        ]);
        $BTemplateLogic->setCustomTemplate();
        $this->response('保存成功');
    }
}