ReplaceHtmlController.php 4.7 KB
<?php
/**
 * @remark :
 * @name   :ReplaceHtmlController.php
 * @author :lyh
 * @method :post
 * @time   :2024/5/8 10:02
 */

namespace App\Http\Controllers\Aside\Template;

use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Template\ReplaceHtmlLogic;
use App\Models\Manage\Manage;
use App\Models\Project\DeployBuild;
use App\Models\Project\Project;
use App\Models\Template\TemplateReplaceHtml;
use App\Models\Template\TemplateReplaceHtmlLog;

class ReplaceHtmlController extends BaseController
{
    /**
     * @remark :获取所有页面类型
     * @name   :pageType
     * @author :lyh
     * @method :post
     * @time   :2024/5/9 17:06
     */
    public function pageType(ReplaceHtmlLogic $logic){
        $this->request->validate([
            'project_id'=>'required',
        ],[
            'project_id.required' => 'project_id不能为空',
        ]);
        $data = $logic->sourceTypeInfo($this->param['project_id']);
        $this->response('success',Code::SUCCESS,$data);
    }
    /**
     * @remark :替换同一种类型的html代码
     * @name   :replaceTemplateMainHtml
     * @author :lyh
     * @method :post
     * @time   :2024/5/7 14:39
     */
    public function replaceTemplateMainHtml(ReplaceHtmlLogic $logic){
        $this->request->validate([
            'name'=>'required',
//            'html'=>'required',
            'old_html'=>'required',
            'project_id'=>'required',
        ],[
            'name.required' => '需替换页面标识不能为空',
//            'html.required' => 'html不能为空',
            'old_html.required' => '替换前的html不能为空',
            'project_id.required' => 'project_id不能为空',
        ]);
        $data = $logic->replaceTemplateMainHtml();
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @remark :替换的记录
     * @name   :replaceTemplateLog
     * @author :lyh
     * @method :post
     * @time   :2024/5/8 10:28
     */
    public function replaceTemplateLog(TemplateReplaceHtml $replaceModel,ReplaceHtmlLogic $logic){
        $lists = $replaceModel->lists($this->map,$this->page,$this->row,$this->order);
        if(!empty($lists) && !empty($lists['list'])){
            foreach ($lists['list'] as $k => $v){
                $v['project_name'] = (new Project())->getProjectName($v['project_id']);
                $v['operator_name'] = (new Manage())->getName($v['operator_id']);
                $v['page_name'] =  $logic->getSourceName($v['source'],$v['is_list'],$v['is_custom'],$v['project_id']);
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :获取替换子记录
     * @name   :replaceTemplateSonLog
     * @author :lyh
     * @method :post
     * @time   :2024/5/11 11:09
     */
    public function replaceTemplateSonLog(TemplateReplaceHtmlLog $replaceHtmlLog,ReplaceHtmlLogic $logic){
        $this->request->validate([
            'replace_id'=>'required',
        ],[
            'replace_id.required' => '主id不能为空',
        ]);
        $lists = $replaceHtmlLog->lists($this->map,$this->page,$this->row,$this->order);
        $projectModel = new DeployBuild();
        $domain = '';
        if(!empty($lists) && !empty($lists['list'])){
            foreach ($lists['list'] as $k => $v){
                if($k == 0){
                    $projectInfo = $projectModel->read(['project_id'=>$v['project_id']]);
                    $domain = $projectInfo['test_domain'];
                }
                $v['page_name'] =  $logic->getSourceName($v['source'],$v['is_list'],$v['is_custom'],$v['project_id']);
                $v['route'] = $domain.$v['route'];
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :主任务还原
     * @name   :reductionHtml
     * @author :lyh
     * @method :post
     * @time   :2024/5/8 10:27
     */
    public function reductionHtml(ReplaceHtmlLogic $logic){
        $this->request->validate([
            'id'=>'required',
        ],[
            'id.required' => 'id不能为空',
        ]);
        $data = $logic->reductionHtml();
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @remark :根据id还原html
     * @name   :rollbackIdHtml
     * @author :lyh
     * @method :post
     * @time   :2024/5/11 11:22
     */
    public function rollbackIdHtml(ReplaceHtmlLogic $logic){
        $this->request->validate([
            'id'=>'required',
        ],[
            'id.required' => 'id不能为空',
        ]);
        $data = $logic->rollbackIdHtml();
        $this->response('success',Code::SUCCESS,$data);
    }
}