| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | 
							- <?php
 
- /**
 
-  * @copyright   Copyright (c) 2017 https://www.sapixx.com All rights reserved.
 
-  * @license     Licensed (http://www.apache.org/licenses/LICENSE-2.0).
 
-  * @author      pillar<ltmn@qq.com>
 
-  * 
 
-  * 用户表 Table<ai_user>
 
-  */
 
- namespace app\common\model;
 
- use think\Model;
 
- class User extends Model{
 
-     
 
-     protected $pk = 'id';
 
-     /**
 
-      * 判断是否邀请用户
 
-      * @param integer $user_id 当前用户ID
 
-      * @param string  $code    邀请码
 
-      * @return int    邀请用户ID
 
-      */
 
-     public static function isInvite($invite_code){
 
-         if(empty($invite_code)){
 
-             return;
 
-         }
 
-         $id = de_code(strtoupper($invite_code));
 
-         $is_invite = self::where(['id' => $id])->field('id')->find();
 
-         return empty($is_invite) ? 0 : $is_invite['id'];
 
-     }
 
-     /**
 
-      * 通过微信注册或更新
 
-      * @param array $wechat
 
-      * @param int $is_miniapp 0小程序  1公众号
 
-      * @return 成功后返回用户的ID
 
-      */
 
-     public static function wechatReg(array $wechat,$is_miniapp = true){
 
-         //参数
 
-         $data   = [];
 
-         $updata = [];
 
-         $data['member_miniapp_id'] = $wechat['miniapp_id'];
 
-         $data['nickname']          = $wechat['nickname'];
 
-         $data['face']              = $wechat['avatar'];
 
-         $data['official_uid']      = $wechat['official_uid'];
 
-         $data['miniapp_uid']       = $wechat['miniapp_uid'];
 
-         $data['wechat_uid']        = $wechat['wechat_uid'];
 
-         $data['login_time']        = time();
 
-         $data['update_time']       = time();
 
-         $data['login_ip']          = request()->ip();
 
-         //查询用户类型
 
-         $condition['member_miniapp_id']  = $wechat['miniapp_id'];
 
-         if($is_miniapp){
 
-             $data['session_key']       = $wechat['session_key'];
 
-             $updata['session_key']     = $wechat['session_key'];
 
-             $condition['miniapp_uid']  = $data['miniapp_uid'];
 
-         }else{
 
-             $condition['official_uid'] = $data['official_uid'];
 
-         }
 
-         $info = self::where($condition)->find();
 
-         if(empty($info)){
 
-             $data['create_time'] = time();
 
-             $is_insert = true;
 
-             //如果用户先进入公众号,后进入小程序保证账户同步
 
-             if($is_miniapp && !empty($data['official_uid'])){ 
 
-                 $official_info = self::where(['member_miniapp_id' => $wechat['miniapp_id'],'official_uid' => $data['official_uid']])->find();
 
-                 if($official_info){
 
-                     $is_insert = false;  
 
-                     $last_id   = $official_info['id']; 
 
-                     self::update(['id' => $last_id,'miniapp_uid' => $data['miniapp_uid']]);             
 
-                 }
 
-             }
 
-             //判断是否需要增加
 
-             if($is_insert){
 
-                 $last_id = self::insertGetId($data);
 
-                 if($last_id){
 
-                     self::where('id',$last_id)->data(['invite_code' => create_code($last_id)])->update();
 
-                 }
 
-                 //添加用户邀请来源
 
-                 if(!empty($wechat['invite_code'])){
 
-                     $is_invite = model('User')->isInvite($wechat['invite_code']);  //临时解决邀请问题
 
-                     if($is_invite){
 
-                         model('UserLevel')->addLevel($last_id,$is_invite);
 
-                     }
 
-                 }
 
-             }
 
-         }else{
 
-             $updata['nickname']     = $wechat['nickname'];
 
-             $updata['face']         = $wechat['avatar'];
 
-             $updata['login_time']   = time();
 
-             $updata['login_ip']     = request()->ip();
 
-             $updata['session_key'] = $wechat['session_key'];
 
-             if($is_miniapp && !empty($data['official_uid'])){
 
-                 $updata['official_uid'] = $data['official_uid'];
 
-             }
 
-             self::where(['id' => $info->id])->data($updata)->update();  
 
-             $last_id = $info->id;
 
-         }
 
-         return $last_id;
 
-     }
 
-     /**
 
-      * 更新安全密码
 
-      * @param  array $param 更新的用户信息
 
-      */
 
-     public static function updateSafePasspord(int $uid,string $safepassword){
 
-         $data['safe_password'] = password_hash(md5($safepassword),PASSWORD_DEFAULT);
 
-         return User::where(['id' => $uid])->update($data);
 
-     } 
 
-     /**
 
-      * 修改登录密码
 
-      * @access public
 
-      */
 
-     public function upDatePasspowrd(int $uid,string $password){
 
-         $data['password'] = password_hash(md5($password),PASSWORD_DEFAULT);
 
-         return User::where(['id' => $uid])->update($data);
 
-     } 
 
-     /**
 
-      * 锁定用户
 
-      * @param integer $id
 
-      */
 
-     public static function lock(int $appid,int $id){
 
-         $result = self::where(['member_miniapp_id' => $appid,'id' => $id])->find();
 
-         if($result->is_delete >= 1){
 
-             return FALSE;
 
-         }
 
-         $result->is_lock = $result->is_lock ? 0 : 1;
 
-         return $result->save();
 
-     }
 
-     /**
 
-      * 登录用户ID
 
-      */
 
-     public static function edit(array $data,int $id){
 
-         return User::where(['id' => $id])->update($data);
 
-     }
 
-     /**
 
-      * 作废
 
-      * @param integer $id
 
-      */
 
-     public static function isDelete(int $appid,int $id){
 
-         $result = self::where(['member_miniapp_id' => $appid,'id' => $id])->find();
 
-         if($result->is_delete >= 1){
 
-             return FALSE;
 
-         }
 
-         $result->is_lock      = 1;
 
-         $result->is_delete    = 1;
 
-         $result->phone_uid    = '';
 
-         $result->wechat_uid   = '';
 
-         $result->official_uid = '';
 
-         $result->miniapp_uid  = '';
 
-         return $result->save();
 
-     }
 
- }
 
 
  |