| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- <?php
- // +—————————————————————————————————————————————————————————————————————
- // | Created by Yunbao
- // +—————————————————————————————————————————————————————————————————————
- // | Copyright (c) 2013~2022 http://www.yunbaokj.com All rights reserved.
- // +—————————————————————————————————————————————————————————————————————
- // | Author: https://gitee.com/yunbaokeji
- // +—————————————————————————————————————————————————————————————————————
- // | Date: 2022-02-17
- // +—————————————————————————————————————————————————————————————————————
- class Model_Login extends PhalApi_Model_NotORM {
- protected $fields='id,user_nicename,avatar,avatar_thumb,sex,signature,coin,consumption,votestotal,province,city,birthday,user_status,login_type,last_login_time,location';
- /* 会员登录 */
- public function userLogin($user_login,$user_pass) {
- $user_pass=setPass($user_pass);
-
- $info=DI()->notorm->user
- ->select($this->fields.',user_pass')
- ->where('user_login=? and user_type="2"',$user_login)
- ->fetchOne();
- if(!$info || $info['user_pass'] != $user_pass){
- return 1001;
- }
- unset($info['user_pass']);
- unset($info['user_status']);
-
- if($info['birthday']){
- $info['birthday']=date('Y-m-d',$info['birthday']);
- }else{
- $info['birthday']='';
- }
-
- $info['level']=getLevel($info['consumption']);
- $info['level_anchor']=getLevelAnchor($info['votestotal']);
- $token=md5(md5($info['id'].$user_login.time()));
-
- $info['token']=$token;
- $info['avatar']=get_upload_path($info['avatar']);
- $info['avatar_thumb']=get_upload_path($info['avatar_thumb']);
-
- $this->updateToken($info['id'],$token);
-
- return $info;
- }
-
- /* 会员注册 */
- public function userReg($user_login,$user_pass,$source) {
- $user_pass=setPass($user_pass);
-
- $configpri=getConfigPri();
- $reg_reward=$configpri['reg_reward'];
- $data=array(
- 'user_login' => $user_login,
- 'mobile' =>$user_login,
- 'user_nicename' =>'手机用户'.substr($user_login,-4),
- 'user_pass' =>$user_pass,
- 'signature' =>'这家伙很懒,什么都没留下',
- 'avatar' =>'/default.jpg',
- 'avatar_thumb' =>'/default_thumb.jpg',
- 'last_login_ip' =>$_SERVER['REMOTE_ADDR'],
- 'create_time' => time(),
- 'user_status' => 1,
- "user_type"=>2,//会员
- "source"=>$source,
- "coin"=>$reg_reward,
- );
- $isexist=DI()->notorm->user
- ->select('id')
- ->where('user_login=?',$user_login)
- ->fetchOne();
- if($isexist){
- return 1006;
- }
- $rs=DI()->notorm->user->insert($data);
- if(!$rs){
- return 1007;
- }
- $uid=$rs['id'];
- if($reg_reward>0){
- $insert=array("type"=>'1',"action"=>'11',"uid"=>$uid,"touid"=>$uid,"giftid"=>0,"giftcount"=>1,"totalcoin"=>$reg_reward,"showid"=>0,"addtime"=>time() );
- DI()->notorm->user_coinrecord->insert($insert);
- }
- return 1;
- }
- /* 找回密码 */
- public function userFindPass($user_login,$user_pass){
- $isexist=DI()->notorm->user
- ->select('id')
- ->where('user_login=? and user_type="2"',$user_login)
- ->fetchOne();
- if(!$isexist){
- return 1006;
- }
-
- $user_pass=setPass($user_pass);
- return DI()->notorm->user
- ->where('id=?',$isexist['id'])
- ->update(array('user_pass'=>$user_pass));
-
- }
-
- /* 第三方会员登录 */
- public function userLoginByThird($openid,$type,$nickname,$avatar,$source) {
- $info=DI()->notorm->user
- ->select($this->fields)
- ->where('openid=? and login_type=? ',$openid,$type)
- ->fetchOne();
- $configpri=getConfigPri();
- if(!$info){
- /* 注册 */
- $user_pass='yunbaokeji';
- $user_pass=setPass($user_pass);
- $user_login=$type.'_'.time().rand(100,999);
- if(!$nickname){
- $nickname=$type.'用户-'.substr($openid,-4);
- }else{
- $nickname=urldecode($nickname);
- }
- if(!$avatar){
- $avatar='/default.jpg';
- $avatar_thumb='/default_thumb.jpg';
- }else{
- $avatar=urldecode($avatar);
- $avatar_thumb=$avatar;
-
-
- }
- $reg_reward=$configpri['reg_reward'];
- $data=array(
- 'user_login' => $user_login,
- 'user_nicename' =>$nickname,
- 'user_pass' =>$user_pass,
- 'signature' =>'这家伙很懒,什么都没留下',
- 'avatar' =>$avatar,
- 'avatar_thumb' =>$avatar_thumb,
- 'last_login_ip' =>$_SERVER['REMOTE_ADDR'],
- 'create_time' => time(),
- 'user_status' => 1,
- 'openid' => $openid,
- 'login_type' => $type,
- "user_type"=>2,//会员
- "source"=>$source,
- "coin"=>$reg_reward,
- );
-
- $rs=DI()->notorm->user->insert($data);
-
- $uid=$rs['id'];
- if($reg_reward>0){
- $insert=array("type"=>'1',"action"=>'11',"uid"=>$uid,"touid"=>$uid,"giftid"=>0,"giftcount"=>1,"totalcoin"=>$reg_reward,"showid"=>0,"addtime"=>time() );
- DI()->notorm->user_coinrecord->insert($insert);
- }
-
- $info['id']=$uid;
- $info['user_nicename']=$data['user_nicename'];
- $info['avatar']=get_upload_path($data['avatar']);
- $info['avatar_thumb']=get_upload_path($data['avatar_thumb']);
- $info['sex']='2';
- $info['signature']=$data['signature'];
- $info['coin']='0';
- $info['login_type']=$data['login_type'];
- $info['province']='';
- $info['city']='';
- $info['birthday']='';
- $info['consumption']='0';
- $info['user_status']=1;
- $info['last_login_time']=0;
- }else{
- if($info['user_status']=='0'){
- return 1003;
- }
-
- // 更新头像
- if(!$avatar){
- $avatar='/default.jpg';
- $avatar_thumb='/default_thumb.jpg';
- $info['avatar']=$avatar;
- $info['avatar_thumb']=$avatar_thumb;
- }
-
- }
-
- unset($info['user_status']);
-
- $info['isreg']='0';
-
- if($info['last_login_time']==0 ){
- $info['isreg']='1';
- }
-
- if($info['birthday']){
- $info['birthday']=date('Y-m-d',$info['birthday']);
- }else{
- $info['birthday']='';
- }
-
- unset($info['last_login_time']);
-
- $info['level']=getLevel($info['consumption']);
- $info['level_anchor']=getLevelAnchor($info['votestotal']);
- $token=md5(md5($info['id'].$openid.time()));
-
- $info['token']=$token;
- $info['avatar']=get_upload_path($info['avatar']);
- $info['avatar_thumb']=get_upload_path($info['avatar_thumb']);
-
- $this->updateToken($info['id'],$token);
-
- return $info;
- }
-
- /* 更新token 登陆信息 */
- public function updateToken($uid,$token,$data=array()) {
- $nowtime=time();
- $expiretime=$nowtime+60*60*24*300;
- DI()->notorm->user
- ->where('id=?',$uid)
- ->update(array('last_login_time' => $nowtime, "last_login_ip"=>$_SERVER['REMOTE_ADDR'] ));
-
- $isok=DI()->notorm->user_token
- ->where('user_id=?',$uid)
- ->update(array("token"=>$token, "expire_time"=>$expiretime ,'create_time' => $nowtime ));
- if(!$isok){
- DI()->notorm->user_token
- ->insert(array("user_id"=>$uid,"token"=>$token, "expire_time"=>$expiretime ,'create_time' => $nowtime, ));
- }
- $token_info=array(
- 'uid'=>$uid,
- 'token'=>$token,
- 'expire_time'=>$expiretime,
- );
-
- setcaches("token_".$uid,$token_info);
-
- return 1;
- }
-
- }
|