Commit 1ff32af9 authored by hujun's avatar hujun

修改用户忘记、注册、编辑

parent 3af59860
......@@ -116,22 +116,27 @@ class Member extends Basic
$message = new MessageUntils();
$_code = mt_rand(1000, 9999) . '';
$result = $message->sendCCPSMS($phone, array($_code, '5分钟'), 214759);
$jwt = new JwtUntils();
$noteLog->phone = $phone;
$noteLog->template_msg = '【同联商业】您的验证码为'.$_code.',请于5分钟内正确输入,如非本人操作,请忽略此短信。';
$noteLog->code = $_code;
$noteLog->is_success = $result['statusCode'] == 0 ? 1 : 2;
$noteLog->send_time = date('Y-m-d H:i:s');
$noteLog->save();
$result['statusCode'] = 1;
if ($result['statusCode'] == 1) {
$jwt = new JwtUntils();
$noteLog->is_success = 1;
$jwt_data['phone'] = $phone;
$jwt_data['code'] = $_code;
Session::set('_code', $_code);
$jwt_data['phone'] = $phone;
$jwt_data['code'] = $_code;
$data['data']['sms_code'] = $_code;
$data['data']['token'] = $jwt->createToken($jwt_data);
$data['msg'] = ($result['statusCode'] == 0) ? '发送短信成功':$result['statusMsg'];
$data['status'] = ($result['statusCode'] == 0) ? 200 : 101;
$data['data']['sms_code'] = $_code;
$data['data']['token'] = $jwt->createToken($jwt_data);
$data['status'] = 200;
$data['msg'] = '发送短信成功';
} else {
$noteLog->is_success = 2;
$data['msg'] = '短信发送失败';
}
$noteLog->save();
}
} else {
$data['msg'] = '手机号码错误';
......@@ -148,140 +153,103 @@ class Member extends Basic
*
* @return type
*/
public function register() {
$result = 0;
if ($this->params['type']) {
$type = $this->params['type'];
//根据不同的类型验证不同的场景
switch ($type) {
case 'add' : $check = 'users.register';
break;
case 'invite' : $check = 'users.invite';
break;
default:
$check = 'users.edit';
break;
}
$result = $this->validate([
'user_phone' => $this->request->param('phone'),
'user_pswd' => $this->request->param('pwd'),
'referrer_id' => $this->request->param('referrer_id'),
'referrer_source' => $this->request->param('referrer_source'),
'code' => $this->request->param('code'),
'user_nick' => $this->request->param('user_nick'),
'token' => $this->request->param('token')
], $check);
} else {
public function register() {
$type = $this->request->param('type');
$phone = $this->request->param('phone');
$pwd = $this->request->param('pwd');
$user_nick = $this->request->param('user_nick');
$user_pic = $this->request->param('user_pic');
if ($type == '') {
return $this->response(101, 'type is null');
}
if (!check_phone($phone)) {
return $this->response(101, '手机号码错误');
}
if ($pwd == '') {
return $this->response(101, '密码为空');
}
if (mb_strlen($pwd) < 6) {
return $this->response(101, '密码少于6位');
}
$phone = $this->request->param('phone');
if ($this->params['token']) {
if ($this->params['token'] && $this->params['type'] != 'register') {
$jwt = new JwtUntils();
$jwt_data = $jwt->getDecode($this->params['token']);
$code = Session::get('_code')? Session::get('_code') : $jwt_data['data']['code'];
$code = $jwt_data['data']['code'];
$jwt_phone = $jwt_data['data']['phone'];
$note = new NoteLog();
$note_data = $note->field('id,code,send_time')->where([
'phone'=> $phone,
'code' => $code,
'is_success'=>1
])->find();
'is_success' => 1,
])->whereTime('send_time', '>',time()-300)->find();
if (time()-strtotime($note_data->send_time) > 18000) {
if (time() - strtotime($note_data->send_time) > 300) {
return $this->response(101, '请重新获取验证码');
}
} else {
return $this->response(101, 'token is null');
}
$data['status'] = 101;
$data['data'] = array();
if (true === $result){
$user_data = $this->user->get(['user_phone' => $this->params['phone']]);
$date = date('Y-m-d H:i:s');
$pwd = md5(md5($this->request->param('pwd')) . '+123');
if (empty($user_data->id)) {
if ($this->request->param('code') == $code && $code != '' && $jwt_phone == $phone) {
$insert_data['referrer_id'] = $this->request->param('referrer_id');
$insert_data['referrer_source'] = $this->request->param('referrer_source');
$insert_data['status'] = 0;
$insert_data['create_time'] = $date;
$insert_data['update_time'] = $date;
$insert_data['last_login_time'] = $date;
$insert_data['last_login_ip'] = ip2long($this->request->ip());
$insert_data['user_phone'] = $phone;
$insert_data['user_pswd'] = $pwd;
$insert_data['user_nick'] = $this->request->param('user_nick');
$insert_data['user_pic'] = $this->request->param('user_pic');
$this->user->save($insert_data); //注册用户
if ($this->user->id) {
$jwt_data['id'] = $this->user->id;
$jwt_data['userNick'] = $insert_data['user_nick'];
$jwt_data['phone'] = $insert_data['user_phone'];
$jwt = new JwtUntils();
$insert_data['AuthToken'] = $jwt->createToken($jwt_data);
$insert_data['id'] = $this->user->id;
Session::set('u_user', $insert_data['data']); //登录
Session::delete('_code'); //销毁验证码
$data['data'] = $insert_data;
$data['msg'] = '注册成功';
$data['status'] = 200;
} else {
$data['status'] = 101;
$data['msg'] = '注册失败';
}
$user_data = $this->user->get(['user_phone' => $this->params['phone']]);
$date = date('Y-m-d H:i:s');
$pwd = md5(md5($pwd) . '+123');
} else {
$data['msg'] = '验证码错误';
}
switch ($type) {
case 'add' :
if (empty($user_data->id)) {
if ($this->request->param('code') == $code && $code != '') {
} else {
$data['msg'] = '该手机号已注册';
}
$user_data->update_time = $date;
//编辑
if ($type == 'edit') {
$user_data->user_nick = $this->request->param('user_nick')? $this->request->param('user_nick') : $user_data->user_nick;
$user_data->user_phone = $this->request->param('phone') ? $this->request->param('phone') : $user_data->user_phone;
$user_data->user_pic = $this->request->param('user_pic') ? $this->request->param('user_pic') : $user_data->user_pic;
$user_data->last_login_ip = $this->request->param('last_login_ip') ? $this->params['last_login_ip'] : $user_data->last_login_ip;
$insert_data['referrer_id'] = $this->request->param('referrer_id');
$insert_data['referrer_source'] = $this->request->param('referrer_source');
$insert_data['status'] = 0;
$insert_data['create_time'] = $date;
// $insert_data['update_time'] = $date;
// $insert_data['last_login_time'] = $date;
// $insert_data['last_login_ip'] = ip2long($this->request->ip());
$insert_data['user_phone'] = $phone;
$insert_data['user_pswd'] = $pwd;
$insert_data['user_nick'] = $user_nick;
$insert_data['user_pic'] = $user_pic;
$this->user->save($insert_data); //注册用户
//修改密码
if ($this->request->param('pwd') == $user_data->user_pswd) {
$user_data->user_pswd = $pwd;
}
if ($this->user->id) {
$jwt_data['id'] = $this->user->id;
$jwt_data['userNick'] = $insert_data['user_nick'];
$jwt_data['phone'] = $insert_data['user_phone'];
$user_data->save();
if ($user_data->id) {
$data['data'] = $user_data; //编辑完返回用户信息
$data['status'] = 200;
$data['msg'] = '修改成功';
$jwt = new JwtUntils();
$insert_data['AuthToken'] = $jwt->createToken($jwt_data);
$insert_data['id'] = $this->user->id;
Session::set('u_user', $insert_data['data']); //登录
Session::delete('_code'); //销毁验证码
$data['data'] = $insert_data;
$data['msg'] = '注册成功';
$data['status'] = 200;
} else {
$data['status'] = 101;
$data['msg'] = '注册失败';
}
} else {
$data['msg'] = '验证码错误';
}
} else {
$data['msg'] = '编辑失败';
$data['msg'] = '该手机号已注册';
}
}
//忘记密码
if ($type == 'forget') {
if ($this->request->param('code') == $code && $code != '' && $jwt_phone == $phone) {
break;
case 'forget' :
if ($code == $this->request->param('code') && $jwt_phone == $phone) {
$user_data->update_time = $date;
$user_data->user_pswd = $pwd;
$user_data->save();
if ($user_data->id) {
$data['data'] = ['id' => $user_data->id];
......@@ -290,16 +258,32 @@ class Member extends Basic
} else {
$data['msg'] = '密码修改失败';
}
} else {
$data['msg'] = '验证码错误';
}
break;
default :
$user_data->update_time = $date;
$user_data->user_nick = $user_nick? $user_nick : $user_data->user_nick;
$user_data->user_phone = $phone ? $phone : $user_data->user_phone;
$user_data->user_pic = $user_pic ? $user_pic : $user_data->user_pic;
//修改密码
if ($pwd == $user_data->user_pswd) {
$user_data->user_pswd = $pwd;
}
$user_data->save();
if ($user_data->id) {
$data['data'] = $user_data; //编辑完返回用户信息
$data['status'] = 200;
$data['msg'] = '修改成功';
} else {
$data['status'] = 101;
$data['msg'] = '修改失败';
$data['msg'] = '编辑失败';
}
}
} else {
$data['msg'] = $result;
break;
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
......
......@@ -79,7 +79,7 @@ class Basic extends Controller
$requestPath = $this->request->routeInfo()["rule"][0]."/".$this->request->routeInfo()["rule"][1];
//过滤掉不需要验证token的接口
if (!in_array(trim($requestPath), $this->filterVerify)) {
// $this->tokenVerify();
$this->tokenVerify();
}
}
......
......@@ -15,7 +15,7 @@ use think\Validate;
class Users extends Validate {
protected $rule = [
'user_phone' => 'require|/^1[34578]{1}\d{9}$/',
'user_phone' => '/^1[34578]{1}\d{9}$/',
'referrer_id' => 'require|number',
'referrer_source' => 'require|number',
'code' => 'require|number',
......@@ -25,7 +25,6 @@ class Users extends Validate {
];
protected $message = [
'user_phone' => '手机号码错误',
'user_phone.require' => '手机号码为空',
'referrer_id.require' => 'referrer_id is null',
'referrer_id.number' => 'referrer_id must be numbers',
'referrer_source.require' => 'referrer_source is null',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment