|
|
@@ -83,22 +83,63 @@ class MemberService extends BaseService
|
|
|
}
|
|
|
|
|
|
// 验证是否注册,没有则注册
|
|
|
- $where = ['openid' => $openid];
|
|
|
+ $where = ['openid' => $openid,'mark'=>1];
|
|
|
$data = $this->model->where($where)
|
|
|
->select(['id', 'openid', 'mobile', 'user_type', 'nickname', 'avatar', 'code', 'status', 'mark'])
|
|
|
->first();
|
|
|
$data = $data ? $data->toArray() : [];
|
|
|
$userId = isset($data['id']) ? $data['id'] : 0;
|
|
|
$status = isset($data['status']) ? $data['status'] : 0;
|
|
|
+ $mobile = isset($data['mobile']) ? $data['mobile'] : '';
|
|
|
$nickname = isset($data['nickname']) ? $data['nickname'] : '';
|
|
|
$avatar = isset($data['nickname']) ? $data['avatar'] : '';
|
|
|
- $mark = isset($data['mark']) ? $data['mark'] : 0;
|
|
|
- if($data && ($status!= 1 && $mark == 1)){
|
|
|
+ if($data && $status!= 1){
|
|
|
$this->error = '账号已被冻结,请联系客服~';
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- return ['uid'=>$userId,'has_info'=>($nickname && $avatar && $mark==1)? true: false, 'openid'=>$openid];
|
|
|
+ // 未注册或未完善资料
|
|
|
+ if(empty($data)){
|
|
|
+ return ['info'=>['uid'=>$userId,'has_info'=>($nickname && $avatar)? true: false, 'openid'=>$openid,'mobile'=>$mobile]];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 已注册
|
|
|
+ $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'] : '';
|
|
|
+ if (!RedisService::get("caches:members:login_{$userId}")) {
|
|
|
+ $updateData = [
|
|
|
+ 'login_ip' => get_client_ip(),
|
|
|
+ 'login_time' => time(),
|
|
|
+ 'app_uuid' => $uuid,
|
|
|
+ 'login_count' => DB::raw("login_count+1"),
|
|
|
+ 'app_version' => $version,
|
|
|
+ 'device' => $appSources == 'ios' ? 1 : 2,
|
|
|
+ 'mark' => 1,
|
|
|
+ ];
|
|
|
+
|
|
|
+ $this->model->where(['id' => $userId])->update($updateData);
|
|
|
+ RedisService::set("caches:members:login_{$userId}", $updateData, rand(30, 60));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取登录授权token
|
|
|
+ $token = JwtService::make()->encode($userId);
|
|
|
+
|
|
|
+ // 结果返回
|
|
|
+ $result = [
|
|
|
+ 'access_token' => $token,
|
|
|
+ 'info' => ['uid' => $userId, 'openid' => $openid, 'mobile' => $mobile],
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 用户缓存信息
|
|
|
+ $this->error = 2019;
|
|
|
+ $data['token'] = $token;
|
|
|
+ unset($data['mobile']);
|
|
|
+ RedisService::keyDel("caches:members:teamList*");
|
|
|
+ RedisService::set("auths:info:{$userId}", $data, 24 * 3600);
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -110,6 +151,7 @@ class MemberService extends BaseService
|
|
|
public function login($code, $params = [])
|
|
|
{
|
|
|
$openid = isset($params['openid'])? $params['openid'] : '';
|
|
|
+ $mobile = isset($params['mobile'])? $params['mobile'] : '';
|
|
|
$avatar = isset($params['avatar'])? $params['avatar'] : '';
|
|
|
$nickname = isset($params['nickname'])? $params['nickname'] : '';
|
|
|
|
|
|
@@ -118,9 +160,9 @@ class MemberService extends BaseService
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 账号登录
|
|
|
- if (empty($code)) {
|
|
|
- $this->error = 1041;
|
|
|
+ // 手机号
|
|
|
+ if ($mobile && empty($code)) {
|
|
|
+ $this->error = '请先授权获取手机号';
|
|
|
return false;
|
|
|
}
|
|
|
|