CategoryLabelItemObserver.php 2.7 KB
<?php
/**
 * +-----------------------------------------------------------------------------------------------------------------------
 * 观察者层:CategoryLabelItemObserver
 * +-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Observers\Category
 * @package   App\Observers\Category
 * @author    Richer <yangzi1028@163.com>
 * @date      2023年5月5日10:06:58
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Observers\Category;

use App\Jobs\Category\CategoryLabelCreatedJob;
use App\Models\Category\CategoryLabelItem as Model;
use App\Models\Traits\ChatTrait;

/**
 * Class CategoryLabelItemObserver
 * @package App\Observers
 */
class CategoryLabelItemObserver
{
    use ChatTrait;
    /**
     * 监听数据创建后的事件。
     *
     * @param Model $model
     * @return void
     */
    public function created(Model $model)
    {
        // 创建成功后,同步
        $this->syncCategoryLabelItem( $model);

//        CategoryLabelCreatedJob::dispatch($model);
    }

    /**
     * 监听数据即将更新的事件。
     *
     * @param Model $model
     * @return void
     */
    public function updated(Model $model)
    {
        // 只监控用户的 昵称、头像、token、次数
        $fields = ['name','description','status'];
        $is_updated = false;
        $update = [];
        foreach ($fields as $field) {
            $value = $model->$field;
            $value_orig = $model->getOriginal($field);
            if ($value != $value_orig) {
                $is_updated = true;
                $update[$field]  = $value;
            }
        }
        if ($is_updated === true) {
            $this->syncCategoryLabelItem( $model, 'update', $update);
        }
        //
    }

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

    /**
     * 监听数据删除后的事件。
     *
     * @param Model $model
     * @return void
     */
    public function deleted(Model $model)
    {
        //
        $this->syncCategoryLabel($model, 'delete');
    }

    /**
     * 监听数据即将从软删除状态恢复的事件。
     *
     * @param Model $model
     * @return void
     */
    public function restoring(Model $model)
    {
        //
    }

    /**
     * 监听数据从软删除状态恢复后的事件。
     *
     * @param Model $model
     * @return void
     */
    public function restored(Model $model)
    {
        //
    }
}