From d7b391940ea9c589e0c5d3ccde8d659996f438a3 Mon Sep 17 00:00:00 2001 From: Devil Date: Wed, 19 May 2021 15:10:00 +0800 Subject: [PATCH] =?UTF-8?q?api=E6=8E=A5=E5=8F=A3=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/User.php | 67 ++++++++++++++++++++++++++- application/service/UserService.php | 70 ++++++++++++++++++++++------- 2 files changed, 120 insertions(+), 17 deletions(-) diff --git a/application/api/controller/User.php b/application/api/controller/User.php index 966b227ab..b9dd1c4f7 100755 --- a/application/api/controller/User.php +++ b/application/api/controller/User.php @@ -193,9 +193,16 @@ class User extends Common return DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['user_id']]); } + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 标记用户存在 $user['is_user_exist'] = 1; - return DataReturn('授权成功', 0, $user); + return DataReturn('授权登录成功', 0, $user); } return DataReturn($result['msg'], -100); } @@ -232,6 +239,12 @@ class User extends Common $this->data_post['gender'] = empty($this->data_post['gender']) ? 0 : (($this->data_post['gender'] == 'f') ? 1 : 2); return UserService::AuthUserProgram($this->data_post, 'alipay_openid'); } else { + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } return DataReturn('授权成功', 0, $user); } return DataReturn('获取用户信息失败', -100); @@ -266,6 +279,13 @@ class User extends Common return DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['openid'], 'unionid'=>$unionid]); } + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 标记用户存在 $user['is_user_exist'] = 1; return DataReturn('授权登录成功', 0, $user); @@ -318,6 +338,12 @@ class User extends Common $auth_data['referrer']= isset($this->data_post['referrer']) ? $this->data_post['referrer'] : 0; return UserService::AuthUserProgram($auth_data, 'weixin_openid'); } else { + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } return DataReturn('授权成功', 0, $user); } return DataReturn(empty($result['msg']) ? '获取用户信息失败' : $result['msg'], -100); @@ -348,6 +374,13 @@ class User extends Common return DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']]); } + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 标记用户存在 $user['is_user_exist'] = 1; return DataReturn('授权登录成功', 0, $user); @@ -412,6 +445,12 @@ class User extends Common return DataReturn($result['msg'], -1); } } else { + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } return DataReturn('授权成功', 0, $user); } return DataReturn(empty($result['msg']) ? '获取用户信息失败' : $result['msg'], -100); @@ -441,6 +480,13 @@ class User extends Common return DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']]); } + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 标记用户存在 $user['is_user_exist'] = 1; return DataReturn('授权登录成功', 0, $user); @@ -492,6 +538,12 @@ class User extends Common return UserService::AuthUserProgram($result, 'toutiao_openid'); } } else { + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } return DataReturn('授权成功', 0, $user); } return DataReturn(empty($result) ? '获取用户信息失败' : $result, -100); @@ -524,6 +576,13 @@ class User extends Common return DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result]); } + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 标记用户存在 $user['is_user_exist'] = 1; return DataReturn('授权登录成功', 0, $user); @@ -581,6 +640,12 @@ class User extends Common return UserService::AuthUserProgram($result, 'qq_openid'); } } else { + // 用户状态 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] != 0) + { + return $ret; + } return DataReturn('授权成功', 0, $user); } return DataReturn(empty($result) ? '获取用户信息失败' : $result, -100); diff --git a/application/service/UserService.php b/application/service/UserService.php index 0ffcd4662..659f1eca3 100755 --- a/application/service/UserService.php +++ b/application/service/UserService.php @@ -979,7 +979,7 @@ class UserService // 是否需要审核 if($common_register_is_enable_audit == 1) { - return DataReturn('注册成功,请等待审核'); + return DataReturn('用户等待审核中', -110); } // 用户登录session纪录 @@ -1666,6 +1666,12 @@ class UserService $user = self::AppUserInfoHandle(null, $field, $params['openid']); if(!empty($user)) { + // 用户状态 + if($user['status'] != 0) + { + return DataReturn('用户待审核', -301); + } + // 如果是一键登录、如当前用户不存在手机号码则绑定 if(empty($user['mobile']) && !empty($data['mobile']) && $is_onekey_mobile_bind == 1) { @@ -1681,11 +1687,19 @@ class UserService { return DataReturn('绑定成功', 0, self::AppUserInfoHandle($user['id'])); } + } else { + if($user['id'] != $temp['id']) + { + return DataReturn('手机已绑定其他帐号', -1); + } } } return DataReturn('授权成功', 0, $user); } else { + // 是否需要添加用户 + $is_insert_user = false; + // 用户unionid $unionid = self::UserUnionidHandle($params); if(!empty($unionid['field']) && !empty($unionid['value'])) @@ -1694,6 +1708,12 @@ class UserService $user_unionid = self::AppUserInfoHandle(null, $unionid['field'], $unionid['value']); if(!empty($user_unionid)) { + // 用户状态 + if($user_unionid['status'] != 0) + { + return DataReturn('用户待审核', -301); + } + // openid绑定 $upd_data = [ $field => $params['openid'], @@ -1701,13 +1721,18 @@ class UserService ]; // 如果是一键登录、如当前用户不存在手机号码则绑定 - if(empty($user['mobile']) && !empty($data['mobile']) && $is_onekey_mobile_bind == 1) + if(empty($user_unionid['mobile']) && !empty($data['mobile']) && $is_onekey_mobile_bind == 1) { // 手机号码不存在则绑定到当前账号下 $temp = self::AppUserInfoHandle(null, 'mobile', $data['mobile']); if(empty($temp)) { $upd_data['mobile'] = $data['mobile']; + } else { + if($user_unionid['id'] != $temp['id']) + { + return DataReturn('手机已绑定其他帐号', -1); + } } } if(Db::name('User')->where(['id'=>$user_unionid['id']])->update($upd_data)) @@ -1723,13 +1748,7 @@ class UserService // 不强制绑定手机则写入用户信息 if(intval(MyC('common_user_is_mandatory_bind_mobile')) != 1) { - $ret = self::UserInsert($data, $params); - if($ret['code'] == 0) - { - return DataReturn('授权成功', 0, self::AppUserInfoHandle($ret['data']['user_id'])); - } else { - return $ret; - } + $is_insert_user = true; } else { // 强制绑定手机号码、是否一键获取操作绑定 if($is_onekey_mobile_bind == 1 && !empty($data['mobile'])) @@ -1743,21 +1762,40 @@ class UserService $field => $params['openid'], 'upd_time' => time(), ]; + if(!empty($unionid['field']) && !empty($unionid['value'])) + { + $upd_data[$unionid['field']] = $unionid['value']; + } if(Db::name('User')->where(['id'=>$user['id']])->update($upd_data)) { return DataReturn('绑定成功', 0, self::AppUserInfoHandle($user['id'])); } } else { - $ret = self::UserInsert($data, $params); - if($ret['code'] == 0) - { - return DataReturn('绑定成功', 0, self::AppUserInfoHandle($ret['data']['user_id'])); - } else { - return $ret; - } + $is_insert_user = true; } } } + + // 添加用户 + if($is_insert_user) + { + // 是否需要审核 + $common_register_is_enable_audit = MyC('common_register_is_enable_audit', 0); + $data['status'] = ($common_register_is_enable_audit == 1) ? 3 : 0; + + // 添加用户 + $ret = self::UserInsert($data, $params); + if($ret['code'] == 0) + { + // 是否需要审核 + if($common_register_is_enable_audit == 1) + { + return DataReturn('用户等待审核中', -110); + } + return DataReturn('授权成功', 0, self::AppUserInfoHandle($ret['data']['user_id'])); + } + return $ret; + } } return DataReturn('授权成功', 0, self::AppUserInfoHandle(null, null, null, $data)); } -- GitLab