This commit is contained in:
2025-10-20 09:59:39 +08:00
parent e73091cdf3
commit a4858d47fc
2834 changed files with 6510 additions and 438740 deletions

View File

@@ -107,16 +107,44 @@ class Login extends Model
$block = db::name('block')->where(['type_text' => $user_info['id'],'type' => 1])->find();
if ($block) {
return ['code' => 0, 'msg' => '用户已被封禁', 'data' => null];
if($block['block_time'] != 0 && $block['block_time'] <= time()){
db('block')->where(['id' => $block['id']])->delete();
$sms_error = db::name('sms_error')->where(['mobile' => $user_info['mobile']])->find();
if($sms_error){
db::name('sms_error')->where(['mobile' => $user_info['mobile']])->delete();
}
}else{
if($block['block_time'] == 0){
return ['code' => 301, 'msg' => '用户已被永久封禁', 'data' => null];
}else{
return ['code' => 301, 'msg' => '用户已被封禁,解封时间:'.date('Y-m-d H:i:s',$block['block_time']), 'data' => null];
}
}
}
$block = db::name('block')->where(['type_text' => $login_device,'type' => 2])->find();
if ($block) {
return ['code' => 0, 'msg' => '设备已被封禁', 'data' => null];
if($block['block_time'] != 0 && $block['block_time'] <= time()){
db('block')->where(['id' => $block['id']])->delete();
}else{
if($block['block_time'] == 0){
return ['code' => 301, 'msg' => '设备已被永久封禁', 'data' => null];
}else{
return ['code' => 301, 'msg' => '设备已被封禁,解封时间:'.date('Y-m-d H:i:s',$block['block_time']), 'data' => null];
}
}
}
$ip = request()->ip();
$block = db::name('block')->where(['type_text' => $ip,'type' => 3])->find();
if ($block) {
return ['code' => 0, 'msg' => 'ip已被封禁', 'data' => null];
if($block['block_time'] != 0 && $block['block_time'] <= time()){
db('block')->where(['id' => $block['id']])->delete();
}else{
if($block['block_time'] == 0){
return ['code' => 301, 'msg' => 'ip已被永久封禁', 'data' => null];
}else{
return ['code' => 301, 'msg' => 'ip已被封禁,解封时间:'.date('Y-m-d H:i:s',$block['block_time']), 'data' => null];
}
}
}
$save_data = [];
@@ -181,6 +209,17 @@ class Login extends Model
}
$return_res[0]['auth'] = $isAuth;
//是否可以发布动态
$user_rechange = db::name('vs_user_recharge')->field('sum(money) as money')->where(['user_id' => $user_info['id'],'pay_status' => 2])->find();
//系统配置
$config_money = get_system_config_value('private_chat_recharge_money');
if(($config_money > 0) && ($user_rechange['money'] < $config_money)){
$return_res[0]['is_can_chat'] = 0;
}else{
$return_res[0]['is_can_chat'] = 1;
}
$return_res[0]['can_chat_money'] = $config_money;
return ['code' => 1, 'msg' => '登录成功', 'data' => $return_res];
}else{
return ['code' => 0, 'msg' => '登录失败,账号失效', 'data' => null];
@@ -254,28 +293,52 @@ class Login extends Model
return ['code' => 0, 'msg' => '密码不能为空', 'data' => null];
}
$user_info = model('User')->where(['mobile' => $user_name,'status'=>1])->find();
$user_info = model('User')->where(['mobile' => $user_name,'status'=>['<>',0]])->find();
if (empty($user_info)) {
return ['code' => 0, 'msg' => '用户不存在', 'data' => null];
}
//今天误次数
$sms_count = db::name('sms_error')->where(['mobile' => $user_name,'createtime' => ['between', [strtotime(date('Y-m-d')), time()]]])->count();
if (md5($password) != $user_info['password']) {
return ['code' => 0, 'msg' => '密码错误', 'data' => null];
if ($sms_count >= 5) {
$user_id = db::name('user')->where('mobile', $user_name)->value('id');
$block_num = db::name('block')->where(['type' => 1, 'type_text' => $user_id])->find();
if(!$block_num){
//封禁账号
$error_data = [
'type' => 1,
'type_text' => $user_id,
'block_time' => time() + 60 * 60 * 24,
'block_note' => '账号登录异常被封禁24小时',
'createtime'=> time(),
];
db::name('block')->insert($error_data);
db::name('user')->where('id', $user_id)->update(['status' => 2]);
}
return ['code' => 0, 'msg' => '登录错误次数过多,账号已被封禁,请联系管理员处理','data' =>null];
}
$count_sms = max(5 - $sms_count, 0);
if (md5($password) != $user_info['password']) {
$data = [
'mobile' => $user_name,
'type' => 2,
'sms' => $password,
'createtime'=> time(),
];
db::name('sms_error')->insert($data);
return ['code' => 0, 'msg' => '密码错误,'.$count_sms.'次后账号将被封禁24小时', 'data' => null];
}
// $multi_user = [];
// //查询手机号绑定的账号
// $phone_user = $this->phone_login_query($user_name);
// if($phone_user['code'] == 1){
// //获取返回数据的长度
// if(count($phone_user['data']) >= 2){
// $multi_user = $phone_user['data'];
// }
// }
$login = $this->login($user_info,$system,$login_device);
if($login['code'] != 1){
return $login;
}
//登陆成功后 把所有的登录错误删除掉
db::name('sms_error')->where(['mobile' => $user_name])->delete();
return ['code' => 1, 'msg' => '登录成功', 'data' => $login['data']];
}
@@ -300,12 +363,24 @@ class Login extends Model
if($type == 'wx'){
$openid = $userinfo['openid'];
$user_info_data = model('UserData')->where(['wx_openid' => $openid,'deletetime'=>0])->find();
$config_time = get_system_config_value('cancel_to_reset_reg');
if(isset($user_info_data) && $user_info_data['deletetime'] != 0 && time() - $user_info_data['deletetime'] < 86400 * $config_time){
return ['code' => 0, 'msg' => '注销后需等待'.$config_time.'天才能重新注册', 'data' => null];
}
}elseif ($type == 'ali'){
$ali_userid = $userinfo['open_id'];
$user_info_data = model('UserData')->where(['ali_userid' => $ali_userid,'deletetime'=>0])->find();
$config_time = get_system_config_value('cancel_to_reset_reg');
if(isset($user_info_data) && $user_info_data['deletetime'] != 0 && time() - $user_info_data['deletetime'] < 86400 * $config_time){
return ['code' => 0, 'msg' => '注销后需等待'.$config_time.'天才能重新注册', 'data' => null];
}
}elseif ($type == 'ios'){
$apple_id = $userinfo;
$user_info_data = model('UserData')->where(['apple_id' => $userinfo,'deletetime'=>0])->find();
$config_time = get_system_config_value('cancel_to_reset_reg');
if(isset($user_info_data) && $user_info_data['deletetime'] != 0 && time() - $user_info_data['deletetime'] < 86400 * $config_time){
return ['code' => 0, 'msg' => '注销后需等待'.$config_time.'天才能重新注册', 'data' => null];
}
}
else{
return ['code' => 0, 'msg' => '登录类型错误', 'data' => null];
@@ -371,10 +446,23 @@ class Login extends Model
//注销
public function cancel($token){
$user_info = model('UserToken')->where('token', $token)->find();
//用户注册时间
$register_time = db::name('user')->where('id', $user_info['user_id'])->value('createtime');
$config_time = get_system_config_value('reg_to_cancel');
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]);
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) {
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()]);
@@ -387,25 +475,16 @@ class Login extends Model
db::name('vs_room')->where('id', $value['id'])->update(['room_status' => 3]);
}
}
//查询用户所在房间
$room_list = db::name('vs_room_visitor')->where('user_id', $user_info['user_id'])->select();
if($room_list){
foreach ($room_list as &$value) {
model('Room')->quit_room($user_info['user_id'], $value['room_id'],$user_info['user_id']);
}
}
}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)->select();
$mobile = db::name('user')->where(['mobile' => $mob,'status' => ['<>',0]])->select();
if(isset($mobile) && count($mobile) < 2){
$user_auth = db::name('user_auth')->where('mobile', $mobile[0]['mobile'])->find();
if($user_auth){
db::name('user_auth')->where('id', $user_auth['id'])->delete();
}
db::name('user_auth')->where('mobile', $mob)->delete();
}
return ['code' => 1, 'msg' => '注销成功', 'data' => null];