UserTransformer.php 2.9 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 数据转换层: 用户 转换类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Transformers\User
 * @package   App\Transformers\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2020年12月28日10:48:57
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Transformers\User;

use App\Models\User\Role;
use App\Models\User\User;
use App\Models\User\WalletRecord;
use App\Transformers\BaseTransformer;
use Illuminate\Support\Arr;

/**
 * Class UserTransformer.
 *
 * @category  App\Transformers\User
 * @package   App\Transformers\User
 * @author    Richer <yangzi1028@163.com>
 * @date      2020年12月28日10:48:57
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class UserTransformer extends BaseTransformer
{
    /**
     * Transform the User entity.
     *
     * @param User $model
     *
     * @return array
     */
    public function transform(User $model)
    {
        $output =  [
            'id'            => (int) $model->id,
//            'username'      => (string)$model->username,
//            'name'          => (string)$model->name,
            'nickname'      => (string)$model->nickname,
            'avatar'        => (string)$model->avatar,
            'mobile'        => (string)$model->mobile,
            'gender'        => (int)$model->gender,
            'gender_show'   => (string)$model->gender_show,
            'times'         => (int)$model->times,
            'status'        => (int)$model->status,
            'status_show'     => (string)$model->status_show,
            'last_login_ip' => (string)$model->last_login_ip,
            'login_times'   => (int)$model->login_times,
            'last_login_time'    => format_date($model->last_login_time),
            'invite_qr_code'        => (string)$model->invite_qr_code,
            'registered_at'    => format_date($model->registered_at),
            'created_at'    => format_date($model->created_at),
            'updated_at'    => format_date($model->updated_at),
        ];

        if (request('user_id')) {
            if ($model->pid == request('user_id')) {
                $output['level'] = 1;
                $output['level_show'] = __(Arr::get(WalletRecord::EVENT_OPTIONS, WalletRecord::DIRECT));
            } elseif ($model->gid == request('user_id')) {
                $output['level'] = 2;
                $output['level_show'] = __(Arr::get(WalletRecord::EVENT_OPTIONS, WalletRecord::INDIRECT));
            }
        }

        return $output;
    }
}