BTemplateLogController.php 4.2 KB
<?php
/**
 * @remark :
 * @name   :BTemplateLogController.php
 * @author :lyh
 * @method :post
 * @time   :2023/8/23 10:42
 */

namespace App\Http\Controllers\Bside\Template;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\BTemplate\BTemplateLogLogic;
use App\Models\Template\BTemplate;
use App\Models\Template\BTemplateLog;
use App\Models\Template\Setting;
use App\Models\Template\Template;
use App\Models\User\User;

/**
 * @remark :用户编辑模版记录
 * @name   :BTemplateLogController
 * @author :lyh
 * @method :post
 * @time   :2023/8/23 10:42
 */
class BTemplateLogController extends BaseController
{
    /**
     * @remark :获取操作记录
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2023/8/23 11:05
     */
    public function lists(BTemplateLog $bTemplateLog){
        $field = ['id','template_id','operator_id','source','created_at','updated_at'];
        $lists = $bTemplateLog->lists(['source'=>BTemplate::SOURCE_HOME,'is_custom'=>BTemplate::IS_NO_CUSTOM],$this->page,$this->row,$this->order,$field);
        if(!empty($lists['list'])){
            $templateModel = new Template();
            $userModel = new User();
            foreach ($lists['list'] as $k => $v){
                if(!empty($v['template_id'])){
                    $template_name = $templateModel->read(['id'=>$v['template_id']],['name']);
                    $v['template_name'] = $template_name !== false ? $templateModel['name'] : '';
                }
                $v['operator_name'] = $userModel->getName($v['operator_id']);
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :根据页面数据ID获取当前数据的装修记录
     * @name   :getSourceLogLists
     * @author :lyh
     * @method :post
     * @time   :2024/5/15 9:12
     */
    public function getSourceLogLists(BTemplateLog $bTemplateLog){
        $this->request->validate([
            'source'=>['required'],
            'source_id'=>['required'],
        ],[
            'source'=>'对应数据类型不能为空',
            'source_id.required' => '当前数据ID不能为空',
        ]);
        $is_custom = $this->param['is_custom'] ?? 0;
        $bSettingModel = new Setting();
        $settingInfo = $bSettingModel->read(['project_id'=>$this->user['project_id']]);
        if($settingInfo === false){
            $this->response('请先选择模版',Code::SYSTEM_ERROR);
        }
        $this->map = ['source'=>$this->param['source'],'source_id'=>$this->param['source_id'],'is_custom'=>$is_custom,'template_id'=>$settingInfo['template_id']];
        $lists = $bTemplateLog->lists($this->map,$this->page,$this->row,$this->order,['id','template_id','operator_id','source','source_id','created_at','updated_at']);
        if(!empty($lists['list'])){
            $templateModel = new Template();
            $userModel = new User();
            foreach ($lists['list'] as $k => $v){
                if(!empty($v['template_id'])){
                    $v['template_name'] = $templateModel->read(['id'=>$v['template_id']],['name'])['name'];
                }
                $v['operator_name'] = $userModel->getName($v['operator_id']);
                $lists['list'][$k] = $v;
            }
        }
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :获取数据详情
     * @name   :info
     * @author :lyh
     * @method :post
     * @time   :2023/9/19 14:41
     */
    public function info(BTemplateLogLogic $logic){
        $this->request->validate([
            'id'=>['required'],
        ],[
            'id.required' => '模版ID不能为空',
        ]);
        $info = $logic->templateLogInfo();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :回滚版本
     * @name   :rollbackVersion
     * @author :lyh
     * @method :post
     * @time   :2023/8/23 11:52
     */
    public function rollbackVersion(BTemplateLogLogic $logic){
        $this->request->validate([
            'id'=>['required'],
        ],[
            'id.required' => '模版ID不能为空',
        ]);
        $logic->saveRollbackVersion();
        $this->response('success');
    }
}