| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | 
							- <?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>
 
-  * 
 
-  * 用户表
 
-  */
 
- namespace app\common\model;
 
- use think\Model;
 
- use app\common\model\SystemUserLevel;
 
- class SystemUser 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){
 
-         //查询用户类型
 
-         $condition['member_miniapp_id'] = $wechat['miniapp_id'];
 
-         if($is_miniapp){
 
-             $condition['miniapp_uid']   = $wechat['miniapp_uid'];
 
-         }else{
 
-             $condition['official_uid']  = $wechat['official_uid'];
 
-         }
 
-         $info = self::where($condition)->find();
 
-         if(empty($info)){
 
-             $data = [];
 
-             $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['create_time']       = time();
 
-             $data['login_time']        = time();
 
-             $data['update_time']       = time();
 
-             $data['login_ip']          = request()->ip();
 
-             if($is_miniapp){
 
-                 $data['session_key']   = $wechat['session_key'];
 
-             }
 
-             //在小程序端进行公众号绑定操作
 
-             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){
 
-                     $official_info->miniapp_uid = $data['miniapp_uid'];
 
-                     $official_info->session_key = $data['session_key'];
 
-                     $official_info->save();
 
-                     return $official_info->id;
 
-                 }
 
-             }
 
-             //创建
 
-             $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 = self::isInvite($wechat['invite_code']);
 
-                     if($is_invite){
 
-                         SystemUserLevel::addLevel($last_id,$is_invite);
 
-                     }
 
-                 }
 
-             }
 
-             return $last_id;
 
-         }else{
 
-             $info->nickname     = $wechat['nickname'];
 
-             $info->face         = $wechat['avatar'];
 
-             $info->login_time   = time();
 
-             $info->login_ip     = request()->ip();
 
-             if(!empty($wechat['session_key'])){
 
-                 $info->session_key  = $wechat['session_key'];
 
-             }
 
-             if($is_miniapp && !empty($wechat['official_uid'])){
 
-                 $info->official_uid = $wechat['official_uid'];
 
-             }
 
-             $info->save();
 
-             return $info->id;
 
-         }
 
-     }
 
-     /**
 
-      * 更新安全密码
 
-      * @param  array $param 更新的用户信息
 
-      */
 
-     public static function updateSafePasspord(int $uid,string $safepassword){
 
-         $data['safe_password'] = password_hash(md5($safepassword),PASSWORD_DEFAULT);
 
-         return SystemUser::where(['id' => $uid])->update($data);
 
-     } 
 
-     /**
 
-      * 修改登录密码
 
-      * @access public
 
-      */
 
-     public function upDatePasspowrd(int $uid,string $password){
 
-         $data['password'] = password_hash(md5($password),PASSWORD_DEFAULT);
 
-         return SystemUser::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 SystemUser::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();
 
-     }
 
- }
 
 
  |