85 Commits

Author SHA1 Message Date
848d491d59 充值上限 2025-09-25 14:36:26 +08:00
a71257de2f 错误修改 2025-09-25 03:42:21 +08:00
423f0cf7a4 任务推荐房间修改 2025-09-25 02:56:05 +08:00
a43acf509c 在线列表 2025-09-25 01:30:26 +08:00
df4343ccbb 注销流程改变 2025-09-24 23:29:29 +08:00
f1879d1905 错误屏蔽 2025-09-24 22:52:40 +08:00
8a60cc55f9 Merge remote-tracking branch 'origin/develop' into develop 2025-09-24 18:22:03 +08:00
f78ec648de 魅力等级显示错误修改 2025-09-24 18:21:53 +08:00
1b7f5d70b9 注销流程改变 2025-09-24 17:17:19 +08:00
a3376691bf 重新连接处理没有在房间是的情况 2025-09-24 17:05:55 +08:00
8856d82479 Merge remote-tracking branch 'origin/develop' into develop 2025-09-24 16:41:56 +08:00
b6c8ce98ee 魅力等级显示错误修改 2025-09-24 16:41:47 +08:00
0cab204745 后端 房间标签删除 2025-09-24 16:40:30 +08:00
9f1ebf2657 进入房间状态 2025-09-24 15:15:27 +08:00
4a6e0f4e0f 图片上传空格处理 2025-09-24 10:53:27 +08:00
7adc5bb6b3 换房间类型 拍卖位处理 2025-09-24 09:58:06 +08:00
8efa22b517 换房间类型 拍卖位处理 2025-09-23 23:28:28 +08:00
f19efd80ea 等级修改bug修改 跟新等级取值错误 2025-09-23 23:03:42 +08:00
fa3c0f648c 登录封禁判断处理 2025-09-23 22:49:37 +08:00
1f267f7636 登录封禁判断处理 2025-09-23 22:43:52 +08:00
0bf849d1c4 拍卖房切换 下拍卖位没有选关系的用户 2025-09-23 22:01:37 +08:00
983a3a2cdc 登录封禁返回 301 2025-09-23 21:43:11 +08:00
6e67b896af 房间在线列表过滤 2025-09-23 21:22:25 +08:00
09b3452795 我创建的房间 过滤 2025-09-23 19:51:00 +08:00
08ab3d18a1 Merge remote-tracking branch 'origin/develop' into develop 2025-09-23 19:04:18 +08:00
9cd5c78290 等级修改bug修改 2025-09-23 19:04:11 +08:00
01f63041a5 封禁登录提示 2025-09-23 19:03:05 +08:00
8abfa49494 等级修改bug修改 2025-09-23 15:55:22 +08:00
0728b51c8e 创建房间bug修改 2025-09-23 14:49:15 +08:00
09e5802e2b 创建房间兼容后台驳回房间。 2025-09-23 11:38:17 +08:00
e77293e8f1 后台用户为空兼容 2025-09-23 10:32:46 +08:00
c97e347923 飘屏文字修改 2025-09-22 21:52:55 +08:00
b75e4a0ddd Merge remote-tracking branch 'origin/develop' into develop 2025-09-22 20:36:43 +08:00
9a6c707f62 加是否可以发布动态字段 2025-09-22 20:36:36 +08:00
cc74849b2b 切后台 回来后 列表添加用户 2025-09-22 20:36:30 +08:00
849b0db43e Merge remote-tracking branch 'origin/develop' into develop 2025-09-22 20:24:42 +08:00
4f9c235787 加是否可以发布动态字段 2025-09-22 20:24:34 +08:00
1859c0edcf 切后台 回来后 列表添加用户 2025-09-22 19:41:53 +08:00
aef3a44910 房间审核加 系统信息推送 2025-09-22 18:35:44 +08:00
f803c33f4b Merge remote-tracking branch 'origin/develop' into develop 2025-09-22 16:47:32 +08:00
86f865d163 房间审核加 系统信息推送 2025-09-22 16:47:21 +08:00
e6f5decfca 房间群组创建 2025-09-22 16:22:47 +08:00
fa177cd610 寻乐会 和消息 2025-09-22 14:27:35 +08:00
2f241a1a20 定版之后bug修改-获取用户当前房间的巡乐会信息接口提交 2025-09-22 14:20:17 +08:00
db1bcb6e46 Merge remote-tracking branch 'origin/develop' into develop 2025-09-22 11:33:16 +08:00
63cb3a1c93 定版之后bug修改-获取用户当前房间的巡乐会信息接口提交 2025-09-22 11:33:09 +08:00
0e4bcb9f5a 关系过滤 2025-09-22 10:26:15 +08:00
e53494c0f5 定版之后bug修改 2025-09-22 09:28:10 +08:00
38cb41d57f 关系过滤 2025-09-22 09:23:40 +08:00
d9b65ff494 定版之后bug修改 2025-09-20 01:07:53 +08:00
a9e0411993 定版之后bug修改--寻乐会报错修复。 2025-09-20 00:04:11 +08:00
d668ec5e74 搜索房间 过滤注销房间 2025-09-19 19:33:11 +08:00
06068665e9 搜索房间 过滤注销房间 2025-09-19 19:29:43 +08:00
4380381a87 清除房间不在线用户 2025-09-19 19:22:05 +08:00
3655647b33 注销清掉实名 2025-09-19 18:58:34 +08:00
601f80d118 注销清掉实名 2025-09-19 18:45:07 +08:00
821048612d Merge remote-tracking branch 'origin/develop' into develop 2025-09-19 18:37:20 +08:00
f369d9c2d2 定版之后bug修改--缓存同意方法封装 2025-09-19 18:37:13 +08:00
d8e954493e 礼物墙里面 去掉盲盒礼物 2025-09-19 18:32:27 +08:00
3153404aaf 房间类型 2025-09-19 17:51:25 +08:00
2104552429 转盘礼物发送 2025-09-19 17:38:56 +08:00
73382d1460 定版之后bug修改 2025-09-19 17:33:23 +08:00
39d8853569 定版之后bug修改 2025-09-19 16:44:26 +08:00
90e5d2541d 定版之后bug修改 2025-09-19 16:13:41 +08:00
f499949d3e 房间类型合并 2025-09-19 15:40:22 +08:00
a3d3d7a47e 首页房间过滤条件 2025-09-19 14:42:02 +08:00
f2c221168c 首页房间过滤条件 2025-09-19 14:26:42 +08:00
3df9899e17 注销 登录限制 2025-09-19 11:43:29 +08:00
423452241e 定版之后bug修改----抽奖重构。 2025-09-19 10:25:18 +08:00
24a65ad21a 不在房间内 消息隐藏 2025-09-18 18:56:37 +08:00
10044688e7 不在房间内 消息隐藏 2025-09-18 18:18:16 +08:00
663e927b12 房间背景图更换 2025-09-18 17:35:26 +08:00
50ebe80013 名称注销后 可重复使用 2025-09-18 16:14:32 +08:00
9a8900739d 名称注销后 可重复使用 2025-09-18 15:40:00 +08:00
ff46a81bde 实名处理 2025-09-17 22:47:11 +08:00
ee59ee91b7 实名处理 2025-09-17 22:39:05 +08:00
7fb92fb7ab 定版之后bug修改----礼物按价格排序。巡乐会。 2025-09-17 21:07:08 +08:00
3c07a370e8 Merge remote-tracking branch 'origin/develop' into develop 2025-09-17 20:49:06 +08:00
ca2d1da548 定版之后bug修改----数组格式转换 2025-09-17 20:48:58 +08:00
68ff3cfdea 交友结束后 卡顿造成的没有收到推送,重新推送 2025-09-17 20:40:32 +08:00
d4923b8e56 地址更新处理 2025-09-17 19:51:39 +08:00
3d2735653e 定版之后bug修改----盲盒转盘记录日期修改 2025-09-17 18:45:07 +08:00
f7b6fb82b5 定版之后bug修改----盲盒转盘并发问题处理 2025-09-17 18:11:17 +08:00
1f0412d4a9 定版之后bug修改 2025-09-17 16:34:17 +08:00
c02872789e 定版之后bug修改 2025-09-17 16:00:43 +08:00
35 changed files with 2320 additions and 461 deletions

View File

@@ -593,10 +593,10 @@ class Activities extends adminApi
$lists[$key]['gift_id'] = $value['foreign_id'];
$lists[$key]['gift_name'] = $value['name'];
$gift_data = db::name('vs_gift')->where(['gid' => $value['foreign_id']])->find();
$lists[$key]['base_image'] = $gift_data['base_image'];
$lists[$key]['base_image'] = $gift_data['base_image']??"";
$lists[$key]['quantity'] = $value['quantity'];
$lists[$key]['quantity_str'] = $value['quantity']."";
$lists[$key]['gift_price'] = $gift_data['gift_price'];
$lists[$key]['gift_price'] = $gift_data['gift_price']?? "";
}elseif ($value['type'] == 3){
$lists[$key]['gift_id'] = $value['foreign_id'];
$lists[$key]['gift_name'] = $value['name'];

View File

@@ -75,6 +75,10 @@ class BlindBox extends adminApi
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
}
//$lists 按gift_price 降序排序
usort($lists, function($a, $b) {
return $b['gift_price'] - $a['gift_price'];
});
//统计
$total_data = [];
//每期总次数
@@ -856,7 +860,8 @@ class BlindBox extends adminApi
foreach ($lists_data as $key => $value) {
$lists[$key]['id'] = $value['id'];
$lists[$key]['periods'] = $value['periods'];
$lists[$key]['user'] = $value['user_id']."-".db::name('user')->where('id',$value['user_id'])->value('nickname');
$user = db::name('user')->field('user_code,nickname')->where('id',$value['user_id'])->find();
$lists[$key]['user'] = $user['user_code']."-".$user['nickname'];
//支付价格
$lists[$key]['pay_price'] = $value['pay_price'];
$gift = db::name('vs_gift')->field('gid,gift_name,gift_price')->where('gid',$value['locking_gift_id'])->find();
@@ -870,7 +875,9 @@ class BlindBox extends adminApi
}
//今日锁定礼物数量
$today = strtotime(date('Y-m-d'));
$locking_num = db::name('vs_room_pan_xlh_log')->where('createtime','>=',$today)->count();
$locking_num = db::name('vs_room_pan_xlh_log')->alias('a')
->join('vs_room_pan_xlh b', 'a.xlh_id = b.id')
->where('a.createtime','>=',$today)->where(['a.is_send'=>1,'b.room_id'=>$room_id])->sum('a.num');
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,

View File

