注销 和创建房间

This commit is contained in:
2025-12-08 10:42:58 +08:00
parent e4c3f572e5
commit c10f055585
3 changed files with 58 additions and 17 deletions

View File

@@ -7,6 +7,7 @@ use app\common\controller\NumberAuth;
use app\api\controller\Sms; use app\api\controller\Sms;
use http\Client; use http\Client;
use think\Controller; use think\Controller;
use think\Db;
use think\Loader; use think\Loader;
use Firebase\JWT\JWT; use Firebase\JWT\JWT;
use think\Log; use think\Log;
@@ -360,9 +361,32 @@ class Login extends Controller
//注销 //注销
public function cancel() 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'); $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']); return V($reslut['code'], $reslut['msg'], $reslut['data']);
} }

View File

@@ -7,12 +7,26 @@ use think\Db;
class Room extends BaseCom 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() public function create_room()
{ {
$room_name = input('room_name', ''); $room_name = input('room_name', '');
$room_cover = input('room_cover', ''); $room_cover = input('room_cover', '');
$room_intro = input('room_intro', ''); $room_intro = input('room_intro', '');
$key_name = "api:room:user_create_room:" . $this->uid; $key_name = "api:room:user_create_room:" . $this->uid;
redis_lock_exits($key_name); redis_lock_exits($key_name);
$reslut = model('Room')->user_create_room($this->uid, $room_name, $room_cover, $room_intro); $reslut = model('Room')->user_create_room($this->uid, $room_name, $room_cover, $room_intro);

View File

@@ -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(); $user_info = model('UserToken')->where('token', $token)->find();
//用户注册时间 //用户注册时间
$register_time = db::name('user')->where('id', $user_info['user_id'])->value('createtime'); $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){ if(time() - $register_time < 86400 * $config_time){
return ['code' => 0, 'msg' => '注册'.$config_time.'天内不能注销!', 'data' => null]; return ['code' => 0, 'msg' => '注册'.$config_time.'天内不能注销!', 'data' => null];
} }
if($user_info){ if($user_info){
model('UserToken')->where('id', $user_info['id'])->update(['token' => 1]); 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){ if($isstatus){
//查询用户所在房间 //查询用户所在房间
$room_list = db::name('vs_room_visitor')->where('user_id', $user_info['user_id'])->select(); $room_list = db::name('vs_room_visitor')->where('user_id', $user_info['user_id'])->select();
if($room_list){ 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('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()]); 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(); $room_list = db::name('vs_room')->where('user_id', $user_info['user_id'])->select();
if($room_list){ 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]); 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{ }else{
return ['code' => 0, 'msg' => '注销失败', 'data' => null]; 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]; return ['code' => 1, 'msg' => '注销成功', 'data' => null];
}else{ }else{
return ['code' => 0, 'msg' => '注销失败', 'data' => null]; return ['code' => 0, 'msg' => '注销失败', 'data' => null];