|
|
@@ -61,93 +61,12 @@ class MemberService extends BaseService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 账号登录
|
|
|
- * @param $params
|
|
|
- * @return array|false
|
|
|
- */
|
|
|
- public function login($params)
|
|
|
- {
|
|
|
- // 账号登录
|
|
|
- $mobile = isset($params['mobile']) ? $params['mobile'] : '';
|
|
|
- $password = isset($params['password']) ? $params['password'] : '';
|
|
|
- if (empty($params) || empty($mobile) || empty($password)) {
|
|
|
- $this->error = 1041;
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 验证是否注册,没有则注册
|
|
|
- $data = $this->model->where(['mobile' => $mobile, 'mark' => 1])->select(['id', 'mobile', 'user_type', 'password', 'nickname', 'code', 'status'])->first();
|
|
|
- $data = $data ? $data->toArray() : [];
|
|
|
- $userId = isset($data['id']) ? $data['id'] : 0;
|
|
|
- $status = isset($data['status']) ? $data['status'] : 0;
|
|
|
- $userPassword = isset($data['password']) ? $data['password'] : '';
|
|
|
- if (empty($data) || $userId <= 0) {
|
|
|
- $this->error = 2014;
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if ($status == 3) {
|
|
|
- $this->error = 2050;
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if ($status != 1) {
|
|
|
- $this->error = 2015;
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 验证登录密码
|
|
|
- if (empty($userPassword) || $userPassword != get_password($password)) {
|
|
|
- $this->error = 2017;
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 更新
|
|
|
- if (!RedisService::get("caches:members:login_{$userId}")) {
|
|
|
- $system = isset($params['system']) ? $params['system'] : [];
|
|
|
- $system = $system && !is_array($system) ? json_decode($system, true) : $system;
|
|
|
- $appSources = isset($system['app_sources']) && $system['app_sources'] ? $system['app_sources'] : 'ios';
|
|
|
- $uuid = isset($system['uuid']) ? $system['uuid'] : '';
|
|
|
- $version = isset($system['app_version']) ? $system['app_version'] : '';
|
|
|
- $updateData = [
|
|
|
- 'update_time' => time(),
|
|
|
- 'login_ip' => get_client_ip(),
|
|
|
- 'login_time' => time(),
|
|
|
- 'device_code' => $uuid,
|
|
|
- 'login_count' => DB::raw("login_count+1"),
|
|
|
- 'app_version' => $version,
|
|
|
- 'device' => $appSources == 'ios' ? 1 : 2,
|
|
|
- ];
|
|
|
- $this->model->where(['id' => $userId])->update($updateData);
|
|
|
- RedisService::set("caches:members:login_{$userId}", $updateData, rand(300, 600));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- // 获取登录授权token
|
|
|
- $token = JwtService::make()->encode($userId);
|
|
|
-
|
|
|
- // 结果返回
|
|
|
- $result = [
|
|
|
- 'access_token' => $token,
|
|
|
- 'info' => ['uid' => $userId, 'nickname' => $data['nickname']],
|
|
|
- ];
|
|
|
-
|
|
|
- // 用户缓存信息
|
|
|
- $this->error = 2019;
|
|
|
- $data['token'] = $token;
|
|
|
- unset($data['password']);
|
|
|
- unset($data['mobile']);
|
|
|
- RedisService::set("auths:info:{$userId}", $data, 24 * 3600);
|
|
|
- return $result;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
* 授权登录
|
|
|
* @param $code
|
|
|
* @param array $params
|
|
|
* @return array|false
|
|
|
*/
|
|
|
- public function mpAuth($code, $params = [])
|
|
|
+ public function login($code, $params = [])
|
|
|
{
|
|
|
// 账号登录
|
|
|
if (empty($code)) {
|
|
|
@@ -155,20 +74,7 @@ class MemberService extends BaseService
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 获取授权用户信息
|
|
|
- $phone = '';
|
|
|
- $pcode = isset($params['pcode']) ? $params['pcode'] : '';
|
|
|
- if ($pcode) {
|
|
|
- $phoneData = MpService::make()->getPhoneNumber($pcode);
|
|
|
- $phoneData = isset($phoneData['phone_info']) ? $phoneData['phone_info'] : [];
|
|
|
- $phone = isset($phoneData['phoneNumber']) ? $phoneData['phoneNumber'] : '';
|
|
|
- }
|
|
|
-
|
|
|
- if (empty($phone)) {
|
|
|
- $this->error = MpService::make()->getError();
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
+ // 获取用户信息
|
|
|
$userInfo = MpService::make()->getUserInfo($code);
|
|
|
$openid = isset($userInfo['openid']) ? $userInfo['openid'] : '';
|
|
|
if (empty($userInfo)) {
|
|
|
@@ -181,8 +87,11 @@ class MemberService extends BaseService
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ $nickname = '';
|
|
|
+ $avatar = '';
|
|
|
+
|
|
|
// 验证是否注册,没有则注册
|
|
|
- $where = ['mobile' => $phone];
|
|
|
+ $where = ['openid' => $openid];
|
|
|
$data = $this->model->where($where)
|
|
|
->select(['id', 'openid', 'mobile', 'user_type', 'nickname', 'avatar', 'code', 'status', 'mark'])
|
|
|
->first();
|
|
|
@@ -221,14 +130,14 @@ class MemberService extends BaseService
|
|
|
|
|
|
|
|
|
$data = [
|
|
|
- 'nickname' => $phone ? '用户' . substr($phone, -6, 6) : '用户' . $userId,
|
|
|
+ 'nickname' => $nickname,
|
|
|
'openid' => $openid,
|
|
|
- 'mobile' => $phone,
|
|
|
- 'avatar' => '',
|
|
|
+ 'mobile' => '',
|
|
|
+ 'avatar' => $avatar,
|
|
|
'parent_id' => $rid,
|
|
|
'parents' => $parents,
|
|
|
'code' => get_random_code(9, 'S', $userId),
|
|
|
- 'password' => $phone ? get_password(substr($phone, -6, 6)) : get_password('123456'),
|
|
|
+ 'password' => get_password('a123456'),
|
|
|
'login_ip' => get_client_ip(),
|
|
|
'create_time' => time(),
|
|
|
'login_time' => time(),
|
|
|
@@ -258,10 +167,10 @@ class MemberService extends BaseService
|
|
|
}
|
|
|
|
|
|
if ($mark == 0) {
|
|
|
- $data['mobile'] = $phone;
|
|
|
+ $data['nickname'] = $nickName;
|
|
|
+ $data['avatar'] = $avatar;
|
|
|
+ $data['mobile'] = '';
|
|
|
$data['openid'] = $openid;
|
|
|
- $avatar = '';
|
|
|
- $nickName = '';
|
|
|
}
|
|
|
$this->model->where(['id' => $userId])->update($updateData);
|
|
|
RedisService::set("caches:members:login_{$userId}", $updateData, rand(30, 60));
|
|
|
@@ -284,6 +193,24 @@ class MemberService extends BaseService
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public function bindPhone()
|
|
|
+ {
|
|
|
+
|
|
|
+ // 获取手机号信息
|
|
|
+ $phone = '';
|
|
|
+ $pcode = isset($params['pcode']) ? $params['pcode'] : '';
|
|
|
+ if ($pcode) {
|
|
|
+ $phoneData = MpService::make()->getPhoneNumber($pcode);
|
|
|
+ $phoneData = isset($phoneData['phone_info']) ? $phoneData['phone_info'] : [];
|
|
|
+ $phone = isset($phoneData['phoneNumber']) ? $phoneData['phoneNumber'] : '';
|
|
|
+ }
|
|
|
+
|
|
|
+ if (empty($phone)) {
|
|
|
+ $this->error = MpService::make()->getError();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
/**
|
|
|
* 重置密码
|
|
|
* @param $params
|