@@ -1,7 +1,7 @@
<?php
namespace app\adminapi\controller;
ini_set('memory_limit', '512M'); // 临时增加到512MB
use app\common\controller\adminApi;
use think\Db;
@@ -54,12 +54,14 @@ class GiveGift extends adminApi
$where['from'] = $from;
}
// 时间筛选优化
if(!empty($start_time) && !empty($end_time)){
$where['createtime'] = ['between', [strtotime($start_time), strtotime($end_time.' 23:59:59')]];
} elseif(!empty($start_time)){
$where['createtime'] = ['>=', strtotime($start_time)];
} elseif(!empty($end_time)){
$where['createtime'] = ['<=', strtotime($end_time.' 23:59:59')];
if (!empty($start_time) || !empty($end_time)) {
if (!empty($start_time) && !empty($end_time)) {
$where['createtime'] = ['between', [strtotime($start_time), strtotime($end_time.' 23:59:59')]];
} elseif (!empty($start_time)) {
$where['createtime'] = ['>=', strtotime($start_time)];
} elseif (!empty($end_time)) {
$where['createtime'] = ['<=', strtotime($end_time.' 23:59:59')];
}
}
//礼物总数
$gift_num = db::name('vs_give_gift')->where($where)->sum('number');
@@ -73,24 +75,32 @@ class GiveGift extends adminApi
$room_owner_earning = 0;
// 获取所有送礼记录
$list = db::name('vs_give_gift')->where($where)->order('id', 'desc')->select();
$gift_ids = array_column($list, 'id');
if (!empty($gift_ids)) {
$lists = db::name('vs_give_gift')->where($where)->order('id', 'desc')->page($page, $page_limit)->select();
$count = db::name('vs_give_gift')->where($where)->count();
$earning_list = [];
if(!empty($where)){
$gift_ids = db::name('vs_give_gift')->where($where)->column('id');
if (!empty($gift_ids)) {
// 批量获取所有收益记录
$earning_list = db::name('vs_give_gift_ratio_log')
->field('app_earning,gift_user_earning,room_owner_earning')
->where('give_gift_id', 'in', $gift_ids)
->order('id', 'desc')
->select();
}
}else{
// 批量获取所有收益记录
$earning_list = db::name('vs_give_gift_ratio_log')
->where('give_gift_id', 'in', $gift_ids)
->field('app_earning,gift_user_earning,room_owner_earning')
->order('id', 'desc')
->select();
// 计算总收益
foreach ($earning_list as $earning) {
$app_earning += $earning['app_earning'];
$receive_earning += $earning['gift_user_earning'];
$room_owner_earning += $earning['room_owner_earning'];
}
}
$count = count($list);
$lists = $this->array_pagination($list, $page, $page_limit);
// 计算总收益
foreach ($earning_list as $earning) {
$app_earning += $earning['app_earning'];
$receive_earning += $earning['gift_user_earning'];
$room_owner_earning += $earning['room_owner_earning'];
}
// 提取所有需要关联查询的ID
$user_ids = array_merge(

View File

@@ -114,17 +114,27 @@ class Index extends adminApi
$return_data['register_count'] = db::name('user')->where('status', 1)->where('is_robot', 0)->whereTime('createtime', 'today')->count();
//充值会员数
$return_data['recharge_count'] = db::name('vs_user_recharge')->where('pay_status',2)->group('user_id')->count();
//充值会员百分比
$return_data['recharge_count_percent'] = round(($return_data['recharge_count'] / $return_data['member_count']) * 100);
//未充值会员数
$return_data['no_recharge_count'] = $return_data['member_count'] - $return_data['recharge_count'];
$return_data['no_recharge_count_percent'] = round(($return_data['no_recharge_count'] / $return_data['member_count']) * 100);
//IOS用户数
$return_data['ios_count'] = db::name('user')->where('status', 1)->where('is_robot', 0)->where('system', 'iOS')->count();
$return_data['ios_count_percent'] = round(($return_data['ios_count'] / $return_data['member_count']) * 100);
//安卓用户数
$return_data['android_count'] = $return_data['member_count']-$return_data['ios_count'];
$return_data['android_count_percent'] = round(($return_data['android_count'] / $return_data['member_count']) * 100);
if(empty($return_data['member_count'])){
$return_data['recharge_count_percent'] = 0;
$return_data['no_recharge_count'] = 0;
$return_data['no_recharge_count_percent'] = 0;
$return_data['no_recharge_count'] = 0;
$return_data['ios_count_percent'] = 0;
$return_data['android_count'] = 0;
$return_data['android_count_percent'] = 0;
}else{
//充值会员百分比
$return_data['recharge_count_percent'] = round(($return_data['recharge_count'] / $return_data['member_count']) * 100);
//未充值会员数
$return_data['no_recharge_count'] = $return_data['member_count'] - $return_data['recharge_count'];
$return_data['no_recharge_count_percent'] = round(($return_data['no_recharge_count'] / $return_data['member_count']) * 100);
//IOS用户数
$return_data['ios_count'] = db::name('user')->where('status', 1)->where('is_robot', 0)->where('system', 'iOS')->count();
$return_data['ios_count_percent'] = round(($return_data['ios_count'] / $return_data['member_count']) * 100);
//安卓用户数
$return_data['android_count'] = $return_data['member_count']-$return_data['ios_count'];
$return_data['android_count_percent'] = round(($return_data['android_count'] / $return_data['member_count']) * 100);
}
//礼物打赏实时统计
//一个月内的礼物打赏

View File

@@ -93,18 +93,19 @@ class Level extends adminApi
if(!$level_id){
return V(0,"添加失败");
}
//等级特权
$decorate = db::name("vs_decorate")->where(['did' => $gift_id, 'delete_time' => 0])->find();
if(empty($decorate)){
return V(0,"请选择等级特权");
}
if($gift_id){
if(!empty($gift_id)){
//等级特权
$decorate = db::name("vs_decorate")->where(['did' => $gift_id, 'delete_time' => 0])->find();
if(empty($decorate)){
return V(0,"请选择等级特权");
}
db::name('vs_wealth_level_rights')->insert([
'level_id' => $level_id,
'gift_id' => $gift_id,
'createtime' => time()
]);
}
return V(1,"成功", ['id'=>$level]);
}
/*

View File

@@ -186,7 +186,7 @@ class Room extends adminApi
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_name = input('search_name', '');
$where=[];
$where['deletetime'] = 0;
//标签名称
if($search_name!==''){
$where['label_name'] = ['like', '%'.$search_name.'%'];
@@ -237,7 +237,7 @@ class Room extends adminApi
if(!$type_data){
return V(0,"房间类型不存在");
}
$result = db::name($this->table_room_type)->where(['id'=>$type_id])->delete();
$result = db::name($this->table_room_type)->where(['id'=>$type_id])->update(['deletetime'=>time()]);
if(!$result){
return V(0,"删除失败");
}
@@ -926,9 +926,22 @@ class Room extends adminApi
if($status){
$data['status'] = $status;
}
$bg_url = db::name('vs_room_background')->where('id',$id)->value('image_url');
$res = db::name('vs_room_background')->where('id',$id)->update($data);
if($res){
if($bg_url != $image_url){
//查询使用默认背景的房间
$room_list = db::name('vs_room')->field('id,room_background')->where(['room_status' => ['<>',3]])->select();
if($room_list){
foreach ($room_list as $v){
//判断是否使用默认背景room_background 字段值是否是以 get_system_config_value('web_site') 开头
if(strpos($v['room_background'],get_system_config_value('web_site')) !== FALSE){
db::name('vs_room')->where('id',$v['id'])->update(['room_background' => $image_url]);
}
}
}
}
return V(1,"成功");
}
else{
@@ -1228,7 +1241,7 @@ class Room extends adminApi
if($apply_status!==''){
$where['apply_status'] = $apply_status;
}else{
$where['apply_status'] = ['<>',2];
$where['apply_status'] = 1;
}
$count = db::name($this->table)->where($where)->count();
@@ -1255,6 +1268,7 @@ class Room extends adminApi
//房间审核
public function room_audit(){
$id = input('id', '');
$remark = input('remark', '');
if($id == ''){
return V(0,"参数错误");
}
@@ -1262,6 +1276,10 @@ class Room extends adminApi
if($apply_status == ''){
return V(0,"参数错误");
}
$room_data = db::name('vs_room')->where(['id'=>$id])->find();
if(!$room_data){
return V(0,"参数错误");
}
$result = db::name('vs_room')->where(['id'=>$id])->update([
'apply_status'=>$apply_status,
'is_open_blind_box_turntable'=>1,
@@ -1270,8 +1288,28 @@ class Room extends adminApi
if(!$result){
return V(0,"修改失败");
}
//发系统信息
if($apply_status ==2){
$deal_content = '审核通过';
}elseif($apply_status ==3){
$deal_content = '审核未通过';
}
if(!empty($remark)){
$deal_content .= ',原因:'.$remark;
}
db::name('system_message')->insert([
'title' => '房间审核结果',
'content' => '您创建的房间'.$room_data['room_name'].$deal_content,
'type' => 1,
'admin_id' => Session::get('admin_id'),
'receiving_id' => $room_data['user_id'],
'createtime' => time(),
]);
//房间绑定盘
model('Room')->bindPan($id);
return V(1,"成功");
}

View File

@@ -159,7 +159,7 @@ class Underage extends adminApi
*/
public function content_List(){
$page = input('page', 1);
$page_limit = input('pageSize', 30);
$page_limit = input('page_limit', 10);
$search_name = input('search_name', '');
$where = [];
if($search_name){
@@ -167,6 +167,7 @@ class Underage extends adminApi
}
$list = DB::name('vs_underage_mode_content')->where($where)->order('sort,id', 'asc')->page($page, $page_limit)->select();
$count = DB::name('vs_underage_mode_content')->where($where)->count();
$return_lists = [];
foreach ($list as $key => $value) {
$return_lists[$key]['id'] = $value['id'];
$return_lists[$key]['type_id'] = $value['type_id'];
@@ -266,7 +267,7 @@ class Underage extends adminApi
$type_id = input('type_id', '');
$title = input('title', '');
$introduced = input('introduced', '');
$content = input('content', '');
$content = $_POST['content']??"";
$url = input('url', '');
$img = input('img', '');
$from = input('from', 1);
@@ -303,9 +304,6 @@ class Underage extends adminApi
$data['content'] = $content;
}
$result = db::name('vs_underage_mode_content')->where(['id'=>$id])->update($data);
if(!$result){
return V(0,"修改失败");
}
return V(1,"成功", ['id'=>$id]);
}
}

View File

@@ -45,6 +45,9 @@ class UploadFile extends Upload
$fileName = $pinyin->permalink($fileName, ''); // 转换为无分隔符的拼音
}
// 去除文件名中的空格
$fileName = str_replace(' ', '', $fileName);
// 添加唯一标识符(时间戳+随机数)
$uniqueId = time() . mt_rand(1000, 9999);
$objectName = $fileName . '_' . $uniqueId . '.' . $extension;

View File

@@ -39,18 +39,18 @@ class BlindBoxTurntable extends BaseCom
$gift_user_ids = input('gift_user_ids',0);
$num = input('num',1);
$heart_id = input('heart_id',0);
$reslut = model('BlindBoxTurntableGift')->draw_gift($gift_bag_id, $user_id, $gift_user_ids,$num,$room_id,$heart_id);
$reslut = model('BlindBoxTurntableGiftDraw')->draw_gift($gift_bag_id, $user_id, $gift_user_ids,$num,$room_id,$heart_id);
return v($reslut['code'], $reslut['msg'], $reslut['data']);
}
/*
* 礼物发放
*/
public function gift_send(){
$key_name = "api:blind_box_turntable:gift_send:" . $this->uid;
redis_lock_exit($key_name);
// $key_name = "api:blind_box_turntable:gift_send:" . $this->uid;
// redis_lock_exit($key_name);
$send_id = input('send_id',0);
$reslut = model('BlindBoxTurntableGift')->gift_send($send_id);
redis_unlock($key_name);
// redis_unlock($key_name);
return v($reslut['code'], $reslut['msg'], $reslut['data']);
}
@@ -92,7 +92,7 @@ class BlindBoxTurntable extends BaseCom
$user_id = $this->uid;
$room_id = input('room_id',0);
$num = input('num',1);
$reslut = model('BlindBoxTurntableGift')->xlh_draw_gift($user_id,$num,$room_id);
$reslut = model('BlindBoxTurntableGiftDraw')->xlh_draw_gift($user_id,$num,$room_id);
return v($reslut['code'], $reslut['msg'], $reslut['data']);
}
/*

View File

@@ -20,7 +20,7 @@ class Index extends BaseCom
$is_top = input('is_top', 0); //1非置顶2置顶
$label_id = input('label_id', 0);
$page = input('page', 1);
$page_limit = input('page_limit', 15);
$page_limit = input('page_limit', 20);
$reslut = model('Room')->room_list($label_id,$is_top, $page, $page_limit);
return V($reslut['code'], $reslut['msg'], $reslut['data'], $reslut['api_version']);
@@ -29,7 +29,7 @@ class Index extends BaseCom
//房间类型列表
public function room_type_list()
{
$list = db::name('vs_room_type')->where('status', 1)->field('id,type_name as label_name')->order('sort asc')->select();
$list = db::name('vs_room_type')->where(['status' => 1, 'deletetime' => 0])->field('id,type_name as label_name')->order('sort asc')->select();
//给前面添加一组数据
array_unshift($list, ['id' => -1, 'label_name' => '热门']);
return V(1, '获取成功', $list);

View File

@@ -47,7 +47,7 @@ class Payment extends Controller
return V(0, '未成年不可充值!', null);
}
if (!is_numeric($money) || floor($money) != $money || $money <= 0 || $money >= 2000) {
if (!is_numeric($money) || floor($money) != $money || $money <= 0 || $money > 2000) {
return V(0, '请选择正确的充值金额', null);
}
$user_code = db::name('user')->where(["id" => $user_id])->value('user_code');

View File

@@ -430,4 +430,25 @@ class Room extends BaseCom
$reslut = model('Room')->room_user_charm_list($room_id, $user_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
// //创建房间
// public function create_rooms()
// {
// //查询所有的房间信息
// $room = db::name('vs_room')->field('id,user_id')->where(['room_status' => ['<>',3]])->select();
// $i = 0;
// foreach ($room as $value) {
// $reslut = model('Tencent')->create_group($value['user_id'],'room'.$value['id']);
// $i++;
// }
// return['code' => 1, 'msg' => '成功创建了'.$i.'个房间', 'data' => null];
// }
//用户重连
public function user_reconnect()
{
$room_id = input('room_id', 0);
$reslut = model('Room')->user_reconnect($this->uid, $room_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
}

View File

@@ -33,9 +33,9 @@ class RoomPit extends BaseCom
$room_label = $res['data']['label_id'];
$room_type = $res['data']['type_id'];
if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4))|| $room_type == 2 || $room_type == 7){
if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8))|| $room_type == 2 || $room_type == 7){
$reslut = model('RoomPit')->apply_pit($this->uid, $room_id,$pit_number);
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$reslut = model('RoomSong')->apply_kpit($this->uid, $room_id,$pit_number);
}else{
return V(0, '房间不存在', null);
@@ -113,9 +113,9 @@ class RoomPit extends BaseCom
}
$room_label = $res['data']['label_id'];
$room_type = $res['data']['type_id'];
if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4)) || $room_type == 2 || $room_type == 7){
if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)) || $room_type == 2 || $room_type == 7){
$reslut = model('RoomPit')->DownPit($this->uid, $room_id,$pit_number);
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$reslut = model('RoomSong')->down_kpit($this->uid, $room_id);
}

View File

@@ -36,13 +36,15 @@ class Search extends BaseCom
$where = [
'room_number' => $search,
'apply_status' => 2,
'type_id' => ['<>',6]
'type_id' => ['<>',6],
'room_status' => 1
];
}else{
$where = [
'room_name' => ['like', '%'.$search . '%'],
'apply_status' => 2,
'type_id' => ['<>',6]
'type_id' => ['<>',6],
'room_status' => 1
];
}

View File

@@ -9,11 +9,11 @@ class Banner extends Model
{
protected $table = 'fa_vs_banner';
public $ShowType = [
// 1 => '引导页',
// 2 => '启动页',
1 => '引导页',
2 => '启动页',
3 => '首页轮播图',
4 => '工会',
5 => '帮助反馈'
4 => '房间首页',
5 => '工会列表页广告位'
];
//1纯展示 2文章 3房间 4个人主页 5外站'
public $Type = [

View File

@@ -440,11 +440,12 @@ class BlindBoxTurntableGift extends Model
];
$push->xunlehui($text_list_new);
// 巡乐会正式开始
$this_xlh_periods = db::name('vs_room')->where('id',$room_id)->value('xlh_periods');
$pan_xlh_id = db::name('vs_room_pan_xlh')->insertGetId([
'room_id' => $room_id,
'gift_id' => $xlh_ext['locking_condition']['locking_gift_id'],
'homeowner_gift_id' => $xlh_ext['locking_condition']['give_homeowner_gift_id'],
'periods' => $room['xlh_periods']+1,
'periods' => $this_xlh_periods+1,
'num' => 0,
'end_time' => time() + $xlh_ext['locking_time']['end_time'] * 60,
'createtime' => time()
@@ -627,79 +628,88 @@ class BlindBoxTurntableGift extends Model
* 礼物特效播放
*/
public function gift_send($send_id){
$blind_box_turntable = db('vs_blind_box_turntable_log')->where(['id'=>$send_id,'is_sued'=>0])->find();
if(!$blind_box_turntable){
return ['code' => 1, 'msg' => '成功', 'data' => null];
}
$room_id = $blind_box_turntable['room_id'];
$blind_box_turntable_log = db('vs_blind_box_turntable_results_log')->where(['tid'=>$send_id])->select();
if(!$blind_box_turntable_log){
return ['code' => 0, 'msg' => '数据不存在','data' => null];
}
$room_name = Db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->value('room_name');
$FromUserInfo = Db::name('user')->where(['id'=>$blind_box_turntable['user_id']])->find();
$user_nickname = $FromUserInfo['nickname'];
$textMessage = $user_nickname;
$text_message = [];
foreach ($blind_box_turntable_log as $key => $value) {
$ToUserInfo = Db::name('user')->where(['id' => $value['gift_user_id']])->field('id as user_id,nickname,avatar,sex')->find();
$ToUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value['gift_user_id']);//财富图标
$ToUserInfo['icon'][1] = model('UserData')->user_charm_icon($value['gift_user_id']);//魅力图标
$ToUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $value['gift_user_id'],'room_id' => $room_id])->value('charm');//魅力
$draw_gift = Db::name('vs_gift')->where(['gid'=>$value['gift_id']])->find();
$textMessage = $textMessage . ' 送给 ' . $ToUserInfo['nickname']. ' 盲盒转盘礼物 ' . $draw_gift['gift_name'].' x ' .$value['count']."\n";
$play_image[] = $draw_gift['play_image'];
$text_message = $user_nickname . '在' . $room_name . '房间送给了' . $ToUserInfo['nickname'] . $draw_gift['gift_name'] . 'X' . $value['count']."\n";
if($draw_gift['is_public_server'] == 1) {
$text_list_new[] = [
'text' => $text_message,
'gift_picture' => $draw_gift['base_image'],
'room_id' => $room_id,
'fromUserName' => $FromUserInfo['nickname'],
'toUserName' => $ToUserInfo['nickname'],
'giftName' => $draw_gift['gift_name'],
'roomId' => $room_id,
'number' => $value['count'],
];
try{
$blind_box_turntable = db('vs_blind_box_turntable_log')->where(['id'=>$send_id,'is_sued'=>0])->find();
if(!$blind_box_turntable){
return ['code' => 1, 'msg' => '成功', 'data' => null];
}
$ToUserInfosList[$value['gift_user_id']] = $ToUserInfo;
$room_id = $blind_box_turntable['room_id'];
$blind_box_turntable_log = db('vs_blind_box_turntable_results_log')->where(['tid'=>$send_id])->select();
if(!$blind_box_turntable_log){
return ['code' => 0, 'msg' => '数据不存在','data' => null];
}
$room_name = Db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->value('room_name');
$FromUserInfo = Db::name('user')->where(['id'=>$blind_box_turntable['user_id']])->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($blind_box_turntable['user_id']);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($blind_box_turntable['user_id']);//魅力图标
$user_nickname = $FromUserInfo['nickname'];
$textMessage = $user_nickname;
$text_message = [];
foreach ($blind_box_turntable_log as $key => $value) {
$ToUserInfo = Db::name('user')->where(['id' => $value['gift_user_id']])->field('id as user_id,nickname,avatar,sex')->find();
$draw_gift = Db::name('vs_gift')->where(['gid'=>$value['gift_id']])->find();
$textMessage = $textMessage . ' 送给 ' . $ToUserInfo['nickname']. ' 盲盒转盘礼物 ' . $draw_gift['gift_name'].' x ' .$value['count']."\n";
$play_image[] = $draw_gift['play_image'];
$gift_names[] = $draw_gift['gift_name'];
}
foreach($ToUserInfosList as $userInfo) {
$ToUserInfos[] = $userInfo;
}
$text = [
'FromUserInfo' => $FromUserInfo,
'ToUserInfos' => $ToUserInfos,
'GiftInfo' => [
'play_image' => implode(',',$play_image),
],
'text' => $textMessage
];
//聊天室推送系统消息
model('Chat')->sendMsg(1005,$room_id,$text);
$roomtype = Db::name('vs_room')->where(['id' => $room_id])->value('type_id');
if($roomtype == 6){
//推送消息
$hot_value = db::name('vs_give_gift')->where('from_id', $room_id)->where('from',6)
->sum('total_price');
$text1 = [
'room_id' => $room_id,
'hot_value' => $hot_value * 10,
'text' => '房间心动值变化'
$text_message = $user_nickname . '在' . $room_name . '房间送给了' . $ToUserInfo['nickname'] . $draw_gift['gift_name'] . 'X' . $value['count']."\n";
if($draw_gift['is_public_server'] == 1) {
$text_list_new[] = [
'text' => $text_message,
'gift_picture' => $draw_gift['base_image'],
'room_id' => $room_id,
'fromUserName' => $FromUserInfo['nickname'],
'toUserName' => $ToUserInfo['nickname'],
'giftName' => $draw_gift['gift_name'],
'roomId' => $room_id,
'number' => $value['count'],
];
}
$ToUserInfosList[$value['gift_user_id']] = $ToUserInfo;
}
foreach($ToUserInfosList as &$userInfo) {
$userInfo['icon'][0] = model('UserData')->user_wealth_icon($userInfo['user_id']);//财富图标
$userInfo['icon'][1] = model('UserData')->user_charm_icon($userInfo['user_id']);//魅力图标
$userInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $userInfo['user_id'],'room_id' => $room_id])->value('charm');//魅力
$ToUserInfos[] = $userInfo;
}
$text = [
'FromUserInfo' => $FromUserInfo,
'ToUserInfos' => $ToUserInfos,
'GiftInfo' => [
'play_image' => implode(',',$play_image),
'gift_name' => implode(',',$gift_names),
],
'text' => rtrim($textMessage, "\n")
];
//聊天室推送系统消息
model('Chat')->sendMsg(1028,$room_id,$text1);
}else{
if(!empty($text_list_new)){
//推送礼物横幅
$push = new Push($blind_box_turntable['user_id'], $room_id);
$push->giftBanner($text_list_new);
model('Chat')->sendMsg(1005,$room_id,$text);
$roomtype = Db::name('vs_room')->where(['id' => $room_id])->value('type_id');
if($roomtype == 6){
//推送消息
$hot_value = db::name('vs_give_gift')->where('from_id', $room_id)->where('from',6)
->sum('total_price');
$text1 = [
'room_id' => $room_id,
'hot_value' => $hot_value * 10,
'text' => '房间心动值变化'
];
//聊天室推送系统消息
model('Chat')->sendMsg(1028,$room_id,$text1);
}else{
if(!empty($text_list_new)){
//推送礼物横幅
$push = new Push($blind_box_turntable['user_id'], $room_id);
$push->giftBanner($text_list_new);
}
}
db::name('vs_blind_box_turntable_log')->where('id', $send_id)->update(['is_sued' => 1, 'updatetime' => time()]);
return ['code' => 1, 'msg' => '成功', 'data' => null];
} catch (\Exception $e) {
return ['code' => 0, 'msg' => "网络请求错误,请重试!", 'data' => null];
}
db::name('vs_blind_box_turntable_log')->where('id', $send_id)->update(['is_sued' => 1, 'updatetime' => time()]);
return ['code' => 1, 'msg' => '成功', 'data' => null];
}
/*
@@ -716,9 +726,9 @@ class BlindBoxTurntableGift extends Model
->join('vs_blind_box_turntable_log b','b.id = a.tid','left')
->join('user c','a.gift_user_id = c.id','left')
->join('vs_gift d','d.gid = a.gift_id','left')
->field('a.gift_id,a.count,a.gift_user_id,b.createtime,c.nickname,d.gift_name as gift_name,d.base_image')
->field('a.gift_id,a.count,a.gift_user_id,a.createtime,c.nickname,d.gift_name as gift_name,d.base_image')
->where($where)
->order('b.createtime desc')
->order('a.createtime desc')
->page($page,$page_size)
->select();
foreach ($list as &$v){
@@ -740,9 +750,9 @@ class BlindBoxTurntableGift extends Model
->join('user c','b.user_id = c.id','left')
->join('vs_gift_bag_detail d','d.foreign_id = a.gift_id','left')
->join('vs_gift e','e.gid = a.gift_id','left')
->field('a.gift_id,a.count,b.user_id,b.createtime,c.nickname,d.name as gift_name,e.base_image')
->field('a.gift_id,a.count,b.user_id,a.createtime,c.nickname,d.name as gift_name,e.base_image')
->where($where)
->order('b.createtime desc')
->order('a.createtime desc')
->page($page,$page_size)
->select();
foreach ($list as &$v){
@@ -754,6 +764,7 @@ class BlindBoxTurntableGift extends Model
* 巡乐会
*/
public function xlh_gift_list($room_id){
$room_data = db::name('vs_room')->field('xlh_periods,xlh_periods_num')-> where('id',$room_id)->find();
$gift_bag_id = 13;
$xlh_box = db::name('vs_gift_bag')->where('id',$gift_bag_id)->find();
$xlh_ext = json_decode($xlh_box['ext'],true);
@@ -775,13 +786,27 @@ class BlindBoxTurntableGift extends Model
//巡乐会主礼物
$xlh_main_gift = db::name('vs_gift')->where('gid',$xlh_ext['locking_condition']['locking_gift_id'])->find();
//中奖用户
$xlh_periods = db::name('vs_room')->where('id',$room_id)->value('xlh_periods');
$pan_xlh = db::name('vs_room_pan_xlh')->where(['room_id'=>$room_id,'periods'=>$xlh_periods])->find();
$xlh_periods = $room_data['xlh_periods']??0;
$pan_xlh = db::name('vs_room_pan_xlh')->where(['room_id'=>$room_id,'periods'=>$xlh_periods,'send_time'=>0])->find();
if(empty($pan_xlh)){
return ['code' => 0, 'msg' => '未开始', 'data' => null];
if($room_data['xlh_periods_num'] >= $xlh_ext['open_condition']['start_num']){
$pan_xlh_id = db::name('vs_room_pan_xlh')->insertGetId([
'room_id' => $room_id,
'gift_id' => $xlh_ext['locking_condition']['locking_gift_id'],
'homeowner_gift_id' => $xlh_ext['locking_condition']['give_homeowner_gift_id'],
'periods' => $xlh_periods+1,
'num' => 0,
'end_time' => time() + $xlh_ext['locking_time']['end_time'] * 60,
'createtime' => time()
]);
db::name("vs_room")->where('id',$room_id)->setInc('xlh_periods');//修改巡乐会期数
$pan_xlh = db::name('vs_room_pan_xlh')->where(['id'=>$pan_xlh_id])->find();
}else{
return ['code' => 0, 'msg' => '未开始', 'data' => null];
}
}
$xlh_user_data= null;
if($pan_xlh['user_id']){
if($pan_xlh && $pan_xlh['user_id']){
$xlh_user = db::name('user')->where('id',$pan_xlh['user_id'])->find();
$xlh_user_data = [
'user_id' => $xlh_user['id'],
@@ -789,11 +814,16 @@ class BlindBoxTurntableGift extends Model
'avatar' => $xlh_user['avatar'],
];
}
//$gift_list 按gift_price 升序排序
usort($gift_list, function($a, $b) {
return $a['gift_price'] - $b['gift_price'];
});
$result_data = [
'title' => $xlh_box['name'],
'rule_url' => get_system_config_value('web_site')."/api/Page/get_gift_box_rule?box_id=".$xlh_box["id"],
'box_price' => $xlh_ext['xlh_box_price'],
'xlh_end_time' =>$pan_xlh['end_time'],
'xlh_end_time' =>$pan_xlh['end_time']??0,
'give_homeowner_gift' => [
'gift_id' => $room_user_gift['gid'],
'gift_name' => $room_user_gift['gift_name'],
@@ -804,7 +834,7 @@ class BlindBoxTurntableGift extends Model
'gift_name' => $xlh_main_gift['gift_name'],
'gift_price' => $xlh_main_gift['gift_price'],
'base_image' => $xlh_main_gift['base_image'],
'gift_num' => $pan_xlh['num']
'gift_num' => $pan_xlh['num']??0
],
'xlh_user' => $xlh_user_data,
'gift_list' => $gift_list,
@@ -1073,9 +1103,9 @@ class BlindBoxTurntableGift extends Model
->alias('a')
->join('vs_room_pan_xlh b','b.id = a.parent_id','left')
->join('vs_gift c','c.gid = a.gift_id','left')
->field('a.gift_id,a.num as count,b.createtime,c.gift_name as gift_name,c.base_image')
->field('a.gift_id,a.num as count,a.createtime,c.gift_name as gift_name,c.base_image')
->where($where)
->order('b.createtime desc')
->order('a.createtime desc')
->page($page,$page_size)
->select();
foreach ($list as &$v){
@@ -1098,9 +1128,9 @@ class BlindBoxTurntableGift extends Model
->join('vs_gift c','c.gid = a.gift_id','left')
->join('fa_user d','d.id = a.user_id','left')
->join('vs_gift_bag_detail e','e.foreign_id = a.gift_id','left')
->field('a.gift_id,a.num as count,b.createtime,c.gift_name,c.base_image,d.nickname')
->field('a.gift_id,a.num as count,a.createtime,c.gift_name,c.base_image,d.nickname')
->where($where)
->order('b.createtime desc')
->order('a.createtime desc')
->page($page,$page_size)
->select();
foreach ($list as &$v){
@@ -1108,4 +1138,37 @@ class BlindBoxTurntableGift extends Model
}
return ['code' => 1, 'msg' => '成功', 'data' => $list];
}
/*
* 获取用户当前房间的巡乐会信息
*/
public function get_user_xlh_info($room_id){
$gift_bag_id = 13;
$xlh_box = db::name('vs_gift_bag')->where('id',$gift_bag_id)->find();
$xlh_ext = json_decode($xlh_box['ext'],true);
$room_data = db('vs_room')
->where(['id'=>$room_id])
->field('id,room_name,xlh_periods,xlh_periods_num')
->find();
$xlh_data = db('vs_room_pan_xlh')
->where(["room_id"=>$room_id,"periods"=>$room_data['xlh_periods']])
->field('id,room_id,periods,end_time')
->find();
//寻乐会状态
$xlh_status = 0;
// 状态
if($room_data['xlh_periods_num'] >= $xlh_ext['open_condition']['start_num']){
$xlh_status = 1;//状态 1:巡乐会开始 2:即将开始 0:等待开始
} elseif($room_data['xlh_periods_num'] >= $xlh_ext['open_condition']['waiting_start_num'] && $room_data['xlh_periods_num'] < $xlh_ext['open_condition']['start_num']){
$xlh_status = 2;//状态 1:巡乐会开始 2:即将开始开始 0:等待开始
}else{
$xlh_status = 0;//未开始
}
return [
'activities_name' => $xlh_box['name'],
'icon' => null,
'xlh_status'=>$xlh_status,
'end_time'=>$xlh_data['end_time'] ?? 0,
];
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -135,13 +135,13 @@ class DailyTasks extends Model
$v['processing_type'] = 2;
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];
//跳转的房间路径
$v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6]])->orderRaw('rand()')->value('id');
$v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6],'apply_status'=>2])->orderRaw('rand()')->value('id');
$v['target_quantity'] = $v['target_quantity'] * 60;
$v['is_time'] = 1;
}elseif(in_array($v['task_id'],[10])){
$v['processing_type'] = 7;
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];
$v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6]])->orderRaw('rand()')->value('id');
$v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6],'apply_status'=>2])->orderRaw('rand()')->value('id');
} else{
$v['processing_type'] = 9;
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];

