123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?php
- namespace api\modules\v1\controllers;
- use common\models\Customer;
- use common\models\User;
- use yii\rest\ActiveController;
- use common\library\Apireturn;
- use yii;
- class UserController extends ActiveController
- {
- public $modelClass = 'common\models\User';
- //注册步骤1
- public function actionRegister()
- {
- $username =Yii::$app->request->post('username');
- $code =Yii::$app->request->post('code');
- if(empty($username)||empty($code))
- {
- return Apireturn::sent(1,'参数错误');
- }
- if(!User::is_tel($username))
- {
- return Apireturn::sent(1,'请输入正确的手机号');
- }
- $count = User::find()->where(array('username'=>$username))->count();
- if($count>0)
- {
- return Apireturn::sent(1,'手机号已存在');
- }
- //判断验证码是否正确
- $result = TelcodeController::existCode($username,TelcodeController::TYPE_REGISTER,$code);
- if($result==false)
- {
- return Apireturn::sent(1,'验证码错误');
- }
- return Apireturn::sent(0,'验证通过');
- }
- //注册步骤2 确认密码
- public function actionRegister2()
- {
- $username =Yii::$app->request->post('username');
- $password =Yii::$app->request->post('password');
- $password2 =Yii::$app->request->post('password2');
- $recommend =Yii::$app->request->post('recommend');
- if(empty($username)||empty($password)||empty($password2))
- {
- return Apireturn::sent(1,'参数错误');
- }
- if(!User::is_tel($username))
- {
- return Apireturn::sent(1,'请输入正确的手机号');
- }
- if(!User::is_pwd($password))
- {
- return Apireturn::sent(1,'请输入6到16位的密码');
- }
- if($password!=$password2)
- {
- return Apireturn::sent(1,'两次密码输入不一致');
- }
- if(User::find()->where(['username'=>$username])->count()>0)
- {
- return Apireturn::sent(1,'账号已经存在');
- }
- //添加用户
- $model = new User();
- $model->username=$username;
- //添加推荐人信息
- if(!empty($recommend)){
- $recommendname = User::find()->where(['id'=>$recommend,'role'=>User::ROLE_CUSTOMER])->one();
- if(!empty($recommendname)){
- $model->recommendation=isset($recommendname->username)?$recommendname->username:'';
- }
- }
- $model->setPassword($password);
- $model->generateAuthKey();
- $model->role = User::ROLE_CUSTOMER;
- $model->created_at = time();
- if($model->save()){
- $customer = new Customer();
- $customer->uid = $model->id;
- $customer->updated_at = time();
- $customer->save();
- return Apireturn::sent(0,'注册成功');
- }else{
- return Apireturn::sent(1,'注册失败');
- }
- }
- //登录
- public function actionLogin()
- {
- $username = Yii::$app->request->post('username');
- $password = Yii::$app->request->post('password');
- if(empty($username)||empty($password))
- {
- return Apireturn::sent(1,'参数错误',200);
- }
- $user = User::find()->where(array('username'=>$username))->one();
- if(empty($user))
- {
- return Apireturn::sent(1,'用户不存在',200);
- }
- if($user->status==User::STATUS_DELETED)
- {
- return Apireturn::sent(1,'用户被删除',200);
- }
- if($user->role!=User::ROLE_CUSTOMER)
- return Apireturn::sent(1,'账号类型不是用户',200);
- if(!Yii::$app->getSecurity()->validatePassword($password,$user->password_hash))
- {
- return Apireturn::sent(1,'密码错误',200);
- }
- $access_token = md5($user->id.$user->auth_key.time());
- $user->access_token = $access_token;
- if($user->save())
- {
- return Apireturn::sent(0,'登录成功',200,array('token'=>$access_token));
- }else{
- return Apireturn::sent(1,'登录失败',200);
- }
- }
- //找回密码 1
- public function actionFindpass()
- {
- $username =Yii::$app->request->post('username');
- $code =Yii::$app->request->post('code');
- if(empty($username)||empty($code))
- {
- return Apireturn::sent(1,'参数错误');
- }
- $count = User::find()->where(array('username'=>$username))->count();
- if($count==0)
- {
- return Apireturn::sent(1,'手机号未注册');
- }
- //判断验证码是否正确
- $result = TelcodeController::existCode($username,TelcodeController::TYPE_FIND,$code);
- if($result==false)
- {
- return Apireturn::sent(1,'验证码错误');
- }
- return Apireturn::sent(0,'验证通过');
- }
- //找回密码 2
- public function actionFindpass2()
- {
- $username =Yii::$app->request->post('username');
- $password =Yii::$app->request->post('password');
- $password2 =Yii::$app->request->post('password2');
- if(empty($username)||empty($password)||empty($password2))
- {
- return Apireturn::sent(1,'参数错误');
- }
- $user = User::find()->where(array('username'=>$username))->one();
- if(empty($user))
- {
- return Apireturn::sent(1,'用户不存在');
- }
- if($password!=$password2)
- {
- return Apireturn::sent(1,'两次密码不一致');
- }
- if(!User::is_pwd($password))
- {
- return Apireturn::sent(1,'请输入6到16位的密码');
- }
- $user->password_hash = Yii::$app->security->generatePasswordHash($password);
- $user->updated_at = time();
- if($user->save())
- {
- return Apireturn::sent(0,'重置成功');
- }else{
- return Apireturn::sent(1,'重置密码失败');
- }
- }
- }
|