UserGroupObserver.php 2.2 KB
<?php
/**
 * +-----------------------------------------------------------------------------------------------------------------------
 * 观察者层:UserWallet 处理业务逻辑
 * +-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Observers\User
 * @package   App\Observers\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2022年5月17日17:42:34
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Observers\User;

use App\Models\User\User;
use App\Models\User\Group as Model;

/**
 * Class UserGroupObserver.
 *
 * @category  App\Observers\User
 * @package   App\Observers\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2023年2月20日16:12:47
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class UserGroupObserver
{
    /**
     * 监听数据即将创建的事件。
     *
     * @param Model $model
     * @return void
     */
    public function creating(Model $model)
    {
        //
    }

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

    }

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

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

    /**
     * 监听数据保存后的事件。
     *
     * @param Model $model
     * @return void
     */
    public function saved(Model $model)
    {
        // 保存成功设置相关的参数
        $user_id_o = $model->getOriginal('user_id');
        $user_id_n = $model->getAttribute('user_id');
        if ($user_id_o !== $user_id_n) {
            User::where('id', $user_id_n)->update(['group_id' => $model->id]);
            User::where('id', $user_id_o)->update(['group_id' => 0]);
        }
    }
}