|
|
@@ -61,12 +61,12 @@ class MemberService extends BaseService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 授权登录
|
|
|
+ * 验证账号
|
|
|
* @param $code
|
|
|
* @param array $params
|
|
|
* @return array|false
|
|
|
*/
|
|
|
- public function login($code, $params = [])
|
|
|
+ public function check($code, $params = [])
|
|
|
{
|
|
|
// 账号登录
|
|
|
if (empty($code)) {
|
|
|
@@ -89,16 +89,74 @@ class MemberService extends BaseService
|
|
|
->first();
|
|
|
$data = $data ? $data->toArray() : [];
|
|
|
$userId = isset($data['id']) ? $data['id'] : 0;
|
|
|
- $avatar = isset($data['avatar']) ? $data['avatar'] : '';
|
|
|
- $mobile = isset($data['mobile']) ? $data['mobile'] : '';
|
|
|
- $nickName = isset($data['nickname']) ? $data['nickname'] : '';
|
|
|
$status = isset($data['status']) ? $data['status'] : 0;
|
|
|
+ $nickname = isset($data['nickname']) ? $data['nickname'] : '';
|
|
|
+ $avatar = isset($data['nickname']) ? $data['avatar'] : '';
|
|
|
$mark = isset($data['mark']) ? $data['mark'] : 0;
|
|
|
- if ($data && $userId && $status != 1 && $mark == 1) {
|
|
|
- $this->error = 2015;
|
|
|
+ if($data && ($status!= 1 && $mark == 1)){
|
|
|
+ $this->error = '账号已被冻结,请联系客服~';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return ['uid'=>$userId,'has_info'=>($nickname && $avatar && $mark==1)? true: false, 'openid'=>$openid];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 授权登录
|
|
|
+ * @param $code
|
|
|
+ * @param array $params
|
|
|
+ * @return array|false
|
|
|
+ */
|
|
|
+ public function login($code, $params = [])
|
|
|
+ {
|
|
|
+ $openid = isset($params['openid'])? $params['openid'] : '';
|
|
|
+ $avatar = isset($params['avatar'])? $params['avatar'] : '';
|
|
|
+ $nickname = isset($params['nickname'])? $params['nickname'] : '';
|
|
|
+
|
|
|
+ if(empty($openid)){
|
|
|
+ $this->error = '请先获取授权';
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ // 账号登录
|
|
|
+ if (empty($code)) {
|
|
|
+ $this->error = 1041;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(empty($avatar) || empty($nickname)){
|
|
|
+ $this->error = '请先授权设置用户信息';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取手机号信息
|
|
|
+ if($code){
|
|
|
+ $phoneData = MpService::make()->getPhoneNumber($code);
|
|
|
+ $phoneData = isset($phoneData['phone_info']) ? $phoneData['phone_info'] : [];
|
|
|
+ $phone = isset($phoneData['phoneNumber']) ? $phoneData['phoneNumber'] : '';
|
|
|
+
|
|
|
+ if (empty($phone)) {
|
|
|
+ $this->error = MpService::make()->getError();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $avatar = save_base64_image($avatar, 'avatar');
|
|
|
+
|
|
|
+
|
|
|
+ // 验证是否注册,没有则注册
|
|
|
+ $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;
|
|
|
+ if ($data && $userId && $status != 1) {
|
|
|
+ $this->error = '账号已被冻结,请来奶昔客服~';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
$system = isset($params['system']) ? $params['system'] : [];
|
|
|
$system = $system && !is_array($system) ? json_decode($system, true) : $system;
|
|
|
@@ -106,6 +164,10 @@ class MemberService extends BaseService
|
|
|
$uuid = isset($system['uuid']) ? $system['uuid'] : '';
|
|
|
$version = isset($system['app_version']) ? $system['app_version'] : '';
|
|
|
if (empty($data)) {
|
|
|
+ // 清理无效注册数据
|
|
|
+ $this->model->where(['openid'=>$openid,'mark'=>0])->delete();
|
|
|
+
|
|
|
+ // 用户ID
|
|
|
$userId = $this->model->max('id') + 1;
|
|
|
|
|
|
// 推荐人
|
|
|
@@ -125,13 +187,13 @@ class MemberService extends BaseService
|
|
|
}
|
|
|
|
|
|
$data = [
|
|
|
- 'nickname' => '',
|
|
|
+ 'nickname' => $nickname,
|
|
|
'openid' => $openid,
|
|
|
- 'mobile' => '',
|
|
|
- 'avatar' => '',
|
|
|
+ 'mobile' => $phone,
|
|
|
+ 'avatar' => $avatar,
|
|
|
'parent_id' => $rid,
|
|
|
'parents' => $parents,
|
|
|
- 'code' => get_random_code(9, 'S', $userId),
|
|
|
+ 'code' => get_random_code(9, 'Q', $userId),
|
|
|
'password' => get_password('a123456'),
|
|
|
'login_ip' => get_client_ip(),
|
|
|
'create_time' => time(),
|
|
|
@@ -151,7 +213,7 @@ class MemberService extends BaseService
|
|
|
|
|
|
|
|
|
} // 更新登录信息
|
|
|
- else if ($mark == 0 || !RedisService::get("caches:members:login_{$userId}")) {
|
|
|
+ else if (!RedisService::get("caches:members:login_{$userId}")) {
|
|
|
$updateData = [
|
|
|
'login_ip' => get_client_ip(),
|
|
|
'login_time' => time(),
|
|
|
@@ -162,32 +224,17 @@ class MemberService extends BaseService
|
|
|
'mark' => 1,
|
|
|
];
|
|
|
|
|
|
- if ($mark == 0) {
|
|
|
- $data['create_time'] = time();
|
|
|
- $data['nickname'] = '';
|
|
|
- $data['avatar'] = '';
|
|
|
- $data['mobile'] = '';
|
|
|
- $data['openid'] = $openid;
|
|
|
- $nickName = '';
|
|
|
- $avatar = '';
|
|
|
- $mobile = '';
|
|
|
- }
|
|
|
$this->model->where(['id' => $userId])->update($updateData);
|
|
|
RedisService::set("caches:members:login_{$userId}", $updateData, rand(30, 60));
|
|
|
}
|
|
|
|
|
|
- // 如果未生成佣金账户则创建
|
|
|
- if(!$accountId = AccountStatisticsModel::where(['user_id'=>$userId])->value('id')){
|
|
|
- AccountStatisticsModel::insert(['user_id'=>$userId,'created_at'=>date('Y-m-d H:i:s')]);
|
|
|
- }
|
|
|
-
|
|
|
// 获取登录授权token
|
|
|
$token = JwtService::make()->encode($userId);
|
|
|
|
|
|
// 结果返回
|
|
|
$result = [
|
|
|
'access_token' => $token,
|
|
|
- 'info' => ['uid' => $userId, 'openid' => $openid, 'has_info' => $avatar && $nickName ? 1 : 0, 'mobile' => $mobile],
|
|
|
+ 'info' => ['uid' => $userId, 'openid' => $openid, 'mobile' => $data['mobile']],
|
|
|
];
|
|
|
|
|
|
// 用户缓存信息
|
|
|
@@ -199,71 +246,6 @@ class MemberService extends BaseService
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 完善资料
|
|
|
- * @param $params
|
|
|
- * @return array|false
|
|
|
- */
|
|
|
- public function setProfile($params)
|
|
|
- {
|
|
|
- $id = isset($params['id'])? $params['id'] : 0;
|
|
|
- $code = isset($params['code'])? $params['code'] : '';
|
|
|
- $avatar = isset($params['avatar'])? $params['avatar'] : '';
|
|
|
- $nickname = isset($params['nickname'])? $params['nickname'] : '';
|
|
|
- if($id<=0){
|
|
|
- $this->error = '授权参数错误,请刷新重试';
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if(empty($avatar) || empty($nickname)){
|
|
|
- $this->error = '请先获取用户授权信息';
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- $userInfo = $this->model->where(['id'=>$id,'mark'=>1])
|
|
|
- ->select(['id as uid', 'nickname','mobile', 'openid','avatar'])
|
|
|
- ->first();
|
|
|
- $phone = isset($userInfo['mobile'])? $userInfo['mobile'] : '';
|
|
|
- if(empty($userInfo)){
|
|
|
- $this->error = '授权登录失败,请刷新重试';
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if(empty($phone) && empty($code)){
|
|
|
- $this->error = '请先刷新重试,授权获取手机号';
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 获取手机号信息
|
|
|
- if($code){
|
|
|
- $phoneData = MpService::make()->getPhoneNumber($code);
|
|
|
- $phoneData = isset($phoneData['phone_info']) ? $phoneData['phone_info'] : [];
|
|
|
- $phone = isset($phoneData['phoneNumber']) ? $phoneData['phoneNumber'] : '';
|
|
|
-
|
|
|
- if (empty($phone)) {
|
|
|
- $this->error = MpService::make()->getError();
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- $avatar = save_base64_image($avatar, 'avatar');
|
|
|
- if(!$this->model->where(['id'=>$id])->update(['mobile'=>$phone,'nickname'=>$nickname,'avatar'=>$avatar,'update_time'=>time()])){
|
|
|
- $this->error = '获取授权信息失败';
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- $this->error = '登录成功';
|
|
|
-
|
|
|
- // 获取登录授权token
|
|
|
- $token = JwtService::make()->encode($id);
|
|
|
- RedisService::keyDel("caches:members:teamList*");
|
|
|
- return [
|
|
|
- 'access_token'=> $token,
|
|
|
- 'info'=> $userInfo
|
|
|
- ];
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* 重置密码
|