View File

@@ -389,16 +389,18 @@ class GiveGift extends Model
if($gift_box){
// 统计相同礼物的数量
$giftCount = [];
foreach ($gift_box as $gv) {
foreach ($gift_box as $key=>$gv) {
$gift_info = Db::name('vs_gift')->where(['gid'=>$gv['gift_id']])
->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find();
if (isset($giftCount[$gv['gift_id']])) {
$giftCount[$gv['gift_id']]['count']++;
} else {
$giftCount[$gv['gift_id']] = [
'gift_info' => Db::name('vs_gift')->where(['gid'=>$gv['gift_id']])
->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find(),
'gift_info' => $gift_info,
'count' => 1
];
}
$gift_box[$key]['gift_name'] = $gift_info['gift_name'];
}
// 构建文字消息内容
@@ -413,9 +415,9 @@ class GiveGift extends Model
$textMessage = $FromUserInfo['nickname'] . ' 送给 ' . $ToUserInfo['nickname'].' 趣味礼物 ' . implode('', $giftTextList);
$textData = [
'FromUserInfo' => $FromUserInfo,
// 'ToUserInfo' => $ToUserInfo,
// 'GiftInfo' => $gift_info,
// 'GiftNum' => $num,
'ToUserInfo' => $ToUserInfo,
'GiftInfos' => array_values($gift_box),
'GiftNum' => $num,
'text' => $textMessage
];
// 聊天室推送文字消息

View File

@@ -27,6 +27,7 @@ class Level extends Model
{
//规则
$return['rule_url'] = get_system_config_value('web_site')."/api/Page/page_show?id=10";
$return['coin_charm_exp'] = get_system_config_value('coin_charm_exp');
//用户信息
$user = model('User')->get_user_info($uid);
//用户头像
@@ -53,7 +54,7 @@ class Level extends Model
//距离下个等级需要的经验
$return['user']['next_level'] = $user['charm_level']+1;
$return['user']['next_level_str'] = 'Lv.'.$return['user']['next_level'];
$next_exp = $user_level['next_level_exp'] - $user['wealth_exp'];
$next_exp = $user_level['next_level_exp'] - $user['charm_exp'];
$return['user']['next_exp'] = $next_exp <= 0 ? 0 : $next_exp;
$return['user']['next_rights_icon'] = $user_level['next_rights_icon'];
}
@@ -61,7 +62,7 @@ class Level extends Model
//获取等级
// 获取用户当前等级
$currentUserLevel = $user['charm_level'];
if($currentUserLevel == 0){
if($currentUserLevel == 1){
$level = Db::name('vs_charm_level')
->where('status', 1)
->order('level', 'asc')
@@ -90,7 +91,7 @@ class Level extends Model
$return['level'][$key]['name'] = $value['name'];
$return['level'][$key]['change_value'] = $value['change_value'];
//当前用户距离当前段位的距离
$return['level'][$key]['distance'] = $value['change_value'] - $user['wealth_exp'];
$return['level'][$key]['distance'] = $value['change_value'] - $user['charm_exp'];
$return['level'][$key]['rights_icon'] = $value['rights_icon'];
}
}
@@ -108,6 +109,7 @@ class Level extends Model
{
//规则
$return['rule_url'] = get_system_config_value('web_site')."/api/Page/page_show?id=11";
$return['coin_wealth_exp'] = get_system_config_value('coin_wealth_exp');
//用户信息
$user = model('User')->get_user_info($uid);
//用户头像
@@ -150,7 +152,7 @@ class Level extends Model
//获取等级
// 获取用户当前等级
$currentUserLevel = $user['wealth_level'];
if($currentUserLevel == 0){
if($currentUserLevel == 1){
$level = Db::name('vs_wealth_level')
->where('status', 1)
->order('level', 'asc')
@@ -228,11 +230,11 @@ class Level extends Model
$return['next_level_icon'] = $next_level_data['image'];
$return['next_coins'] = $next_level_data['coins'];
}else{
$return['next_level'] = 0;
$return['next_level_name'] = '';
$return['next_level_exp'] = 0;
$return['next_level_icon'] = '';
$return['next_coins'] = 0;
$return['next_level'] = $level_data['level'];
$return['next_level_name'] = $level_data['name'];
$return['next_level_exp'] = $level_data['change_value'];
$return['next_level_icon'] = $level_data['image'];
$return['next_coins'] = $level_data['coins'];
}
return $return;
}
@@ -266,11 +268,11 @@ class Level extends Model
$return['next_level_icon'] = $next_level_data['image'];
$return['next_rights_icon'] = $next_level_data['rights_icon'];
}else{
$return['next_level'] = 0;
$return['next_level_name'] = '';
$return['next_level_exp'] = 0;
$return['next_level_icon'] = '';
$return['next_rights_icon'] = "";
$return['next_level'] = $level_data['level'];
$return['next_level_name'] = $level_data['name'];
$return['next_level_exp'] = $level_data['change_value'];
$return['next_level_icon'] = $level_data['image'];
$return['next_rights_icon'] = $level_data['rights_icon'];
}
return $return;
}
@@ -291,10 +293,11 @@ class Level extends Model
$user_wealth_level = $user['wealth_level'];
$user_wealth_exp = $user['wealth_exp'] + $wealth_exp;
//判断是否达到下一级别
$user_wealth = $this->get_wealth_level_to_level($user_wealth_level);
if($user_wealth_exp>= $user_wealth['exp']){
$user_wealth_level= $user_wealth['next_level'];
}
$user_wealth = $this->get_wealth_level_to_level_vlue($user_wealth_exp);
// if($user_wealth_level>= $user_wealth['level']){
// $user_wealth_level= $user_wealth['level'];
// }
$user_wealth_level= $user_wealth['level'];
$update_data = [];
$update_data['wealth_level'] = $user_wealth_level;
$update_data['wealth_exp'] = $user_wealth_exp;
@@ -321,10 +324,11 @@ class Level extends Model
$user_charm_level = $user['charm_level'];
$user_charm_exp = $user['charm_exp'] + $charm_exp;
//判断是否达到下一级别
$user_charm = $this->get_charm_level_to_level($user_charm_level);
if($user_charm_exp>= $user_charm['exp']){
$user_charm_level= $user_charm['next_level'];
}
$user_charm = $this->get_charm_level_to_level_vlue($user_charm_exp);
// if($user_charm_level != $user_charm['level']){
// $user_charm_level = $user_charm['level'];
// }
$user_charm_level = $user_charm['level'];
$update_data = [];
$update_data['charm_level'] = $user_charm_level;
$update_data['charm_exp'] = $user_charm_exp;
@@ -414,4 +418,45 @@ class Level extends Model
}
return ['code' => 1, 'msg' => "成功", 'data' => null];
}
/*
* 通过魅力值获取对应等级
*/
public function get_charm_level_to_level_vlue($charm_level){
$return = [];
$level_data = Db::name('vs_charm_level')->where(["change_value"=>['<',$charm_level]])->order('change_value','desc')->find();
if($level_data){
$return['level'] = $level_data['level'];
$return['level_name'] = $level_data['name'];
$return['exp'] = $level_data['change_value'];
$return['level_icon'] = $level_data['image'];
}else{
$return['level'] = 0;
$return['level_name'] = '';
$return['exp'] = 0;
$return['level_icon'] = '';
$return['rights_icon'] = "";
}
return $return;
}
/*
* 通过财富值获取对应等级
*/
public function get_wealth_level_to_level_vlue($wealth_level){
$return = [];
$level_data = Db::name('vs_wealth_level')->where(["change_value"=>['<',$wealth_level]])->order('change_value','desc')->find();
if($level_data){
$return['level'] = $level_data['level'];
$return['level_name'] = $level_data['name'];
$return['exp'] = $level_data['change_value'];
$return['level_icon'] = $level_data['image'];
}else{
$return['level'] = 0;
$return['level_name'] = '';
$return['exp'] = 0;
$return['level_icon'] = '';
$return['rights_icon'] = "";
}
return $return;
}
}

