From c10f05558530bd38ed3191589580f356d4f274fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Mon, 8 Dec 2025 10:42:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E9=94=80=20=E5=92=8C=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=88=BF=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Login.php | 28 +++++++++++++++++++++-- application/api/controller/Room.php | 14 ++++++++++++ application/api/model/Login.php | 33 +++++++++++++++------------- 3 files changed, 58 insertions(+), 17 deletions(-) diff --git a/application/api/controller/Login.php b/application/api/controller/Login.php index d23747e..00982aa 100644 --- a/application/api/controller/Login.php +++ b/application/api/controller/Login.php @@ -7,6 +7,7 @@ use app\common\controller\NumberAuth; use app\api\controller\Sms; use http\Client; use think\Controller; +use think\Db; use think\Loader; use Firebase\JWT\JWT; use think\Log; @@ -360,9 +361,32 @@ class Login extends Controller //注销 public function cancel() { - return V(0, '注销请联系客服', null); + $system = input('system',''); + if(empty($system)){ + $system = request()->header('system'); + } + $login_device = input('deviceId',''); + if(empty($login_device)){ + $login_device = request()->header('deviceId'); + } $token = input('token'); - $reslut = model('Login')->cancel($token); + $sms_code = input('sms_code', ''); //短信验证码 + + $user_info = db::name('user_token')->where('token', $token)->find(); + $user_phone = db::name('user')->where(['id' => $user_info['user_id']])->value('mobile'); + if ($user_phone) { + if(!$sms_code){ + return V(0, '网络错误,请返回【我的】刷新后重新尝试!' ); + }else{ + //$event = default-默认登录,1-更换手机号,2绑定手机号,3-忘记密码,4-设置密码,5-账号注销,6-提现 + $ret = model('sms')->verification_code(5,$user_phone, $sms_code); + if ($ret['code'] == 0) { + return V($ret['code'], $ret['msg'], null); + } + } + } + + $reslut = model('Login')->cancel($token, $system,$login_device); return V($reslut['code'], $reslut['msg'], $reslut['data']); } diff --git a/application/api/controller/Room.php b/application/api/controller/Room.php index a1f6482..9dc15df 100644 --- a/application/api/controller/Room.php +++ b/application/api/controller/Room.php @@ -7,12 +7,26 @@ use think\Db; class Room extends BaseCom { + //创建房间前的检测 + public function check_create_room() + { + //检测用户的签约徒弟 + $signCount = db::name('vs_user_sign')->where(['parent_user_id' => $this->uid ,'end_time' => ['>', time()]] )->count(); + if($signCount < 10){ + $need_sign_num = 10 - $signCount; + return V(0, '还需签约'.$need_sign_num.'人,才能创建房间!'); + } + return V(1, '可以创建房间'); + } + + //创建房间 public function create_room() { $room_name = input('room_name', ''); $room_cover = input('room_cover', ''); $room_intro = input('room_intro', ''); + $key_name = "api:room:user_create_room:" . $this->uid; redis_lock_exits($key_name); $reslut = model('Room')->user_create_room($this->uid, $room_name, $room_cover, $room_intro); diff --git a/application/api/model/Login.php b/application/api/model/Login.php index cb110a1..415bc11 100644 --- a/application/api/model/Login.php +++ b/application/api/model/Login.php @@ -476,7 +476,7 @@ class Login extends Model } //注销 - public function cancel($token){ + public function cancel($token,$system,$login_device){ $user_info = model('UserToken')->where('token', $token)->find(); //用户注册时间 $register_time = db::name('user')->where('id', $user_info['user_id'])->value('createtime'); @@ -484,41 +484,44 @@ class Login extends Model if(time() - $register_time < 86400 * $config_time){ return ['code' => 0, 'msg' => '注册'.$config_time.'天内不能注销!', 'data' => null]; } + if($user_info){ model('UserToken')->where('id', $user_info['id'])->update(['token' => 1]); - $isstatus = model('User')->where('id', $user_info['user_id'])->update(['status' => 0]); + $isstatus = model('User')->where('id', $user_info['user_id'])->update([ + 'status' => 0, + 'delete_time' => time(), + 'login_device' => $login_device, + 'system' =>$system, + 'avatar' => get_system_config_value('delete_avatar') + ]); if($isstatus){ //查询用户所在房间 $room_list = db::name('vs_room_visitor')->where('user_id', $user_info['user_id'])->select(); if($room_list){ - foreach ($room_list as &$value) { + foreach ($room_list as $value) { model('Room')->quit_room($user_info['user_id'], $value['room_id'],$user_info['user_id']); } } - //删除用户 -// model('Tencent')->account_delete($user_info['user_id']); - model('User')->where('id', $user_info['user_id'])->update(['delete_time' => time()]); - model('User')->where('id', $user_info['user_id'])->update(['avatar' => get_system_config_value('delete_avatar')]); + model('UserData')->where('user_id', $user_info['user_id'])->update(['deletetime' => time()]); //查询创建的房间 $room_list = db::name('vs_room')->where('user_id', $user_info['user_id'])->select(); if($room_list){ - foreach ($room_list as &$value) { + foreach ($room_list as $value) { db::name('vs_room')->where('id', $value['id'])->update(['room_status' => 3]); } } + //查询绑定的手机号 + $mob = db::name('user')->where('id', $user_info['user_id'])->value('mobile'); + $mobile = db::name('user')->where(['mobile' => $mob,'status' => ['<>',0]])->select(); + if(isset($mobile) && count($mobile) < 2){ + db::name('user_auth')->where('mobile', $mob)->delete(); + } }else{ return ['code' => 0, 'msg' => '注销失败', 'data' => null]; } - //查询绑定的手机号 - $mob = db::name('user')->where('id', $user_info['user_id'])->value('mobile'); - $mobile = db::name('user')->where(['mobile' => $mob,'status' => ['<>',0]])->select(); - if(isset($mobile) && count($mobile) < 2){ - db::name('user_auth')->where('mobile', $mob)->delete(); - } - return ['code' => 1, 'msg' => '注销成功', 'data' => null]; }else{ return ['code' => 0, 'msg' => '注销失败', 'data' => null];