|
|
@@ -59,59 +59,75 @@ class User
|
|
|
if (!empty($params['uid'])) {
|
|
|
$where[] = ['uid', '=', $params['uid']];
|
|
|
}
|
|
|
- $userInfo=UserModel::where($where)->withoutField('register_ip,login_count,update_time,create_time')->find();
|
|
|
- if($userInfo==null){
|
|
|
- $cs_uid = 0;
|
|
|
- $autoTask=Config::autoTask();
|
|
|
- if($autoTask && $autoTask['user_id']){
|
|
|
- $cs_uid = $autoTask['user_id'];
|
|
|
+ try {
|
|
|
+ Db::startTrans();
|
|
|
+
|
|
|
+ $userInfo=UserModel::where($where)->withoutField('register_ip,login_count,update_time,create_time')->find();
|
|
|
+ if($userInfo==null){
|
|
|
+ $cs_uid = 0;
|
|
|
+ $autoTask=Config::autoTask();
|
|
|
+ if($autoTask && $autoTask['user_id']){
|
|
|
+ $cs_uid = $autoTask['user_id'];
|
|
|
+ }
|
|
|
+ $salt = \utils\Str::random(4);
|
|
|
+ $userInfo = UserModel::create([
|
|
|
+ 'account'=>$params['account'],
|
|
|
+ 'realname'=> !empty($params['realname']) ? $params['realname'] : $params['account'],
|
|
|
+ 'name_py' => !empty($params['realname']) ? pinyin_sentence($params['realname']) : '',
|
|
|
+ 'phone'=>!empty($params['phone']) ? $params['phone'] : '',
|
|
|
+ 'email'=>!empty($params['email']) ? $params['email'] : '',
|
|
|
+ 'from'=>$params['from'],
|
|
|
+ 'uid'=>$params['uid'],
|
|
|
+ 'salt' => $salt,
|
|
|
+ 'avatar' => !empty($params['avatar']) ? $params['avatar'] : '',
|
|
|
+ 'password' => password_hash_tp(123456,$salt),
|
|
|
+ 'cs_uid' => $cs_uid,
|
|
|
+ 'role' => 0,
|
|
|
+ 'status' =>1,
|
|
|
+ 'register_ip' => $this->request->ip(),
|
|
|
+ 'last_login_ip' => $this->request->ip(),
|
|
|
+ 'last_login_time' => time(),
|
|
|
+ 'login_count' => 1
|
|
|
+ ]);
|
|
|
+ // 监听用户注册后的操作
|
|
|
+ event('UserRegister',['user_id' => $userInfo['user_id'], 'realname' => $userInfo['realname']]);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ //$userInfo['avatar']=avatarUrl($userInfo['avatar'],$userInfo['realname'],$userInfo['user_id']);
|
|
|
+ // 如果用户已经有设置
|
|
|
+ $setting=$userInfo['setting'] ?: '';
|
|
|
+ if($setting){
|
|
|
+ $setting['hideMessageName']= $setting['hideMessageName']=='true' ? true : false;
|
|
|
+ $setting['hideMessageTime']= $setting['hideMessageTime']=='true' ? true : false;
|
|
|
+ $setting['avatarCricle']= $setting['avatarCricle']=='true' ? true : false;
|
|
|
+ $setting['isVoice']= $setting['isVoice']=='true' ? true : false;
|
|
|
+ $setting['sendKey']=(int)$setting['sendKey'];
|
|
|
+ $userInfo['setting']=$setting;
|
|
|
+ }
|
|
|
}
|
|
|
- $salt = \utils\Str::random(4);
|
|
|
- $userInfo = UserModel::create([
|
|
|
- 'account'=>$params['account'],
|
|
|
- 'realname'=> !empty($params['realname']) ? $params['realname'] : $params['account'],
|
|
|
- 'name_py' => !empty($params['realname']) ? pinyin_sentence($params['realname']) : '',
|
|
|
- 'phone'=>!empty($params['phone']) ? $params['phone'] : '',
|
|
|
- 'email'=>!empty($params['email']) ? $params['email'] : '',
|
|
|
- 'from'=>$params['from'],
|
|
|
- 'uid'=>$params['uid'],
|
|
|
- 'salt' => $salt,
|
|
|
+ if($userInfo['status']==0){
|
|
|
+ return warning(lang('user.forbid'));
|
|
|
+ }
|
|
|
+
|
|
|
+ $update=[
|
|
|
+ 'last_login_time'=>time(),
|
|
|
+ 'last_login_ip'=>$this->request->ip(),
|
|
|
+ 'login_count'=>Db::raw('login_count+1'),
|
|
|
'avatar' => !empty($params['avatar']) ? $params['avatar'] : '',
|
|
|
- 'password' => password_hash_tp(123456,$salt),
|
|
|
- 'cs_uid' => $cs_uid,
|
|
|
- 'role' => 0,
|
|
|
- 'status' =>1,
|
|
|
- 'register_ip' => $this->request->ip(),
|
|
|
- 'last_login_ip' => $this->request->ip(),
|
|
|
- 'last_login_time' => time(),
|
|
|
- 'login_count' => 1
|
|
|
- ]);
|
|
|
- // 监听用户注册后的操作
|
|
|
- event('UserRegister',['user_id' => $userInfo['user_id'], 'realname' => $userInfo['realname']]);
|
|
|
-
|
|
|
- } else {
|
|
|
- //$userInfo['avatar']=avatarUrl($userInfo['avatar'],$userInfo['realname'],$userInfo['user_id']);
|
|
|
- // 如果用户已经有设置
|
|
|
- $setting=$userInfo['setting'] ?: '';
|
|
|
- if($setting){
|
|
|
- $setting['hideMessageName']= $setting['hideMessageName']=='true' ? true : false;
|
|
|
- $setting['hideMessageTime']= $setting['hideMessageTime']=='true' ? true : false;
|
|
|
- $setting['avatarCricle']= $setting['avatarCricle']=='true' ? true : false;
|
|
|
- $setting['isVoice']= $setting['isVoice']=='true' ? true : false;
|
|
|
- $setting['sendKey']=(int)$setting['sendKey'];
|
|
|
- $userInfo['setting']=$setting;
|
|
|
+ ];
|
|
|
+ if (!empty($params['realname'])) {
|
|
|
+ $update['realname'] = $params['realname'];
|
|
|
}
|
|
|
- // if ($userInfo['service_status'] == 3 && $userInfo['service_status'] != -1) {
|
|
|
- // $userInfo['service_status'] = -1;
|
|
|
- // $userInfo['service_start'] = 0;
|
|
|
- // $autoTask=Config::autoTask();
|
|
|
- // $userInfo['cs_uid'] = isset($autoTask['user_id']) ? $autoTask['user_id'] : 0;
|
|
|
- // $userInfo->save();
|
|
|
- // }
|
|
|
+ UserModel::where('user_id',$userInfo['user_id'])->update($update);
|
|
|
+
|
|
|
+ //记录用户浏览
|
|
|
+ UserView::addData($userInfo['user_id']);
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ Db::rollback();
|
|
|
+ return error($e->getMessage());
|
|
|
}
|
|
|
- if($userInfo['status']==0){
|
|
|
- return warning(lang('user.forbid'));
|
|
|
- }
|
|
|
|
|
|
//如果登录信息中含有client——id则自动进行绑定
|
|
|
$client_id=$this->request->param('client_id');
|
|
|
@@ -119,24 +135,13 @@ class User
|
|
|
$cid=$this->request->header('cid','');
|
|
|
$this->doBindUid($userInfo['user_id'],$client_id,$cid);
|
|
|
}
|
|
|
- $update=[
|
|
|
- 'last_login_time'=>time(),
|
|
|
- 'last_login_ip'=>$this->request->ip(),
|
|
|
- 'login_count'=>Db::raw('login_count+1'),
|
|
|
- 'avatar' => !empty($params['avatar']) ? $params['avatar'] : '',
|
|
|
- ];
|
|
|
- if (!empty($params['realname'])) {
|
|
|
- $update['realname'] = $params['realname'];
|
|
|
- }
|
|
|
- UserModel::where('user_id',$userInfo['user_id'])->update($update);
|
|
|
+
|
|
|
$userInfo['qrUrl']=getMainHost().'/scan/u/'.encryptIds($userInfo['user_id']);
|
|
|
unset($userInfo['password'],$userInfo['salt']);
|
|
|
$userInfo['displayName']=$userInfo['realname'];
|
|
|
$userInfo['id']=$userInfo['user_id'];
|
|
|
$authToken=UserModel::refreshToken($userInfo,$param['terminal'] ?? 'web');
|
|
|
|
|
|
- //记录用户浏览
|
|
|
- UserView::addData($userInfo['user_id']);
|
|
|
$data=[
|
|
|
'sessionId'=>Session::getId(),
|
|
|
'authToken'=>$authToken,
|