View File

@@ -107,16 +107,40 @@ 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();
}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 +205,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,7 +289,7 @@ 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];
}
@@ -300,12 +335,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($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($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($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 +418,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 +447,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];

View File

@@ -55,7 +55,7 @@ class Ranking extends Model
->where($where)
->order('total desc')
->group('a.user_id')
->page($this->page, $this->page_limit)
// ->page($this->page, $this->page_limit)
->select();
if($lists){
@@ -105,7 +105,7 @@ class Ranking extends Model
->where($where)
->order('total desc')
->group('a.gift_user')
->page($this->page, $this->page_limit)
// ->page($this->page, $this->page_limit)
->select();
if($lists){
@@ -149,7 +149,8 @@ class Ranking extends Model
}
}
}
//截取20条
$lists = array_slice($lists,0,20);
$data = [
'my_ranking' => $my_ranking,
'lists' => $lists
@@ -171,7 +172,7 @@ class Ranking extends Model
->join('vs_room b','a.from_id = b.id','left')
->where($where)->field($field)->group('a.from_id')
->order('total desc')
->page($this->page, $this->page_limit)
// ->page($this->page, $this->page_limit)
->select();
$my_ranking = null;
if($lists){
@@ -242,6 +243,8 @@ class Ranking extends Model
$my_ranking['room_name'] = $myRoom['room_name'];
$my_ranking['room_cover'] = $myRoom['room_cover'];
}
//截取20条
$lists = array_slice($lists,0,20);
$data = [
'my_ranking' => $my_ranking,
'lists' => $lists

View File

@@ -28,10 +28,20 @@ class Room extends Model
return ['code' => 0, 'msg' => '请先进行实名认证通过后操作', 'data' => null];
}
//检查房间名称是否包含官方等词
//名称中不能有 系统管理 等关键字
if(!nickname_filter($room_name)){
return ['code' => 0, 'msg' => '名称中不能有 系统、管理、官方等相关敏感字', 'data' => null];
}
if($type <= 0){
$room_info = db::name('vs_room')->where(['user_id' => $uid, 'type_id' => ['<>',6]])->find();
$room_info = db::name('vs_room')->where(['user_id' => $uid, 'type_id' => ['<>',6], 'apply_status' => ['<>',3]])->find();
if (!empty($room_info)) {
return ['code' => 0, 'msg' => '已有直播间请勿重复创建', 'data' => null];
if($room_info['apply_status'] == 2){
return ['code' => 0, 'msg' => '已有直播间请勿重复创建', 'data' => null];
}elseif($room_info['apply_status'] == 1){
return ['code' => 0, 'msg' => '房间审核中,请耐心等待', 'data' => null];
}
}else{
//首次建立房间【完成任务】
model('DailyTasks')->tasks_complete($uid,15);
@@ -62,7 +72,8 @@ class Room extends Model
$data['room_name'] = $room_name;
$data['room_cover'] = $room_cover;
$data['room_intro'] = $room_intro;
$data['room_background'] = get_system_config_value('web_site').'/data/default/delfultroombackground.jpg';
$room_bg_img = db::name('vs_room_background')->where(['id' => 2])->value('image_url');
$data['room_background'] = $room_bg_img ?? get_system_config_value('web_site').'/data/default/delfultroombackground.jpg';
$data['is_earnings'] = 1;
$data['createtime'] = time();
@@ -151,7 +162,7 @@ class Room extends Model
if(!empty($data)){
$reslut = $this->where('id', $room_id)->update($data);
if (!$reslut) {
return ['code' => 0, 'msg' => '修改失败', 'data' => null];
return ['code' => 0, 'msg' => '请勿重复提交', 'data' => null];
}
}
//推送消息
@@ -190,24 +201,14 @@ class Room extends Model
}
$list = db::name('vs_room')->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value,label_id,is_show_room')
->where($map)->order('hot_value desc')->page($page, $page_limit)->select();
// var_dump($list);
foreach ($list as $k => &$v){
if($v['is_show_room'] == 2){ //是否显示房间 1是2否
//查询当前房间是否有主持在麦上
$room_host_info = db::name('vs_room_pit')->where(['room_id' => $v['room_id'], 'pit_number' => 9])->value('user_id');
if($room_host_info == 0){
unset($list[$k]);
continue;
}
}
// $v['hot_value'] = $v['hot_value'] * 10;
->where($map)->order('hot_value desc, id asc')->page($page, $page_limit)->select();
foreach ($list as &$v){
$v['user_list'] = model('RoomUser')->get_room_user_list($v['room_id']);
$v['label_name'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_name');
$v['label_icon'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_icon');
}
//$list 不为空 数组重组
$list = array_values((array)$list);
//版本号
$app_version = request()->header('App-Version');
$system = request()->header('system');
@@ -223,32 +224,6 @@ class Room extends Model
return ['code' => 1, 'msg' => '获取成功', 'data' => $list, 'api_version' => $api_version];
}
//关注的用户现在所在房间(废弃)
public function user_follow_in_room_list($uid ,$page, $page_limit)
{
//关注的用户列表
$follow_list = db::name('user_follow')->where('user_id', $uid)->field('follow_user_id')->select();
if(!empty($follow_list)){
$user_room_list = [];
foreach ($follow_list as $k => $v){
//用户是否在房间中
$user_room_info = db::name('vs_room_visitor')->where('user_id', $v['follow_user_id'])->field('room_id')->find();
if(!empty($user_room_info)){
$user_room_list[] = $user_room_info['room_id'];
}
}
}
if(!empty($user_room_list)){
$list = db::name('vs_room')->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value')
->where('id', 'in', $user_room_list)->order('hot_value desc')->page($page, $page_limit)->select();
foreach ($list as $k => &$v){
// $v['hot_value'] = $v['hot_value'] * 10;
$v['user_list'] = model('RoomUser')->get_room_user_list($v['id']);
}
return ['code' => 1, 'msg' => '获取成功', 'data' => $list];
}
return ['code' => 1, 'msg' => '获取成功', 'data' => []];
}
//首页弹出的房间
public function index_recommend_room()
@@ -297,7 +272,7 @@ class Room extends Model
$roomInfo = db::name('vs_room')
->field('id as room_id,room_number,user_id,room_name,room_cover,apply_status,type_id,room_status,label_id')
->where('user_id' , $uid)
->where(['type_id' => ['<>',6],'room_status' =>1])
->where(['type_id' => ['<>',6],'room_status' =>1,'apply_status' => ['<>',3]])
->page($page, $page_limit)
->select();
}
@@ -367,7 +342,6 @@ class Room extends Model
}
$cp_room[$i]['room_id'] = $v['room_id'];
// $cp_room[$i]['room_name'] = '我 ❤️ '.$room_name.db::name('vs_room')->where('id', $v['room_id'])->value('room_name');
$cp_room[$i]['room_name'] = '我 ❤️ '.$room_name;
$cp_room[$i]['room_number'] = db::name('vs_room')->where('id', $v['room_id'])->value('room_number');
$cp_room[$i]['end_time'] = $v['time_day'];
@@ -487,17 +461,8 @@ class Room extends Model
if(!$room){
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
}
//获取房间名称
// $room_name = $room['room_name'];
//查询房主是否加入公会
// $guild_id = model('Guild')->user_is_join($room['user_id']);
// //获取房主收益比例
// if($guild_id > 0){
// $room_user_ratio = get_system_config_value('room_author_guild_ratio')/100;
// }else{
$room_user_ratio = get_system_config_value('room_author_ratio')/100;
// }
$room_user_ratio = get_system_config_value('room_author_ratio')/100;
//根据日期查询房间流水
$field = "b.nickname as sender_nickname,b.avatar as sender_avatar,c.nickname as receive_nickname,c.avatar as receive_avatar,dd.gift_name,a.number,a.total_price,{$group_field} as time";
@@ -513,17 +478,9 @@ class Room extends Model
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}
// $count = db::name('vs_give_gift')->alias('a')->field($field)
// ->join('user b', 'a.user_id = b.id')
// ->join('user c', 'a.gift_user = c.id')
// ->join('vs_give_gift d', 'a.gift_id = d.id')
// ->where($where)
// ->count();
$list = db::name('vs_give_gift')->alias('a')->field($field)
->join('user b', 'a.user_id = b.id')
->join('user c', 'a.gift_user = c.id')
// ->join('vs_give_gift d', 'a.gift_id = d.id')
->join('vs_gift dd', 'a.gift_id = dd.gid')
->where($where)
->page($page,$page_limit)
@@ -573,10 +530,13 @@ class Room extends Model
//进入房间
public function join_room($user_id, $room_id, $password) {
$room = db::name('vs_room')->where(['id' => $room_id,'apply_status' => 2])->find();
$room = db::name('vs_room')->where(['id' => $room_id,'apply_status' => ['in',[1,2]]])->find();
if (!isset($room)) {
return ['code' => 0, 'msg' => '房间不存在', 'data' => ''];
}
if($room['apply_status'] == 1){
return ['code' => 0, 'msg' => '房间正在审核中……', 'data' => ''];
}
if(isset($room['password']) && $user_id != $room['user_id']){
if (empty($password) || $room['password'] != md5($password)) {
return ['code' => 0, 'msg' => '密码错误', 'data' => ''];
@@ -610,19 +570,18 @@ class Room extends Model
}
//用户是否在其他房间
$room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->value('room_id');
if (isset($room_user) && $room_user != $room_id) {
// return ['code' => 0, 'msg' => '您已在其他房间', 'data' => ''];
//根据房间状态判断是否要退出房间并且下麦
$room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->order('id desc')->value('room_id');
if (isset($room_user) && $room_user != $room_id && $room_user != 0) {
//根据所在房间状态判断是否要退出房间并且下麦
$roomInfo = db::name('vs_room')->where(['id' => $room_user,'apply_status' => 2])->find();
if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4)&& $roomInfo['label_id'] == 1){
if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 1){
//退出其他房间
$this->quit_room($user_id, $room_user,$user_id);
}elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4)&& $roomInfo['label_id'] == 2){//k歌
}elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 2){//k歌
//他的点歌列表
$song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select();
if(count($song_list) > 0){
foreach ($song_list as $key => $value){
foreach ($song_list as $value){
if($value['status'] == 2 && $value['times_status'] == 1){
//切歌
model('api/RoomSong')->change_song($room_id,$value['did']);
@@ -634,7 +593,7 @@ class Room extends Model
}
//记录用户退出房
$this->quit_room($user_id, $room_user,$user_id);
}elseif($roomInfo['type_id'] == 3){
}elseif($roomInfo['type_id'] == 2){
//是否在拍卖位
$pitNumber = Cache::get('auction_user_'.$room_user);
if(isset($pitNumber) && $pitNumber == $user_id){
@@ -662,7 +621,7 @@ class Room extends Model
$user_pit = 0;
$pit_list = [];
$cp_users = null;
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7) {//1点唱3男神4女神
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7 || $room['type_id'] == 8) {//1点唱3男神4女神
if($room['label_id'] == 2){//K歌
$song = $this->get_song_info($room_id,$user_id);
$song_list = $song['song_user_info'];
@@ -732,6 +691,7 @@ class Room extends Model
if (!$is_join) {
db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]);
}
// db::name('user_data')->where('user_id', $user_id)->update(['room_id' => $room_id]);
$room['is_use_code'] = 0;
$liang = model('api/Decorate')->user_decorate_detail($room['id'],7);
@@ -889,6 +849,7 @@ class Room extends Model
$friend = null;
}
$xlh_info['xlh_info'] = model('BlindBoxTurntableGift')->get_user_xlh_info($room_id);
return ['code' => 1,
'msg' => '成功',
@@ -902,6 +863,7 @@ class Room extends Model
'pk_info' => $pk_info,
'song_pit_list' => $song_pit_list,
'friend_info' => $friend,
'gift_cycle' => $xlh_info,
]
];
}
@@ -1110,9 +1072,9 @@ class Room extends Model
$room_label = $res['data']['label_id'];
$room_type = $res['data']['type_id'];
$apply_type = 0;
if($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
if($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$apply_type = 1;
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$apply_type = 2;
}elseif ($room_type == 7){//交友房 再开始阶段在麦位上不下麦
$apply_type = 3;
@@ -1227,13 +1189,6 @@ class Room extends Model
$where['a.createtime'] = ['between', [strtotime('this week Monday'), time()]];
}
if($type == 1){//1财富榜2魅力榜
// $list = db::name('vs_room_user_charm')->alias('a')
// ->join('user b', 'a.user_id = b.id')
// ->field('a.user_id,b.nickname,b.avatar,a.total_wealth as total')
// ->where($where)
// ->order('a.total_wealth desc')
// ->page($page, $limit)
// ->select();
$list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.user_id = b.id')
->field('a.user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
@@ -1243,13 +1198,6 @@ class Room extends Model
->page($page, $limit)
->select();
}else{
// $list = db::name('vs_room_user_charm')->alias('a')
// ->join('user b', 'a.user_id = b.id')
// ->field('a.user_id,b.nickname,b.avatar,a.total_charm as total')
// ->where($where)
// ->order('a.total_charm desc')
// ->page($page, $limit)
// ->select();
$list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.gift_user = b.id')
->field('a.gift_user as user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
@@ -1289,7 +1237,7 @@ class Room extends Model
//送礼人接收者礼物id礼物数量来源类型来源id房间id麦位
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
return $res;
}elseif (($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 2)//K歌type_id = 1label_id = 2
}elseif (($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 2)//K歌type_id = 1label_id = 2
{
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
if($res['code'] == 1){
@@ -1309,8 +1257,7 @@ class Room extends Model
}elseif($label_type['data']['type_id'] == 7){
return model('Friend')->room_give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,$heart_id,$give_gift_ext);
}else{
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
return $res;
return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
}
}
@@ -1341,83 +1288,21 @@ class Room extends Model
if ($label_type['code'] != 1) {
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
}
// //获取在房间的用户
//// $in_room_users = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
//// if($in_room_users){
//// foreach ($in_room_users as $v){
//// $userss = db::name('user')->where(['id' => $v['user_id']])->field('is_online,is_robot')->find();
//// if($userss['is_online'] == 1 && $userss['is_robot'] == 1){//在线或者机器人都设置为在线
//// db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 1]);
//// }else{
//// db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 0]);
//// }
//// }
//// }
//
// //查找数据库用户
// $dblist = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
// //循环获取在线用户ID 拼接数据
// $user_id_array = [];
// //机器人user_id
// $robot_user_id = [];
// foreach ($dblist as $v) {
// //机器人
// if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
// $robot_user_id[] = $v['user_id'];
// continue;
// }
// $user_id_array[] = 'u'.$v['user_id'];
// }
// //获取腾讯的在线用户
// $online_users = model('Tencent')->query_user_online_status($user_id_array);
// $online_user = [];
// if(isset($online_users['ActionStatus']) && $online_users['ActionStatus'] == 'OK'){
// if($online_users['QueryResult']){
// foreach ($online_users['QueryResult'] as $v){
// if($v['Status'] == "Online"){
// //截取用户ID前面的 u 并获取用户ID
// $user_id = substr($v['To_Account'],1);
// $online_user[] = $user_id;
// }
// }
// }
// }
//
// if($dblist){
// $onpit = db::name('vs_room_pit')->field('user_id')->where(['room_id' => $room_id])->select();
// //合并数组
// $array = array_merge($online_user,$robot_user_id);
//// $array = $online_user;
// $arraypit = array_values((array)$onpit);
// foreach ($dblist as &$v){
//// if(in_array($v['user_id'],$arraypit)){
//// //跳过本次循环
//// continue;
//// }
// if(!in_array($v['user_id'],$array)){
// //修改他的状态
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 0]);
// //查询他是否在其他房间
// $room_id_list = db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>['neq',$room_id]])->find();
// if($room_id_list){
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id']])->delete();
// }
// }else{
// //修改他的状态
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 1]);
// }
// }
// }else{
// $lists = ['on_pit' => [], 'off_pit' => []];
// return ['code' => 1, 'msg' => '成功', 'data' => $lists];
// }
//查询房间里面的用户
$room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
if($room_user){
foreach ($room_user as $vv){
if(Db::name('user')->where('id', $vv['user_id'])->value('is_online') == 0){
model('Room')->quit_room($vv['user_id'], $room_id,$vv['user_id'],2);
}
}
}
$list = db::name('vs_room_visitor')->alias('a')
->join('user b', 'a.user_id = b.id')
->field('a.user_id,b.nickname,b.avatar')
->where(['a.room_id' => $room_id,'b.is_online' => 1])
->group('a.user_id')
->order('a.id asc')
->page($page, $limit)
->select();
@@ -1439,17 +1324,16 @@ class Room extends Model
});
}
if($label_type['data']['type_id'] == 7 || ($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 1) {//2卡八麦聊天type_id = 1 || 7(交友label_id = 1
foreach ($list as &$val) {
if($label_type['data']['type_id'] == 7 || ($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 1) {//2卡八麦聊天type_id = 1 || 7(交友label_id = 1
foreach ($list as $val) {
if ($val['pit_number'] > 0) {
$lists['on_pit'][] = $val;
} else {
$lists['off_pit'][] = $val;
}
}
}elseif(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 2){
foreach ($list as &$val) {
// var_dump($val['pit_number']);exit;
}elseif(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 2){
foreach ($list as $val) {
if (db::name('vs_room_pit_simulate')->where(['room_id' => $room_id,'user_id' => $val['user_id']])->find() || $val['pit_number'] > 0) {
$lists['on_pit'][] = $val;
} else {
@@ -1469,7 +1353,7 @@ class Room extends Model
if($auct){
//获取数组里面的用户ID 组成新的数组
$user_ids = array_column((array)$auct, 'user_id');
foreach ($list as &$val) {
foreach ($list as $val) {
if (in_array($val['user_id'], $user_ids) || $val['pit_number'] > 0) {
$lists['on_pit'][] = $val;
} else {
@@ -1477,7 +1361,7 @@ class Room extends Model
}
}
}else{
foreach ($list as &$val) {
foreach ($list as $val) {
if ($val['pit_number'] > 0) {
$lists['on_pit'][] = $val;
} else {
@@ -1487,8 +1371,7 @@ class Room extends Model
}
}else{
foreach ($list as &$val) {
// $lists['off_pit'][] = $val;
foreach ($list as $val) {
if ($val['pit_number'] > 0) {
$lists['on_pit'][] = $val;
} else {
@@ -1498,6 +1381,7 @@ class Room extends Model
}
}
return ['code' => 1, 'msg' => '成功', 'data' => $lists];
}
@@ -1550,7 +1434,7 @@ class Room extends Model
$user_info['is_in_pit'] = 1;
}
}
}elseif ($room_type['type_id'] == 7 || ($room_type['type_id'] == 1 || $room_type['type_id'] == 3 || $room_type['type_id'] == 4) && $room_type['label_id'] == 1){
}elseif ($room_type['type_id'] == 7 || ($room_type['type_id'] == 1 || $room_type['type_id'] == 3 || $room_type['type_id'] == 4 || $room_type['type_id'] == 8) && $room_type['label_id'] == 1){
$hah = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if($hah){
$user_info['is_in_pit'] = 1;
@@ -1636,6 +1520,7 @@ class Room extends Model
'GiftInfo' => null,
'GiftNum' => null
];
$typee = 0;
if($type == 1){//1-主持,2管理
if($is_add == 1){//1-添加,2-删除
$typee = 1007;
@@ -1722,8 +1607,6 @@ class Room extends Model
//清除房间用户的魅力值
public function clear_user_charm($user_id ,$room_id,$uid='')
{
//判断用户是否在主持麦
// $is_host = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id,'pit_number' => 9])->find();
$owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$management = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find();
if(!$owner && !$management){
@@ -1732,23 +1615,11 @@ class Room extends Model
if($uid <= 0){
db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]);
//获取房间内所有用户
// $list = db::name('vs_room_visitor')->field('user_id')->where(['room_id' => $room_id])->select();
//
// //循环清除用户魅力值
// if($list){
// foreach ($list as $v){
// //清除有魅力值的用户
// if(db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->find()){
// db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->update(['charm' => 0,'clear_time' => time()]);
// }
// }
// }
//发送消息
$text['text'] = '清除魅力成功';
model('Chat')->sendMsg(1021,$room_id,$text);
}else{
$dd = db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0,'clear_time' => time()]);
db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0,'clear_time' => time()]);
//发送消息
$text['text'] = '清除魅力成功';
$text['user_id'] = $uid;
@@ -1792,7 +1663,7 @@ class Room extends Model
//开启事务
db::startTrans();
$data = [];
if($type == 1 || $type == 3 || $type == 4){
if($type == 1 || $type == 3 || $type == 4 || $type == 8){
$data = [
'label_id' => 1,
'type_id' => $type,
@@ -1808,7 +1679,7 @@ class Room extends Model
'is_song' => 1
];
}
//交友房
//交友房(互娱)
if($type == 7){
$data = [
'label_id' => 5,
@@ -1841,12 +1712,8 @@ class Room extends Model
db::name('vs_room_pit_simulate')->where(['room_id' => $room_id])->delete();
//申请上麦的全部下麦
model('RoomPit')->clear_apply_pit_list($uid, $room_id);
//处理之前修改的用户房间信息
if($type == 1 || $type == 3 || $type == 4){
db::name('vs_room_pit')->where(['pit_number' =>['>',10]])->update(['status' => 2]);
}
if($type == 1 || $type == 3 || $type == 4 || $type == 7){
if($type == 1 || $type == 3 || $type == 4 || $type == 7 || $type == 8){
//查询拍卖房的状态
$room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select();
if($room_auction){
@@ -1854,6 +1721,12 @@ class Room extends Model
model('RoomAuction')->room_auction_end($room_id,$v['auction_id']);
}
}
//拍卖位上是否有人
$an = Cache::get('auction_user_'.$room_id);
if($an){
//拍卖位下麦
model('api/RoomPit')->host_user_pit($uid,$room_id,888,$an,2);
}
}
if($type == 2){
//清除房间此前的魅力值
@@ -1873,6 +1746,15 @@ class Room extends Model
'text' => '房间类型已修改type--'.$type
];
model('Chat')->sendMsg(1012,$room_id,$text);
//查询房间里面的用户
$room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
if($room_user){
foreach ($room_user as $v){
if(Db::name('user')->where('id', $v['user_id'])->value('is_online') == 0){
model('Room')->quit_room($v['user_id'], $room_id,$v['user_id'],2);
}
}
}
return ['code' => 1, 'msg' => '修改成功', 'data' => null];
}
@@ -1911,7 +1793,8 @@ class Room extends Model
}
$user_in_room = db::name('vs_room_visitor')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
if(!$user_in_room){
return ['code' => 0, 'msg' => '您已不在此房间', 'data' => null];
// return ['code' => 0, 'msg' => '您已不在此房间', 'data' => null];
return ['code' => 0, 'msg' => '', 'data' => null];
}
$room = db::name('vs_room')->where(['id' => $room_id])->find();
$song_list = null;
@@ -1921,7 +1804,7 @@ class Room extends Model
$pit_list = null;
$roomauction = null;
$cp_users = null;
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7) {
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7 || $room['type_id'] == 8) {
if($room['label_id'] == 1 || $room['label_id'] == 5){
//麦位信息
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
@@ -2119,6 +2002,8 @@ class Room extends Model
$friend = null;
}
$xlh_info['xlh_info'] = model('BlindBoxTurntableGift')->get_user_xlh_info($room_id);
return ['code' => 1,
'msg' => '成功',
'data' => ['room_info' => $room_info,
@@ -2131,6 +2016,7 @@ class Room extends Model
'pk_info'=>$pk_info,
'song_pit_list'=>$song_pit_list,
'friend_info' => $friend,
'gift_cycle' => $xlh_info,
]
];
}
@@ -2150,11 +2036,7 @@ class Room extends Model
if(!$is_host && !$is_room_owner){
return ['code' => 0, 'msg' => '您没有权限', 'data' => null];
}
//是否在主持麦位上
// $is_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 9])->value('user_id');
// if($uid != $is_pit){
// return ['code' => 0, 'msg' => '您没有权限', 'data' => null];
// }
if(!in_array($is_mute, [1,2,3,4])){
return ['code' => 0, 'msg' => '参数错误!', 'data' => null];
}
@@ -2340,7 +2222,7 @@ class Room extends Model
->join('user c','a.user_id2 = c.id','left')
->join('vs_relation d','a.relation_id = d.id','left')//关系
->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image')
->where(['a.user_id1' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0])
->where(['a.user_id1' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0,'d.id' => ['>',0]])
->order('a.updatetime desc')
->select();
$room_auction2 = db::name('vs_room_auction_relation')->alias('a')
@@ -2609,26 +2491,6 @@ class Room extends Model
$friend['friend_id'] = $friend_info['id'];
$friend['end_time'] = $friend_info['end_time'];
$friend['heart_list'] = model('Friend')->pullHeartChange($room_id, $friend_info['id']);
//获取麦上CP心动值列表
// $heart_list = db::name('vs_user_friending_heart')->where(['room_id' => $room_id, 'friend_id' => $friend_info['id'], 'status' => 1])->order('heart_value', 'desc')->limit(3)->select();
// if($heart_list){
// $heart_list_data = [];
//// $heart_list = $heart_list->toArray();
// $pit_number_array_reverse = [0=>[2,5],1=>[1,6],2=>[3,4]];
// foreach($heart_list as $k=>$v){
// $heart_list_data[$k]['heartId'] = $v['id'];
// $pitnum1 = db::name('vs_room_pit')->where(['room_id' =>$room_id, 'user_id' => $v['user1_id']])->value('pit_number');
// $pitnum2 = db::name('vs_room_pit')->where(['room_id' =>$room_id, 'user_id' => $v['user2_id']])->value('pit_number');
// if(in_array($pitnum1,$pit_number_array_reverse[$k]) && in_array($pitnum2,$pit_number_array_reverse[$k])){
// $heart_list_data[$k]['heartNum'] = $v['heart_value'];
// }else{
// $heart_list_data[$k]['heartNum'] = 0;
// }
// }
// $friend['heart_list'] =$heart_list_data;
// }else{
// $friend['heart_list'] = [];
// }
}
return $friend;
}
@@ -2656,4 +2518,20 @@ class Room extends Model
}
return ['code' => 1, 'msg' => '操作成功', 'data' => $list];
}
//用户重连
public function user_reconnect($user_id,$room_id)
{
if(!$room_id){
$room_id = Db::name('vs_room_visitor')->where('user_id', $user_id)->order('id desc')->value('room_id');
}
$room = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->find();
if(!$room){
$room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]);
if(!$room_info){
return ['code' => 0, 'msg' => '加入房间失败', 'data' => null];
}
}
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
}
}

View File

@@ -167,7 +167,7 @@ class RoomAuction extends Model
->where(['auction_id' => $auction_id])
->group('user_id')
->having('gift_prices >= ' . $auction['gift_price'])
->order('gift_prices DESC')
->order('gift_prices DESC, id ASC')
->limit(6)
->select();
if($list){
@@ -292,9 +292,11 @@ class RoomAuction extends Model
//查询是否有电影房
$cp_movie = $this->movie_room_create_or_add($list['user_id'],$res['user_id'],$res['relation_id'],$res['time_day']);
if($cp_movie['code'] != 1){
return ['code' => 0, 'msg'=>$cp_movie['msg'], 'data'=>$cp_movie['data']];
// return ['code' => 0, 'msg'=>$cp_movie['msg'], 'data'=>$cp_movie['data']];
}else{
$cp_room_id = $cp_movie['data']['cp_room_id'];
}
$cp_room_id = $cp_movie['data']['cp_room_id'];
}
$texts = '恭喜'.$auction['nickname'].' 和 '.$recipient['nickname'].',获得'.$auction['relation_name'].' 关系'.$auction['time_day'].'小时';
}else{//拍得无关系

View File

@@ -925,7 +925,7 @@ class RoomPit extends Model
if(!$pit_number || $pit_number == 888){
$roomInfo = db::name('vs_room')->where('id',$room_id)->field('label_id,type_id')->find();
if($roomInfo['type_id'] == 2){//拍卖
if($roomInfo['type_id'] == 2 || Cache::get('auction_user_'.$room_id)){//拍卖
//查询当前是否处于拍卖中
$auctioning = db::name('vs_room_auction')
->where(['room_id' => $room_id, 'status' => 2, 'user_id' => $accept_user_id])->find();

View File

@@ -924,9 +924,9 @@ class Tencent extends Model
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
if($quit_room) {
foreach ($quit_room as &$v){
foreach ($quit_room as $v){
$room_type = db::name('vs_room')->where(['id' => $v['room_id'],'room_status' => 1])->field('step,type_id')->find();
if(($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
$text['text'] = '掉线!';
$text['user_id'] = $uid;
$text['type'] = 2;
@@ -940,6 +940,7 @@ class Tencent extends Model
} elseif ($action == 'Login') {
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
$room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
$text['text'] = '重新上线!';
$text['user_id'] = $uid;
$text['type'] = 1;

View File

@@ -149,6 +149,17 @@ class User extends Model
$user_info['dress'] = model('Decorate')->user_decorate_detail($user_info['user_id'],1);
$user_info['auth'] = db::name('user_auth')->where(['mobile' => $user_info['mobile'],'is_real' => 1])->find() ? 1 : 0;
//是否可以发布动态
$user_rechange = db::name('vs_user_recharge')->field('sum(money) as money')->where(['user_id' => $uid,'pay_status' => 2])->find();
//系统配置
$config_money = get_system_config_value('private_chat_recharge_money');
if(($config_money > 0) && ($user_rechange['money'] < $config_money)){
$user_info['is_can_chat'] = 0;
}else{
$user_info['is_can_chat'] = 1;
}
$user_info['can_chat_money'] = $config_money;
return ['code' => 1, 'msg' => '获取成功', 'data' => $user_info];
}
@@ -339,10 +350,11 @@ class User extends Model
public function get_user_gift_wall_info($uid)
{
//查询用户礼物墙 以gift_id,send_user_id分组 同一用户送的同一礼物相加
$result = db::name('vs_give_gift')
->where(['gift_user' => $uid])
->field('gift_id,user_id,sum(number) as total')
->group('gift_id,user_id')
$result = db::name('vs_give_gift')->alias('a')
->join('vs_gift g', 'a.gift_id = g.gid')
->where(['a.gift_user' => $uid,'g.label'=>['<>',2]])
->field('a.gift_id,a.user_id,sum(a.number) as total')
->group('a.gift_id,a.user_id')
->order('total desc')
->select();
// var_dump($result);exit;
@@ -391,7 +403,7 @@ class User extends Model
}
$data = array_values($data);
//查询所有的礼物
$gift_list = db::name('vs_gift')->field('gid as gift_id,gift_name,base_image,gift_price')->where(['delete_time' => 0,'is_show' => 1])->select();
$gift_list = db::name('vs_gift')->field('gid as gift_id,gift_name,base_image,gift_price')->where(['delete_time' => 0,'label'=>['<>',2]])->select();
//对比去除$data 里面的礼物
$gift_list = array_filter((array)$gift_list, function ($item) use ($data) {
return !in_array($item['gift_id'], array_column($data, 'gift_id'));
@@ -661,7 +673,13 @@ class User extends Model
if(!empty($nickname)){
//名称中不能有 系统管理 等关键字
if(!nickname_filter($nickname)){
return ['code' => 0, 'msg' => '名称中不能有 系统管理 等相关字', 'data' => null];
return ['code' => 0, 'msg' => '名称中不能有 系统管理、官方 等相关字', 'data' => null];
}
$nick_name_info = db::name('user')->where(['nickname' => $nickname,'status' => ['<>',0]])->find();
if(!empty($nick_name_info)){
if($user_id != $nick_name_info['id']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
}
}
$data['nickname'] = $nickname;
}
@@ -825,6 +843,10 @@ class User extends Model
//更新用户ip
public function update_user_ip($user_id,$ip){
//判断$ip是否是汉字
if(preg_match('/[\x{4e00}-\x{9fa5}]+/u', $ip)){
$ip = '未知';
}
$data = [
'address_ip' => $ip
];

View File

@@ -49,7 +49,7 @@ class UserData extends Model
$data['id'] = $uid;
if (!empty($nick_name)) {
$data['nickname'] = $nick_name;
$nick_name_info = db::name('user')->where('nickname', $nick_name)->find();
$nick_name_info = db::name('user')->where(['nickname' => $nick_name,'status' => ['<>',0]])->find();
if(!empty($nick_name_info)){
if($uid != $nick_name_info['id']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
@@ -58,6 +58,10 @@ class UserData extends Model
if(mb_strlen($nick_name) > 24){
return['code' => 0, 'msg' => '昵称长度不能超过24个字符','data' =>null];
}
//名称中不能有 系统管理 等关键字
if(!nickname_filter($nick_name)){
return ['code' => 0, 'msg' => '名称中不能有 系统、管理、官方 等相关字', 'data' => null];
}
}
if (!empty($birthday)) {
@@ -133,8 +137,7 @@ class UserData extends Model
$data['uid'] = $uid;
if (!empty($nick_name)) {
$data['nick_name'] = $nick_name;
$data['base64_nick_name'] = base64_encode($nick_name);
$nick_name_info = db::name('user')->where('base64_nick_name', $data['base64_nick_name'])->find();
$nick_name_info = db::name('user')->where(['nickname' => $nick_name,'status' => ['<>',0]])->find();
if(!empty($nick_name_info)){
if($uid != $nick_name_info['uid']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
@@ -254,6 +257,11 @@ class UserData extends Model
//修改手机号
public function modify_mobile($new_mobile,$user_id)
{
//查询新手机号绑定的数量
$new_mobile_num = db::name('user')->where(['username' => $new_mobile,'status' => ['neq', 0]])->count();
if ($new_mobile_num >= 3) {
return ['code' => 0, 'msg' => '该手机号已达绑定上限','data' =>null];
}
//查询旧手机号
$mobile = db::name('user')->where(['id' => $user_id])->value('username');
//查询是否实名
@@ -287,11 +295,16 @@ class UserData extends Model
if(empty($user_mobile)){
return ['code' => 0, 'msg' => '请先绑定手机号','data' =>null];
}
//查询是否已经提交过数据了
$is_real = db::name('user_auth')->where(['card_id' => $id_card,'is_real' => 1])->find();
if($is_real){
return ['code' => 0, 'msg' => '已经提交审核了,请等待验证结果!','data' =>null];
$card_id_count = db::name('user_auth')->where(['card_id' => $id_card,'is_real' => 1])->count();
if($card_id_count >= 3){
return ['code' => 0, 'msg' => '该身份证实名已达上限!','data' =>null];
}
//查询是否已经提交过数据了
$is_real = db::name('user_auth')->where(['card_id' => $id_card,'is_real' => 1,'mobile' =>$user_mobile])->find();
if($is_real){
return ['code' => 0, 'msg' => '已经审核通过!请勿重复提交!','data' =>null];
}
$auth = [
'mobile' => $user_mobile,
'real_name' => $real_name,
@@ -347,14 +360,21 @@ class UserData extends Model
public function real_name_result($user_id,$orderNo)
{
$user_mobile = db::name('user')->where(['id' => $user_id,'status'=>1])->value('mobile');
$id = db::name('user_auth')->where(['mobile' => $user_mobile,'is_real' => 3])->value('id');
if($id){
$res = db::name('user_auth')->where(['id' => ['<>',$id],'mobile' => $user_mobile])->select();
if($res){
foreach ($res as $key => $value) {
db::name('user_auth')->where('id' , $value['id'])->delete();
}
}
}
//修改状态
$reslut = db::name('user_auth')->where('mobile' , $user_mobile)->update(['is_real' => 1]);
$reslut = db::name('user_auth')->where('id' , $id)->update(['is_real' => 1]);
if(!$reslut){
return ['code' => 0, 'msg' => '实名失败','data' =>null];
}
//内侧用户充值10W金币
db::name('user_wallet')->where('user_id',$user_id)->update(['coin' => 100000,'updatetime' => time(),'createtime' => time()]);
return ['code' => 1, 'msg' => '实名成功','data' =>null];
}
@@ -567,6 +587,7 @@ class UserData extends Model
//绑定的详情
public function bind_xinxi_detail($user_id,$type)
{
$data = null;
if($type == 2){
$data = db::name('user_data')->where('user_id',$user_id)->field('id,alipay_name,alipay_account')->find();
}

View File

@@ -107,7 +107,7 @@ class UserGiftPack extends Model
->page($page, $page_limit)
->select();
if (empty($log_model)) {
return ['code' => 0, 'msg' => '没有数据', 'data' => null];
return ['code' => 0, 'msg' => ' ', 'data' => null];
}
$list = [];
foreach ($log_model as $k => $v){
@@ -134,7 +134,7 @@ class UserGiftPack extends Model
->page($page, $page_limit)
->select();
if (empty($log_model)) {
return ['code' => 0, 'msg' => '没有数据', 'data' => null];
return ['code' => 0, 'msg' => ' ', 'data' => null];
}
$list = [];
foreach ($log_model as $k => $v){

View File

@@ -54,6 +54,7 @@ class UserMessage extends Model
$system_no_read_count = $system_message - $user_read_message;
$system_last_message = db::name('system_message')
->field('id,type,title,content,url')
->where('type', 1)//1系统消息 3公告下的房间推荐4公告下的活动'
->where('FIND_IN_SET(:user_id, receiving_id)', ['user_id' => $uid])
->order('id desc')
@@ -77,6 +78,7 @@ class UserMessage extends Model
$announcement_read_count = count($system_message1) - count($user_read_message1);
unset($map['user_id']);
$announcement_last_message = db::name('system_message')
->field('id,type,title,content,url')
->where($map)
->where('FIND_IN_SET(:user_id, receiving_id)', ['user_id' => $uid])
->order('id desc')

View File

@@ -626,7 +626,7 @@ function nickname_filter($username) {
// 定义敏感词数组(包含常见变体)
$sensitiveWords = [
// 核心敏感词
'系统管理员', '管理员', '系统管理', '系统', '管理',
'系统管理员', '管理员', '系统管理', '系统', '管理','官方',
// 繁体中文
'系統管理員', '管理員', '系統管理', '系統',
@@ -941,12 +941,130 @@ function get_user_constellation($birthday)
}
//数字格式话
function numberFormat($number) {
$num = round($number / 10000, 2);
if ($num > 1) {
$number = $num . 'w';
//function numberFormat($number) {
// $num = round($number / 10000, 2);
// if ($num > 1) {
// $number = $num . 'w';
// }
// return $number;
//}
/**
* 数字格式化方法
* @param int|float $number 需要格式化的数字
* @param string $format 格式类型: 'short'(默认简写), 'thousand'(千分位), 'custom'(自定义)
* @param int $decimals 小数位数
* @param array $options 其他选项
* @return string 格式化后的数字字符串
*/
function numberFormat($number, $format = 'short', $decimals = 2, $options = []) {
// 确保输入是数字
if (!is_numeric($number)) {
return '0';
}
return $number;
switch ($format) {
case 'short':
return formatShortNumber($number, $decimals);
case 'thousand':
return formatThousandNumber($number, $decimals);
case 'custom':
return formatCustomNumber($number, $options);
default:
return formatShortNumber($number, $decimals);
}
}
/**
* 简写格式化数字 (如: 1.23w, 2.56亿)
*/
function formatShortNumber($number, $decimals = 2) {
$units = ['', 'w', '亿', '万亿'];
$unit_index = 0;
// 处理负数
$is_negative = $number < 0;
$number = abs($number);
// 根据数值大小选择合适的单位
while ($number >= 10000 && $unit_index < count($units) - 1) {
$number /= 10000;
$unit_index++;
}
// 格式化数字
$formatted = round($number, $decimals);
// 如果是整数且小数部分为0则不显示小数
if ($decimals > 0 && floor($formatted) == $formatted) {
$formatted = number_format($formatted, 0);
} else {
$formatted = number_format($formatted, $decimals, '.', '');
}
return ($is_negative ? '-' : '') . $formatted . $units[$unit_index];
}
/**
* 千分位格式化数字 (如: 1,234,567.89)
*/
function formatThousandNumber($number, $decimals = 2) {
return number_format($number, $decimals, '.', ',');
}
/**
* 自定义格式化数字
*/
function formatCustomNumber($number, $options = []) {
$defaults = [
'decimals' => 2,
'decimal_point' => '.',
'thousands_sep' => ',',
'suffix' => '',
'prefix' => ''
];
$options = array_merge($defaults, $options);
$formatted = number_format($number, $options['decimals'], $options['decimal_point'], $options['thousands_sep']);
return $options['prefix'] . $formatted . $options['suffix'];
}
/**
* 简化版本的数字格式化 (改进原方法)
* @param int|float $number 需要格式化的数字
* @param int $decimals 小数位数
* @return string 格式化后的数字字符串
*/
function simpleNumberFormat($number, $decimals = 2) {
if (!is_numeric($number)) {
return '0';
}
// 处理负数
$is_negative = $number < 0;
$number = abs($number);
if ($number >= 100000000) { // 1亿以上
$result = round($number / 100000000, $decimals) . '亿';
} elseif ($number >= 10000) { // 1万以上
$result = round($number / 10000, $decimals) . 'w';
} elseif ($number >= 1000) { // 1千以上
$result = round($number / 1000, $decimals) . 'k';
} else {
$result = round($number, $decimals);
// 如果是整数且小数部分为0则不显示小数
if (floor($result) == $result) {
$result = (int)$result;
}
}
return ($is_negative ? '-' : '') . $result;
}
function generateRandomRoomName() {

View File

@@ -279,6 +279,8 @@ class Push
public function giftBanner($gift_list)
{
$topic = 'qx_room_topic';
//数组重组下标从0开始
$gift_list = array_values($gift_list);
$data = ['room_id' => $this->room_id, 'list' => $gift_list];
$this->push(self::PUSH_GIFT_BANNER, $topic, $data);
}

View File

@@ -33,7 +33,7 @@ class FriendEnd
$friending_info = db::name('vs_user_friending')->where('room_id', $room['id'])->where('status', 1)->order('id', 'desc')->find();
if($friending_info){
//判断结束时间是否到期
if($friending_info['end_time'] <= time()){
if($friending_info['end_time'] <= time() || $room['step'] == 3){
model('Friend')->end_friend(0,$room['id'],$friending_info['id'],1);
}
}

View File

@@ -43,17 +43,17 @@ class RoomPan
$room_id = $v['room_id'];
$room_name = Db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->value('room_name');
$FromUserInfo = Db::name('user')->where(['id'=>$v['user_id']])->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标
$user_nickname = $FromUserInfo['nickname'];
$textMessage = $user_nickname;
$text_message = $user_nickname;
foreach ($blind_box_turntable_results_log as $key => $value) {
$ToUserInfo = Db::name('user')->where(['id' => $value['gift_user_id']])->field('id as user_id,nickname,avatar,sex')->find();
$ToUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value['gift_user_id']);//财富图标
$ToUserInfo['icon'][1] = model('UserData')->user_charm_icon($value['gift_user_id']);//魅力图标
$ToUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $value['gift_user_id'],'room_id' => $room_id])->value('charm');//魅力
$draw_gift = Db::name('vs_gift')->where(['gid'=>$value['gift_id']])->find();
$textMessage = $textMessage . ' 送给 ' . $ToUserInfo['nickname']. ' 盲盒转盘礼物 ' . $draw_gift['gift_name'].' x ' .$value['count']."\n";
$play_image[] = $draw_gift['play_image'];
$gift_names[] = $draw_gift['gift_name'];
$text_message = $text_message . '在' . $room_name . '房间送给了' . $ToUserInfo['nickname'] . $draw_gift['gift_name'] . 'X' . $value['count']."\n";
if($draw_gift['is_public_server'] == 1) {
@@ -70,7 +70,10 @@ class RoomPan
}
$ToUserInfosList[$value['gift_user_id']] = $ToUserInfo;
}
foreach($ToUserInfosList as $userInfo) {
foreach($ToUserInfosList as &$userInfo) {
$userInfo['icon'][0] = model('UserData')->user_wealth_icon($userInfo['user_id']);//财富图标
$userInfo['icon'][1] = model('UserData')->user_charm_icon($userInfo['user_id']);//魅力图标
$userInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $userInfo['user_id'],'room_id' => $room_id])->value('charm');//魅力
$ToUserInfos[] = $userInfo;
}
$text = [
@@ -78,8 +81,9 @@ class RoomPan
'ToUserInfos' => $ToUserInfos,
'GiftInfo' => [
'play_image' => implode(',',$play_image),
'gift_name' => implode(',',$gift_names),
],
'text' => $textMessage
'text' => rtrim($textMessage, "\n")
];
//聊天室推送系统消息
model('Chat')->sendMsg(1005,$room_id,$text);
@@ -110,7 +114,7 @@ class RoomPan
* 巡乐会结束 礼物发放 【定时脚本】
*/
public function xlh_gift_send(){
$xlh_list = db::name('vs_room_pan_xlh')->where(['send_time'=>0,'end_time'=>['<',time()]])->select();
$xlh_list = db::name('vs_room_pan_xlh')->where(['send_time'=>0,'end_time'=>['<=',time()]])->select();
if(empty($xlh_list)){
echo "没有需要发放的礼物 \n";
}

37
佛祖保佑.php Normal file
View File

@@ -0,0 +1,37 @@
<?php
class 佛祖保佑
{
/**
*
* _oo0oo_
* o8888888o
* 88" . "88
* (| -_- |)
* 0\ = /0
* ___/`---'\___
* .' \\| |// '.
* / \\||| : |||// \
* / _||||| -卍-|||||- \
* | | \\\ - /// | |
* | \_| ''\---/'' |_/ |
* \ .-\__ '-' ___/-. /
* ___'. .' /--.--\ `. .'___
* ."" '< `.___\_<|>_/___.' >' "".
* | | : `- \`.;`\ _ /`;.`/ - ` : | |
* \ \ `_. \_ __\ /__ _/ .-` / /
*=====`-.____`.___ \_____/___.-`___.-'=====
* `=---='
*
* 佛祖保佑 永无BUG
* 佛曰:
* 写字楼里写字间,写字间里程序员;
* 程序人员写程序,又拿程序换酒钱。
* 酒醒只在网上坐,酒醉还来网下眠;
* 酒醉酒醒日复日,网上网下年复年。
* 但愿老死电脑间,不愿鞠躬老板前;
* 奔驰宝马贵者趣,公交自行程序员。
* 别人笑我忒疯癫,我笑自己命太贱;
* 不见满街漂亮妹,哪个归得程序员?
*/
}