BTemplateLogic.php 4.8 KB
<?php

namespace App\Http\Logic\Bside\BTemplate;

use App\Http\Logic\Bside\BaseLogic;
use App\Models\Template\Template;
use App\Models\Template\BSetting;
use App\Models\Template\BTemplate;

/**
 * @remark :b端模块
 * @name   :BTemplateLogic
 * @author :lyh
 * @time   :2023/6/28 17:00
 */
class BTemplateLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->model = new BTemplate();
        $this->param = $this->requestAll;
    }

    /**
     * @remark :获取所有公共模板
     * @name   :publicTemplateLists
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 9:34
     */
    public function publicTemplateLists($map,$page,$row,$order = 'created_at',$filed = ['id','name','image','url','created_at']){
        $templateModel = new Template();
        $lists = $templateModel->lists($map,$page,$row,$order,$filed);
        return $this->success($lists);
    }

    /**
     * @remark :获取当前选择使用的模板
     * @name   :getModuleTemplate
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 9:44
     */
    public function getTemplate(){
        $bSettingModel = new BSetting();
        $info = $bSettingModel->read(['project_id'=>$this->user['project_id']]);
        $TemplateInfo = [];
        if($info !== false){
            //查看当前模板是否已编辑保存web_template
            $TemplateInfo = $this->model->read([
                'template_id'=>$info['template_id'],
                'source'=>!isset($this->param['source']) ? 1 : $this->param['source'],
                'project_id'=>$this->user['project_id'],
                'source_id'=>!isset($this->param['source_id']) ? 0 : $this->param['source_id'],
            ]);
            if($TemplateInfo === false){
                //获取模板详情
                $ATemplateModel = new Template();
                $TemplateInfo = $ATemplateModel->read(['id'=>$info['template_id']]);
            }
            $TemplateInfo['updated_at'] = $info['updated_at'];
        }
        return $this->success($TemplateInfo);
    }

    /**
     * @remark :设置模板
     * @name   :setTemplate
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 9:47
     */
    public function setTemplate(){
        $bSettingModel = new BSetting();
        $info = $bSettingModel->read(['project_id'=>$this->user['project_id']]);
        if($info === false){
            $param = [
                'project_id'=>$this->user['project_id'],
                'template_id'=>$this->param['template_id'],
            ];
            $rs = $bSettingModel->add($param);
        }else{
            $rs = $bSettingModel->edit(['template_id'=>$this->param['template_id']],['project_id'=>$this->user['project_id']]);
        }
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }

    /**
     * @remark :保存修改后的模版
     * @name   :templateSave
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 11:05
     */
    public function templateSave(){
        //查询当前模版是否已保存
        $info = $this->model->read(
            [
                'project_id'=>$this->user['project_id'],
                'source'=>$this->param['source'] ?? 'index',
                'source_id'=>$this->param['source_id'] ?? 0,
                'template_id'=>$this->param['template_id'],
            ]
        );
        if($info === false){
            //字符串截取
            $this->StringProcessing();
            $this->param['project_id'] = $this->user['project_id'];
            $rs = $this->model->add($this->param);
        }else{
            $this->StringProcessing();
            $rs = $this->model->edit($this->param,['id'=>$info['id']]);
        }
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }

    /**
     * @remark :字符串处理
     * @name   :StringProcessing
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 15:35
     */
    public function StringProcessing(){
        //字符串截取
        $this->param['head_html'] = characterTruncation($this->param['html'],'/<header\b[^>]*>(.*?)<\/header>/s');
        $this->param['footer_html'] = characterTruncation($this->param['html'],'/<footer\b[^>]*>(.*?)<\/footer>/s');
        $this->param['head_css'] = characterTruncation($this->param['html'],'/<style id="vvvebjs-header">(.*?)<\/style>/s');
        $this->param['footer_css'] = characterTruncation($this->param['html'],'/<style id="vvvebjs-footer">(.*?)<\/style>/s');
    }

    /**
     * @remark :获取类型
     * @name   :getModuleType
     * @author :lyh
     * @method :post
     * @time   :2023/7/17 16:03
     */
    public function getModuleType($type){
//        $moduleTypeModel = new
    }
}