SystemSettingObserver.php 3.7 KB
<?php
/**
 * +-----------------------------------------------------------------------------------------------------------------------
 * 观察者层:SystemSetting 处理业务逻辑
 * +-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Observers\System
 * @package   App\Observers\System
 * @author    Richer <yangzi1028@163.com>
 * @date      2022年7月26日11:02:58
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Observers\System;

use App\Jobs\User\UserUpdated;
use App\Models\System\SystemSetting as Model;
use App\Models\System\SystemSettingRemote;
use App\Models\Traits\SystemSettingTrait;

/**
 * Class SystemSettingObserver
 *
 * @category  App\Observers\System
 * @package   App\Observers\System
 * @author    Richer <yangzi1028@163.com>
 * @date      2022年7月26日11:02:58
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class SystemSettingObserver
{
    use SystemSettingTrait;
    /**
     * 监听数据即将创建的事件。
     *
     * @param Model $model
     * @return void
     */
    public function creating(Model $model)
    {
        // 设置缓存
        $this->getSystemSetting('update', $model);
    }

    /**
     * 监听数据创建后的事件。
     *
     * @param Model $model
     * @return void
     */
    public function created(Model $model)
    {
        //
    }

    /**
     * 监听数据即将更新的事件。
     *
     * @param Model $model
     * @return void
     */
    public function updated(Model $model)
    {
        // 更新缓存
        $this->getSystemSetting('update', $model);
        // 同步
//        $modelRemote = SystemSettingRemote::find($model->id);
        $is_updated = false;
        $update = [];
        $consumption_times =  $model->consumption_times;
        $consumption_times_orig =  $model->getOriginal('consumption_times');
        if ($consumption_times != $consumption_times_orig) {
            $is_updated = true;
            $update['consumption_times']  = $consumption_times;
//            $modelRemote->consumption_times = $consumption_times;
        }
        $context_timeout = $model->context_timeout;
        $context_timeout_orig =  $model->getOriginal('context_timeout');
        if ($context_timeout != $context_timeout_orig) {
            $is_updated = true;
            $update['context_timeout']  = $context_timeout;
//            $modelRemote->context_timeout = $context_timeout;
        }

        $start_statement = $model->start_statement;
        $start_statement_orig =  $model->getOriginal('start_statement');
        if ($start_statement != $start_statement_orig) {
            $is_updated = true;
            $update['start_statement']  = $start_statement;
//            $modelRemote->start_statement = $start_statement;
        }

        if ($is_updated === true) {
            SystemSettingRemote::where('id', $model->id)->update($update);
//            $modelRemote->save();
        }
    }

    /**
     * 监听数据即将保存的事件。
     *
     * @param Model $model
     * @return void
     */
    public function saving(Model $model)
    {
    }

    /**
     * 监听数据保存后的事件。
     *
     * @param Model $model
     * @return void
     */
    public function saved(Model $model)
    {
        //
    }

    /**
     * 监听数据删除后的事件。
     *
     * @param Model $model
     * @return void
     */
    public function deleted(Model $model)
    {
        // 更新缓存
        $this->getSystemSetting('update');
    }
}