$token]); } /** * @inheritdoc */ public function getId() { return self::getIdFromSession(); } /** * @inheritdoc */ public function getAuthKey() { return ''; } /** * @inheritdoc */ public function validateAuthKey($authKey) { return true; } /** * Validates password * * @param string $password password to validate * @return bool if password provided is valid for current user */ public function validatePassword($password) { return true ;//Yii::$app->security->validatePassword($password, $this->password_hash); } /** * Generates password hash from password and sets it to the model * * @param string $password */ public function setPassword($password) { $this->password_hash = Yii::$app->security->generatePasswordHash($password); } /** * Generates new password reset token */ public function generatePasswordResetToken() { $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time(); } /** * @return mixed|null */ protected static function getIdFromSession() { if (null === self::$id){ $user = Yii::$app->getUser(); $session = Yii::$app->getSession(); $id = $session->getHasSessionId() || $session->getIsActive() ? $session->get($user->idParam) : null; self::$id = $id; } return self::$id; } /* ----------- 以下用于登录和 ------------*/ /** * @param $mobile * @return stdClass */ public static function login($mobile) { $e = new stdClass(); $e->success = false; $e->message = ''; $where = ['mobile' => $mobile]; $userEntity = UserModel::findOne($where); if (empty($userEntity)) { $e->message = '该手机未注册, 请先注册了再来登录'; return $e; } if (User::STATUS_APPROVE != $userEntity->status) { $phone = Yii::$app->params['SERVICE_PHONE']; $e->message = '该账号还在审核中,请联系'.$phone; return $e; } //$userEntity 必须是 app\wx\models\User if(Yii::$app->getUser()->login($userEntity, 7000)) { PhoneCodeHelper::removeLoginCode($mobile); $e->message = '登录成功'; $e->success = true; } else { $e->message = '登录失败'; } return $e; } /** * 获取登录验证码 * @param $mobile * @return stdClass */ public static function getLoginVCode($mobile) { $e = new stdClass(); $e->success = false; $e->code = ''; $userInfo = UserModel::findOne(['mobile' => $mobile]); if (empty($userInfo)) { $e->message = '登录失败,该手机未注册'; return $e; } $code = PhoneCodeHelper::getLoginCode($mobile); $sms = new SmsMessage(); if ($code) { // 发送短信 $sms->sendLoginCode($mobile, $code); $e->message = '您的登录码已经发送,请注意查收短信!'; } else { $code = PhoneCodeHelper::setLoginCode($mobile); // 发送短信 $sms->sendLoginCode($mobile, $code); $e->message = '您的登录码已经发送,请注意查收短信!'; } $e->success = true; $e->code = $code; return $e; } /** * @param $mobile * @param $rData * @return stdClass */ public static function register($mobile, $rData) { $e = new stdClass(); $e->success = false; // 检查车厂名称是否注册了 // 检查手机号码是否注册了 $userMobile = UserModel::findOne(['mobile' => $mobile]); if ($userMobile) { if (User::STATUS_APPROVE != $userMobile->status) { $phone = Yii::$app->params['SERVICE_PHONE']; $e->message = '该账号还在审核中,请联系'.$phone; } else { $e->message = '该手机号已经注册过维修厂,请更换其他手机号'; } return $e; } $name = $rData['name']; $licensePic = $rData['licensePic']; $uData = [ 'mobile' => $mobile, 'name' => $name, 'user_name' => $mobile ]; $tran = Yii::$app->db->beginTransaction(); try { $userEntity = User::create($uData); $pData = [ 'user_id' => $userEntity->id, 'emergency_contact' => $rData['emergencyContact'], 'emergency_person' => $rData['emergencyPerson'], ]; $userProfile = UserProfile::create($pData); PhoneCodeHelper::removeRegisterCode($mobile); $userUUId = $userEntity->uuid; $licensePicImage = ImageManager::mvUploadImage($licensePic, $userUUId); $headPicImage = ImageManager::mvUploadImage($rData['headPic'], $userUUId); $techChargePicImage = ImageManager::mvUploadImage($rData['techChargePic'], $userUUId); $QAChargePicImage = ImageManager::mvUploadImage($rData['QAChargePic'], $userUUId); $userProfile->license_pic = $licensePicImage[0].$licensePicImage[1]; $userProfile->factory_head_pic = $headPicImage[0].$headPicImage[1]; $userProfile->tech_charge_pic = $techChargePicImage[0].$techChargePicImage[1]; $userProfile->qa_charge_pic = $QAChargePicImage[0].$QAChargePicImage[1]; $userProfile->save(); $tran->commit(); $e->success = true; $e->message = '注册完成,账号审核通过后即可使用'; } catch (Exception $ex) { $tran->rollBack(); Yii::getLogger()->log($ex->getMessage(), Logger::LEVEL_ERROR); $e->message = '注册失败'.$ex->getMessage(); } return $e; } /** * @param $mobile * @return stdClass */ public static function getRegisterVCode($mobile) { $e = new stdClass(); $e->success = false; $e->message = ''; $userModel = UserModel::findOne(['mobile' => $mobile]); $sms = new SmsMessage(); if ($userModel) { $e->message = '该手机号已注册过'; return $e; } $phoneCode = PhoneCodeHelper::getRegisterCode($mobile); if ($phoneCode) { $code = $phoneCode; //发送短信 $sms->sendRegCode($mobile, $code); $e->message = '您的注册码已经发送,请注意查收短信!'; $e->code = $code; } else { $code = PhoneCodeHelper::setRegisterCode($mobile); //发送短信 $sms->sendRegCode($mobile, $code); $e->message = '您的注册码已经发送,请注意查收短信!'; $e->code = $code; } return $e; } }