123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- namespace addons\exam\model;
- use addons\exam\enum\UserStatus;
- use app\common\library\Auth;
- use fast\Random;
- class UserModel extends BaseModel
- {
- // 表名
- protected $name = 'user';
- // 开启自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- // /**
- // * 登录并返回token
- // * @param $username
- // * @param $password
- // * @param $user_type
- // * @return string
- // */
- // public static function login($username, $password, $user_type)
- // {
- // $username = "{$user_type}-$username";
- // if (!$user = self::where('username', $username)->find()) {
- // api_fail('登录账号或密码错误');
- // }
- // if ($user['password'] != Auth::instance()->getEncryptPassword($password, $user['salt'])) {
- // api_fail('登录账号或密码错误');
- // }
- //
- // Auth::instance()->direct($user['id']);
- // return Auth::instance()->getToken();
- // }
- /**
- * 当前登录用户信息
- * @return Auth|null
- */
- public static function info()
- {
- if (Auth::instance()->isLogin()) {
- return Auth::instance();
- }
- return null;
- }
- /**
- * 快速注册用户
- * @param string $username
- * @param string $nickname
- * @param string $avatar
- * @param int $gender
- * @param string $password
- * @param string $mobile
- * @return UserModel
- */
- public static function fastRegister(string $username, string $nickname = '', string $avatar = '', int $gender = 0, string $password = '', string $mobile = '')
- {
- if (self::where('username', $username)->count()) {
- fail('该账号已被注册');
- }
- // 不严格要求可以去除
- // if ($mobile && self::where('mobile', $mobile)->count()) {
- // fail('该手机号码已被绑定');
- // }
- $salt = Random::alnum();
- return self::create([
- 'username' => $username,
- 'mobile' => $mobile,
- 'email' => $mobile . '@qq.com',
- 'salt' => $salt,
- 'password' => Auth::instance()->getEncryptPassword($password ?: $username, $salt),
- 'nickname' => $nickname,
- 'avatar' => $avatar,
- 'gender' => $gender,
- 'status' => UserStatus::NORMAL,
- 'logintime' => time(),
- ]);
- }
- /**
- * 是否必须绑定手机号
- * @param $user
- * @return void
- */
- public static function isMustBindMobile($user)
- {
- $system_config = getConfig('system_config');
- $bind_mobile = $system_config['bind_mobile'] ?? 0;
- if ($bind_mobile == 2 && (!isset($user['mobile']) || !$user['mobile'])) {
- fail('请先绑定手机号');
- }
- }
- /************************** 关联关系 **************************/
- public function agent()
- {
- return $this->hasOne(\app\admin\model\juhepay\AgentModel::class, 'user_id', 'id');
- }
- public function shop()
- {
- return $this->hasOne(\app\admin\model\juhepay\ShopModel::class, 'user_id', 'id');
- }
- }
|