148 lines
5.8 KiB
PHP
148 lines
5.8 KiB
PHP
<?php
|
|
|
|
namespace app\api\model;
|
|
|
|
use think\Db;
|
|
use think\Model;
|
|
|
|
class RoomMicro extends Model
|
|
{
|
|
|
|
//创建房间麦位
|
|
public function create_room_micro($rid){
|
|
$micro_num = 12;
|
|
$insert_all = [];
|
|
for ($i = 0; $i < $micro_num; $i++){
|
|
$insert = [];
|
|
$insert['rid'] = $rid;
|
|
$insert['micro_id'] = $i + 1;
|
|
$insert['update_time'] = time();
|
|
$insert_all[] = $insert;
|
|
}
|
|
|
|
$reslut = db::name('room_micro')->insertAll($insert_all);
|
|
if($reslut){
|
|
return ['code' => 200, 'msg' => '创建成功', 'data' => null];
|
|
}else{
|
|
return ['code' => 201, 'msg' => '创建失败', 'data' => null];
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//麦位魅力值明细
|
|
public function get_room_micro_charm_list($uid, $rid, $user_id){
|
|
$map = [];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['uid', '=', $user_id];
|
|
$info = db::name('room_user_cc')->where($map)->find();
|
|
if(!$info){
|
|
$data = [];
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
$map = [];
|
|
$map[] = ['cid', '=', $info['cid']];
|
|
$map[] = ['change_value', '>', 0];
|
|
$list = db::name('room_user_micro_charm_log')->alias('a')->join('yy_user b', 'a.uid = b.uid')->field('a.id, a.uid, b.nick_name, b.base64_nick_name, b.head_pic,a.change_value')->where($map)->order('change_value desc')->limit(20)->select();
|
|
foreach ($list as $k => &$v){
|
|
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
$v['head_pic'] = localpath_to_netpath($v['head_pic']);
|
|
$user_level_info = model('api/User')->get_user_charm_contribution_info($v['uid']);
|
|
$v['charm_level_image'] = $user_level_info['data']['charm_level_image'];
|
|
$v['contribution_level_image'] = $user_level_info['data']['contribution_level_image'];
|
|
$user_nobility_info = model('api/User')->get_user_nobility_info($v['uid']);
|
|
$v['nobility_image'] = $user_nobility_info['data']['nobility_image'];
|
|
}
|
|
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $list];
|
|
}
|
|
|
|
//定时关闭主持三分钟不在的房间
|
|
public function close_room_status(){
|
|
set_time_limit(0);
|
|
ini_set('memory_limit', '1024M');
|
|
// exit;
|
|
$end_time = time() - 300;
|
|
$map = [];
|
|
$map[] = ['room_host_uid', '=', 0];
|
|
$map[] = ['room_status', '=', 1];
|
|
$map[] = ['down_up_time', '>', 0];
|
|
$map[] = ['down_up_time', '<', $end_time];
|
|
$list = db::name('room')->where($map)->select();
|
|
if(!empty($list)){
|
|
foreach($list as $k => $v){
|
|
|
|
$is_close = 1;
|
|
if($v['cate_id'] == 26){
|
|
$map = [];
|
|
$map[] = ['rid', '=', $v['rid']];
|
|
$map[] = ['is_stop', '=', 2];
|
|
$map[] = ['is_delete', '=', 1];
|
|
$room_auction_info = db::name('room_new_auction_log')->where($map)->find();
|
|
if($room_auction_info){
|
|
$is_close = 2;
|
|
}
|
|
}
|
|
if($v['cate_id'] == 27){
|
|
//当前是否已有进行中的K歌
|
|
$map = [];
|
|
$map[] = ['rid', '=', $v['rid']];
|
|
$map[] = ['is_delete', '=', 1];
|
|
$room_auction_info = db::name('room_song_log')->where($map)->find();
|
|
if($room_auction_info){
|
|
$is_close = 2;
|
|
}
|
|
}
|
|
if($v['cate_id'] == 28){
|
|
$map = [];
|
|
$map[] = ['rid', '=', $v['rid']];
|
|
$map[] = ['status', '=', 2];
|
|
$map[] = ['is_delete', '=', 1];
|
|
$room_auction_info = db::name('room_auction_log')->where($map)->find();
|
|
if($room_auction_info){
|
|
$room_micro_uid = db::name('room_micro')->where('rid', $v['rid'])->where('micro_id', 1)->value('uid');
|
|
if($room_micro_uid > 0){
|
|
$is_close = 2;
|
|
}else{
|
|
db::name('room_auction_log')->where('rid', $v['rid'])->where('is_delete', 1)->update(['is_delete' => 2, 'update_time' => time()]);
|
|
}
|
|
}
|
|
}
|
|
if($v['cate_id'] == 29){
|
|
$map = [];
|
|
$map[] = ['rid', '=', $v['rid']];
|
|
$map[] = ['is_delete', '=', 1];
|
|
$room_dating_log = db::name('room_dating_log')->where($map)->find();
|
|
if($room_dating_log){
|
|
$is_close = 2;
|
|
}
|
|
}
|
|
if($is_close == 1){
|
|
db::name('room')->where('rid', $v['rid'])->update(['room_status' => 3, 'down_up_time' => 0]);
|
|
|
|
//删除房间挂件
|
|
db::name('room_pendant_gift_log')->where('rid', $v['rid'])->update(['is_show' => 2, 'update_time' => time()]);
|
|
|
|
$push_room_data = [];
|
|
$push_room_data['rid'] = $v['rid'];
|
|
$push_room_data['type'] = 2;
|
|
|
|
$push_data = [];
|
|
$push_data['code'] = 369;
|
|
$push_data['msg'] = "房间类型变更推送";
|
|
$push_data['data'] = $push_room_data;
|
|
model('api/WebSocketPush')->send_to_group($v['rid'], $push_data);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
echo date('Y-m-d H:i:s').' 执行成功';
|
|
|
|
}
|
|
|
|
|
|
}
|