ATemplateModuleController.php 4.2 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\ATemplateModuleLogic;
use App\Http\Requests\Aside\Template\ATemplateModuleRequest;
use App\Models\Project\Project;
use App\Models\Template\TemplateLabel;
use App\Models\Template\TemplateModule;

/**
 * @remark :左侧模块管理
 * @name   :ATemplateModuleController
 * @author :lyh
 * @time   :2023/6/28 16:54
 */
class ATemplateModuleController extends BaseController
{
    /**
     * @remark :左侧模块列表
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:54
     */
    public function lists(TemplateModule $templateModule){
        $templateLabel = new TemplateLabel();
        $this->map['deleted_status'] = 0;
        $this->searchLabelName($templateLabel);
        $lists = $templateModule->lists($this->map,$this->page,$this->row,$this->order);
        if(!empty($lists) && !empty($lists['list'])){
            foreach ($lists['list'] as $k => $v){
                $v['label'] = $templateLabel->list(['template_id'=>$v['id'],'type'=>2],'id',['id','name'],'desc',5);
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :搜索label
     * @name   :searchLabelName
     * @author :lyh
     * @method :post
     * @time   :2024/6/3 11:11
     */
    public function searchLabelName($templateLabel){
        if(isset($this->map['label_name']) && !empty($this->map['label_name'])){
            $id_arr = $templateLabel->formatQuery(['name'=>['like','%'.$this->map['label_name'].'%'],'type'=>2])->pluck('template_id')->toArray();
            $this->map['id'] = ['in',$id_arr];
            unset($this->map['label_name']);
        }
        return true;
    }


    /**
     * @remark :左侧模块保存
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:55
     */
    public function save(ATemplateModuleRequest $ATemplateModuleRequest,ATemplateModuleLogic $ATemplateModuleLogic){
        $ATemplateModuleRequest->validated();
        $ATemplateModuleLogic->aTemplateModuleSave();
        $this->response('success');
    }


    /**
     * @remark :编辑状态
     * @name   :status
     * @author :lyh
     * @method :post
     * @time   :2023/6/28 16:55
     */
    public function status(ATemplateModuleLogic $ATemplateModuleLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $ATemplateModuleLogic->aTemplateModuleStatus();
        $this->response('success');
    }

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

    /**
     * @remark :添加私有模块时获取项目列表
     * @name   :getProjectList
     * @author :lyh
     * @method :post
     * @time   :2024/1/15 10:18
     */
    public function getProjectList(Project $project){
        $this->map['type'] = ['!=',0];
        $this->map['delete_status'] = 0;
        if(isset($this->map['title']) && !empty($this->map['title'])){
            $this->map['title'] = ['like','%'.$this->map['title'].'%'];
        }
        $list = $project->list($this->map,'id',['id','title']);
        $this->response('success',Code::SUCCESS,$list);
    }

    /**
     * @remark :修改审核状态
     * @name   :auditingStatus
     * @author :lyh
     * @method :post
     * @time   :2024/5/23 16:42
     */
    public function auditingStatus(ATemplateModuleLogic $ATemplateModuleLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $data = $ATemplateModuleLogic->auditingStatus();
        $this->response('success',Code::SUCCESS,$data);
    }
}