ATemplateController.php 7.6 KB
<?php

namespace App\Http\Controllers\Aside\Template;

use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Template\ATemplateLogic;
use App\Http\Requests\Aside\Template\ATemplateRequest;
use App\Models\Template\Setting;
use App\Models\Template\Template;
use App\Models\Template\TemplateLabel;

/**
 * @remark :A端主题模板管理
 * @name   :ATemplateController
 * @author :lyh
 * @time   :2023/6/28 16:33
 */
class ATemplateController extends BaseController
{
    /**
     * @remark :公共模板详情
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:34
     */
    public function lists(ATemplateLogic $aTemplateLogic,TemplateLabel $templateLabel){
        $filed = ['id','name','image','url','status','sort','deleted_status','test_model','created_at','project_id'];
        $lists = $aTemplateLogic->aTemplateList($this->map,$this->page,$this->row,$this->order,$filed);
        if(!empty($lists) && !empty($lists['list'])){
            foreach ($lists['list'] as $k => $v){
                $v['label'] = $templateLabel->list(['template_id'=>$v['id']],'id',['id','name'],'desc',5);
                $v['image_link'] = getImageUrl($v['image']);
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :获取选择的模版
     * @name   :getTemplateInfo
     * @author :lyh
     * @method :post
     * @time   :2023/11/3 17:19
     */
    public function getSettingInfo(ATemplateLogic $aTemplateLogic){
        $this->request->validate([
            'project_id'=>'required'
        ],[
            'project_id.required' => 'project_id不能为空'
        ]);
        $info = $aTemplateLogic->getSettingInfo();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :获取数据详情
     * @name   :read
     * @author :lyh
     * @method :post
     * @time   :2023/7/3 9:21
     */
    public function read(ATemplateLogic $aTemplateLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $info = $aTemplateLogic->aTemplateRead();
        $this->response('success',Code::SUCCESS,$info);
    }
    /**
     * @remark :保存主题模块
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:40
     */
    public function save(ATemplateRequest $aTemplateRequest,ATemplateLogic $aTemplateLogic){
        $aTemplateRequest->validated();
        $aTemplateLogic->aTemplateSave();
        $this->response('success');
    }

    /**
     * @remark :修改模块状态
     * @name   :status
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:41
     */
    public function status(ATemplateLogic $aTemplateLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $aTemplateLogic->aTemplateStatus();
        $this->response('success');
    }

    /**
     * @remark :执行逻辑删除
     * @name   :del
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:41
     */
    public function del(ATemplateLogic $aTemplateLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $aTemplateLogic->aTemplateDel();
        $this->response('success');
    }

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

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

    /**
     * @remark :设置默认模板
     * @name   :setModuleTemplate
     * @author :lyh
     * @method :post
     * @time   :2023/6/29 9:39
     */
    public function setPublicTemplate(ATemplateLogic $aTemplateLogic){
        $this->request->validate([
            'template_id'=>['required'],
            'project_id'=>['required'],
        ],[
            'template_id.required' => '模版ID不能为空',
            'project_id.required' => '项目ID不能为空',
        ]);
        $aTemplateLogic->setTemplate();
        $this->response('success');
    }

    /**
     * 提供列表给提单后台, 路由没有任何中间件
     * @param ATemplateLogic $aTemplateLogic
     */
    public function getTemplateList(ATemplateLogic $aTemplateLogic)
    {
        // 验证来源
        $referer = request()->header('referer');
        $referer = parse_url($referer, PHP_URL_HOST);
        if (empty($referer) || false == in_array($referer, ['oa.cmer.com', 'quanqiusou.cn', 'zgjoa.globalso.com'])) {
            $this->response('非法请求',Code::SYSTEM_ERROR, []);
        }
        $filed = ['id','name','status','image','created_at'];
        $this->map['test_model'] = 0;
        $this->map['project_id'] = 0;
        $lists = $aTemplateLogic->aTemplateList($this->map,$this->page,$this->row,$this->order,$filed);
        $data = [];
        if(!empty($lists) && !empty($lists['list'])){
            foreach ($lists['list'] as $k => $v){
                $v['image_link'] = getImageUrl($v['image']);
                $data[] = $v;
            }
        }
        $lists['data'] = $data;
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * 提供模板内容给提单后台, 路由没有任何中间件
     * @param ATemplateLogic $aTemplateLogic
     */
    public function getTemplateDetail(ATemplateLogic $aTemplateLogic)
    {
        // 验证来源
        $referer = request()->header('referer');
        $referer = parse_url($referer, PHP_URL_HOST);
        if (empty($referer) || false == in_array($referer, ['oa.cmer.com', 'quanqiusou.cn', 'zgjoa.globalso.com'])) {
            $this->response('非法请求',Code::SYSTEM_ERROR, []);
        }
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $info = $aTemplateLogic->aTemplateRead();
        $common = $aTemplateLogic->getHeadFooterList();
        foreach ($common as $v) {
            $info[$v['key']] = $v['values'];
        }
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :私有公共模板
     * @name   :getProjectPublicTemplate
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:34
     */
    public function getProjectPublicTemplate(ATemplateLogic $aTemplateLogic){
        $filed = ['id','name','image','url','status','sort','deleted_status','test_model','created_at','project_id'];
        $this->map['project_id'] = ['!=',0];
        $lists = $aTemplateLogic->aTemplateList($this->map,$this->page,$this->row,$this->order,$filed);
        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);
    }

}