BSetting.php 2.2 KB
<?php

namespace App\Models\Template;

use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;

/**
 * 当前用户的模板
 * @author:dc
 * @time 2023/5/9 15:03
 * Class BSetting
 * @package App\Models\Template
 */
class BSetting extends \App\Models\Base{



    protected $table = 'gl_web_setting_template';



    /**
     * b 端调用
     * @param int $limit
     * @return mixed
     * @author:dc
     * @time 2023/5/9 14:14
     */
    public static function _get(int $project_id)
    {
        $data = static::where('project_id',$project_id)->first();

        if($data){
            return [
                'template_id'   =>    $data['template_id'],
                'time'  =>  $data['updated_at']
            ];
        }

        // 米有数据
        // 读取默认的模板
        $temp = ATemplate::_default();
        // 保存
        self::_save($project_id,$temp['id']);

        return [
            'template_id'   =>    $temp['id'],
            'time'  =>  date('Y-m-d H:i:s')
        ];
    }


    /**
     * 模板保存
     * @param int $project_id
     * @param int $template_id
     * @return mixed
     * @author:dc
     * @time 2023/5/9 15:13
     */
    public static function _save(int $project_id, int $template_id)
    {

        $data = static::where('project_id',$project_id)->first();
        if(!$data){
            $data = new static();
            $data->project_id = $project_id;
        }

        $data->template_id = $template_id;

        $data->save();

        // 是否有模板
        if(!BTemplate::_isExist($project_id,$template_id)){
            // 没有模板
            $aData = ATemplate::_find($template_id);
            // 保存到自己的数据中
            BTemplate::_insert($project_id,$aData);

            $aDataHtml  =   ATemplateHtml::_all($template_id);
            DB::beginTransaction();
            foreach ($aDataHtml as $item){
                try {
                    BTemplateHtml::_insert($project_id,$item);
                }catch (\Throwable $e){
                    DB::rollBack();

                    return $data->id;
                    break;
                }

            }
            DB::commit();
        }

        return $data->id;

    }




}