|
@@ -234,6 +234,7 @@ class MemberService extends BaseService
|
|
|
}
|
|
|
|
|
|
if(!$userId){
|
|
|
+ $appSources = isset($params['app_sources'])? $params['app_sources'] : '';
|
|
|
$id = $this->model->max('id')+1;
|
|
|
$data = [
|
|
|
'parent_id'=> $parentId,
|
|
@@ -245,6 +246,7 @@ class MemberService extends BaseService
|
|
|
'code'=> strtoupper(get_random_code(8,'D', "{$id}")),
|
|
|
'mobile' => $mobile,
|
|
|
'parents' => $parents,
|
|
|
+ 'device' => $appSources=='android'? 2 : 1,
|
|
|
'status' => 1,
|
|
|
'balance' => 0,
|
|
|
'score' => 0,
|
|
@@ -272,4 +274,86 @@ class MemberService extends BaseService
|
|
|
RedisService::set("auths:info:{$userId}", $data, 3*24*3600);
|
|
|
return $result;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 微信注册登录
|
|
|
+ * @param $params
|
|
|
+ * @return array|false
|
|
|
+ */
|
|
|
+ public function loginByWechat($params)
|
|
|
+ {
|
|
|
+ // 授权
|
|
|
+ $mobile = isset($params['mobile'])? $params['mobile'] : '';
|
|
|
+ $nickname = isset($params['nickname'])? $params['nickname'] : '';
|
|
|
+ $openid = isset($params['openid'])? $params['openid'] : '';
|
|
|
+ $avatar = isset($params['headimgurl'])? $params['headimgurl'] : '';
|
|
|
+ $inviteCode = isset($params['invite_code'])? $params['invite_code'] : '';
|
|
|
+ if(empty($params) || empty($openid)){
|
|
|
+ $this->error = 2014;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 推荐人
|
|
|
+ $parentId = 0;
|
|
|
+ $parents = '';
|
|
|
+ if($inviteCode){
|
|
|
+ $inviteInfo = $this->model->where(['code'=> $inviteCode,'mark'=> 1])
|
|
|
+ ->select(['id','parents','parent_id'])
|
|
|
+ ->first();
|
|
|
+ $parentId = isset($inviteInfo['id'])? $inviteInfo['id'] : 0;
|
|
|
+ $parents = isset($inviteInfo['parents'])? $inviteInfo['parents'].$parentId.',' : ($parentId?$parentId.',':'');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 验证是否注册,没有则注册
|
|
|
+ $data = $this->model->where(['openid'=> $openid,'mark'=>1])->select(['id','openid','username','parent_id','code','status'])->first();
|
|
|
+ $data = $data? $data->toArray() : [];
|
|
|
+ $userId = isset($data['id'])? $data['id'] : 0;
|
|
|
+ $status = isset($data['status'])? $data['status'] : 0;
|
|
|
+ if($userId && $status != 1){
|
|
|
+ $this->error = 2015;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!$userId){
|
|
|
+ $id = $this->model->max('id')+1;
|
|
|
+ $data = [
|
|
|
+ 'parent_id'=> $parentId,
|
|
|
+ 'openid'=> $openid,
|
|
|
+ 'avatar'=> $avatar,
|
|
|
+ 'nickname' => $nickname? $nickname : get_random_code(6,'用户u'),
|
|
|
+ 'username' => get_username($id),
|
|
|
+ 'password' => get_password('123456'),
|
|
|
+ 'code'=> strtoupper(get_random_code(8,'D', "{$id}")),
|
|
|
+ 'mobile' => $mobile,
|
|
|
+ 'device' => isset($params['device'])? $params['device'] : 0,
|
|
|
+ 'parents' => $parents,
|
|
|
+ 'status' => 1,
|
|
|
+ 'balance' => 0,
|
|
|
+ 'score' => 0,
|
|
|
+ 'mark' => 1,
|
|
|
+ 'login_time' => time(),
|
|
|
+ 'login_ip' => get_client_ip(),
|
|
|
+ 'create_time' => time(),
|
|
|
+ ];
|
|
|
+
|
|
|
+ $userId = $this->model->insertGetId($data);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取登录授权token
|
|
|
+ $jwt = new Jwt('jwt_dys_app');
|
|
|
+ $token = $jwt->getToken($userId);
|
|
|
+
|
|
|
+ // 结果返回
|
|
|
+ $result = [
|
|
|
+ 'access_token' => $token,
|
|
|
+ 'info'=> ['uid'=> $userId,'openid'=>$data['openid'],'username'=> $data['username']],
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 用户信息
|
|
|
+ unset($data['password']);
|
|
|
+ RedisService::set("auths:info:{$userId}", $data, 3*24*3600);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|