Files
midi-php/application/adminapi/controller/Room.php
2025-09-24 16:39:44 +08:00

1635 lines
60 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\adminapi\controller;
use app\admin\model\AdminLog;
use app\common\controller\adminApi;
use think\Config;
use think\Db;
use think\Hook;
use think\Model;
use think\Session;
use think\Validate;
/**
* 房间
* @internal
*/
class Room extends adminApi
{
protected $noNeedLogin = [];
protected $noNeedRight = ['room_user_log','room_flow'];
protected $table = 'vs_room';
protected $table_room_label = 'vs_room_label';
protected $table_room_type = 'vs_room_type';
protected $relation = 'vs_relation';
protected $table_room_subsidy_config = 'vs_room_subsidy_config';
protected $table_room_subsidy = 'vs_room_subsidy';
protected $table_room_log = 'vs_room_operation_log';
public function _initialize()
{
parent::_initialize();
}
/**
* 房间标签列表
*/
public function label_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_name = input('search_name', '');
$where=[];
//标签名称
if($search_name!==''){
$where['label_name'] = ['like', '%'.$search_name.'%'];
}
$count = db::name($this->table_room_label)->where($where)->count();
$lists = db::name($this->table_room_label)->where($where)->page($page, $page_limit)->select();
foreach ($lists as $key => $value) {
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
/**
* 添加房间类标签
*/
public function add_label(){
$label_name = input('label_name', '');
$label_icon = input('label_icon', '');
$label_icon_room = input('label_icon_room', '');
$status = input('status', 1);
if($label_name == ''){
return V(0,"请输入房间标签名称");
}
$data = [
'label_name' => $label_name,
'label_icon' => $label_icon,
'label_icon_room' => $label_icon_room,
'status' => $status,
'updatetime' => time(),
'createtime' => time()
];
$label_id = db::name($this->table_room_label)->insertGetId($data);
if(!$label_id){
return V(0,"失败",null);
}
return V(1,"成功", ['id'=>$label_id]);
}
/**
* 删除标签
*/
public function del_label(){
$label_id = input('label_id', '');
if($label_id == ''){
return V(0,"参数错误");
}
$label_data = db::name($this->table_room_label)->where(['id'=>$label_id])->find();
if(!$label_data){
return V(0,"标签不存在");
}
$result = db::name($this->table_room_label)->where(['id'=>$label_id])->delete();
if(!$result){
return V(0,"删除失败");
}
return V(1,"成功");
}
/*
* 标签详情
*/
public function label_info(){
$label_id = input('label_id', '');
if($label_id == ''){
return V(0,"标签ID不能为空");
}
$tag_data = db::name($this->table_room_label)->where(['id'=>$label_id])->find();
if(!$tag_data){
return V(0,"标签不存在");
}
$tag_data['createtime'] = date('Y-m-d H:i:s', $tag_data['createtime']);
$type_list = db::name($this->table_room_type)->where(['status'=>1])->select();
$tag_data['type_list'] =[];
foreach ($type_list as $key => $value) {
$tag_data['type_list'][$key]['id'] = $value['id'];
$tag_data['type_list'][$key]['type_name'] = $value['type_name'];
if($value['id'] == $tag_data['type_id']){
$tag_data['type_list'][$key]['is_checked'] = 1;
}else{
$tag_data['type_list'][$key]['is_checked'] = 0;
}
}
return V(1,"成功", $tag_data);
}
/*
* 编辑标签
*/
public function edit_label(){
$label_id = input('label_id', '');
$label_name = input('label_name', '');
$label_icon = input('label_icon', '');
$label_icon_room = input('label_icon_room', '');
$status = input('status', 1);
if($label_id == ''){
return V(0,"标签ID不能为空");
}
$tag_data = db::name($this->table_room_label)->where(['id'=>$label_id])->find();
if(!$tag_data){
return V(0,"标签不存在");
}
if($label_name == ''){
return V(0,"标签名称不能为空");
}
$label = db::name($this->table_room_label)->where(['label_name'=>$label_name,'id'=>['<>', $label_id]])->find();
if($label){
return V(0,"标签已存在");
}
$data = [];
if($label_name){
$data['label_name'] = $label_name;
}
if($label_icon){
$data['label_icon'] = $label_icon;
}
if($label_icon_room){
$data['label_icon_room'] = $label_icon_room;
}
if($status){
$data['status'] = $status;
}
$data['updatetime'] = time();
$result = db::name($this->table_room_label)->where(['id'=>$label_id])->update($data);
if(!$result){
return V(0,"添加失败");
}
return V(1,"成功", ['id'=>$label_id]);
}
/*
* 房间类型列表
*/
public function type_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_name = input('search_name', '');
$where['deletetime'] = 0;
//标签名称
if($search_name!==''){
$where['label_name'] = ['like', '%'.$search_name.'%'];
}
$count = db::name($this->table_room_type)->where($where)->count();
$lists = db::name($this->table_room_type)->where($where)->page($page, $page_limit)->select();
foreach ($lists as $key => $value) {
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
/**
* 添加房间类型
*/
public function add_type(){
$type_name = input('type_name', '');
$status = input('status', 1);
if($type_name == ''){
return V(0,"请输入房间类型名称");
}
$data = [
'type_name' => $type_name,
'status' => $status,
'createtime' => time()
];
$type_id = db::name($this->table_room_type)->insertGetId($data);
if(!$type_id){
return V(0,"失败",null);
}
return V(1,"成功", ['id'=>$type_id]);
}
/**
* 删除房间类型
*/
public function del_type(){
$type_id = input('type_id', '');
if($type_id == ''){
return V(0,"参数错误");
}
$type_data = db::name($this->table_room_type)->where(['id'=>$type_id])->find();
if(!$type_data){
return V(0,"房间类型不存在");
}
$result = db::name($this->table_room_type)->where(['id'=>$type_id])->update(['deletetime'=>time()]);
if(!$result){
return V(0,"删除失败");
}
return V(1,"成功");
}
/**
* 房间类型详情
*/
public function type_info(){
$type_id = input('type_id', '');
if($type_id == ''){
return V(0,"房间类型ID不能为空");
}
$type_data = db::name($this->table_room_type)->where(['id'=>$type_id])->find();
if(!$type_data){
return V(0,"房间类型不存在");
}
$type_data['createtime'] = date('Y-m-d H:i:s', $type_data['createtime']);
return V(1,"成功", $type_data);
}
/**
* 编辑房间类型
*/
public function edit_type(){
$type_id = input('type_id', '');
$type_name = input('type_name', '');
$status = input('status', 1);
if($type_id == ''){
return V(0,"房间类型ID不能为空");
}
$type_data = db::name($this->table_room_type)->where(['id'=>$type_id])->find();
if(!$type_data){
return V(0,"房间类型不存在");
}
if($type_name == ''){
return V(0,"请输入房间类型名称");
}
$data = [];
if($type_name){
$data['type_name'] = $type_name;
}
if($status){
$data['status'] = $status;
}
$result = db::name($this->table_room_type)->where(['id'=>$type_id])->update($data);
if(!$result){
return V(0,"添加失败");
}
return V(1,"成功", ['id'=>$type_id]);
}
/*
* 关系列表
*/
public function relation_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_name = input('search_name', '');
$where=[];
//标签名称
if($search_name!==''){
$where['name'] = ['like', '%'.$search_name.'%'];
}
$where['delete_time'] = 0;
$count = db::name($this->relation)->where($where)->count();
$lists = db::name($this->relation)->where($where)->page($page, $page_limit)->select();
foreach ($lists as $key => $value) {
$lists[$key]['type_str'] = model('Room')->relation_type[$value['type']];
$lists[$key]['is_open_movie'] = $value['is_open_movie']==1?'是':'否';
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
/**
* 添加关系
*/
public function add_relation(){
$name = input('name', '');
$type = input('type', '');
$is_open_movie = input('is_open_movie', 1);
$icon = input('icon', '');
if($name == ''){
return V(0,"请输入关系名称");
}
if($type == ''){
return V(0,"请选择关系类型");
}
$data = [
'name' => $name,
'type' => $type,
'is_open_movie' => $is_open_movie,
'icon' => $icon,
'createtime' => time()
];
$relation_id = db::name($this->relation)->insertGetId($data);
if(!$relation_id){
return V(0,"失败",null);
}
return V(1,"成功", ['id'=>$relation_id]);
}
/**
* 删除关系
*/
public function del_relation(){
$relation_id = input('relation_id', '');
if($relation_id == ''){
return V(0,"参数错误");
}
$relation_data = db::name($this->relation)->where(['id'=>$relation_id])->find();
if(!$relation_data){
return V(0,"关系不存在");
}
$result = db::name($this->relation)->where(['id'=>$relation_id])->update(['delete_time'=>time()]);
if(!$result){
return V(0,"删除失败");
}
return V(1,"成功");
}
/*
* 关系详情
*/
public function relation_info(){
$relation_id = input('relation_id', '');
if($relation_id == ''){
return V(0,"参数错误");
}
$relation_data = db::name($this->relation)->where(['id'=>$relation_id])->find();
if(!$relation_data){
return V(0,"关系不存在");
}
$relation_data['createtime'] = date('Y-m-d H:i:s', $relation_data['createtime']);
$relation_data['type_list'] = model('Room')->relation_type;
return V(1,"成功", $relation_data);
}
/**
* 编辑关系
*/
public function edit_relation(){
$relation_id = input('relation_id', '');
$name = input('name', '');
$type = input('type', '');
$is_open_movie = input('is_open_movie', 1);
$icon = input('icon', '');
if($relation_id == ''){
return V(0,"参数错误");
}
$relation_data = db::name($this->relation)->where(['id'=>$relation_id])->find();
if(!$relation_data){
return V(0,"关系不存在");
}
$data = [];
if($name){
$data['name'] = $name;
}
if($type){
$data['type'] = $type;
}
if($is_open_movie){
$data['is_open_movie'] = $is_open_movie;
}
if($icon){
$data['icon'] = $icon;
}
$result = db::name($this->relation)->where(['id'=>$relation_id])->update($data);
if(!$result){
return V(0,"失败");
}
return V(1,"成功", ['id'=>$relation_id]);
}
/*
* 房间列表
*/
public function room_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_room_id = input('search_room_id', '');
$search_user_id = input('search_user_id', '');
$search_status = input('search_status', '');
$where=[];
//房间号
if($search_room_id!==''){
$where['room_number'] = $search_room_id;
}
if($search_user_id!==''){
$user_id = db::name('user')->where('user_code', $search_user_id)->value('id');
$where['user_id'] = $user_id;
}
if($search_status!==''){
$where['room_status'] = $search_status;
}
//房间列表只展示 审核通过的房间
$where['apply_status'] = 2;//1待审核 2审核通过 3审核失败
$where['type_id'] = ['<>',6];
$count = db::name($this->table)->where($where)->count();
$room_lists = db::name($this->table)->where($where)->page($page, $page_limit)->select();
$lists = [];
foreach ($room_lists as $key => $value) {
$lists[$key]['room_id'] = $value['id'];
$lists[$key]['room_code'] = model('api/Decorate')->user_decorate_detail($value['id'], 7);
//靓号处理
//查询用是否有靓号
$special_num = db::name('vs_user_decorate')->where(['user_id'=>$value['id'],'type'=>7,'is_using'=>1])->where('end_time',['>=',time()],'or')->value('special_num');
if($special_num){
$lists[$key]['room_number'] = $special_num;
}else{
$lists[$key]['room_number'] = "";
}
$lists[$key]['user_name'] = model('User')->where(['id'=>$value['user_id']])->value('nickname');
$lists[$key]['room_name'] = $value['room_name'];
$lists[$key]['room_cover'] = $value['room_cover'];
$lists[$key]['room_type_str'] = db::name($this->table_room_type)->where(['id'=>$value['type_id']])->value('type_name');
$lists[$key]['room_label_str'] = db::name($this->table_room_label)->where(['id'=>$value['label_id']])->value('label_name');
$lists[$key]['is_recommend'] = $value['is_recommend'] != 1 ? '是' : '否';
$lists[$key]['is_top'] = $value['is_top'] != 1 ? '是' : '否';
$lists[$key]['is_hot'] = $value['is_hot'] != 1 ? '是' : '否';
$lists[$key]['is_earnings'] = $value['is_earnings'] =1 ? '是' : '否';
//所属工会
$guild = model('Guild')->getGuildByUserId($value['user_id']);
$lists[$key]['guild_name'] = !empty($guild) ? $guild['guild_name'] : "";
$lists[$key]['room_status_str'] = model('Room')->room_status[$value['room_status']];
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$lists[$key]['is_robot_num'] = $value['robot_num']==0 ? 1 : 2;
$lists[$key]['is_open_blind_box_turntable_str'] = $value['is_open_blind_box_turntable'] == 1 ? '是' : '否';
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
/*
* 删除房间
*
*/
public function del_room(){
$room_id = input('room_id', '');
if($room_id == ''){
return V(0,"参数错误");
}else{
return V(0,"房间不许删除");
}
$room_data = db::name($this->table)->where(['id'=>$room_id])->find();
if(!$room_data){
return V(0,"房间不存在");
}
$result = db::name($this->table)->where(['id'=>$room_id])->update(['delete_time'=>time()]);
if(!$result){
return V(0,"删除失败");
}
return V(1,"成功");
}
//房间详情
public function room_info(){
$room_id = input('room_id', '');
if($room_id == ''){
return V(0,"参数错误");
}
$room_data = db::name($this->table)->where(['id'=>$room_id])->find();
if(!$room_data){
return V(0,"房间不存在");
}
$room_data['createtime'] = date('Y-m-d H:i:s', $room_data['createtime']);
$room_data['updatetime'] = date('Y-m-d H:i:s', $room_data['updatetime']);
$room_data['room_type_str'] = db::name('vs_room_type')->where(['id'=>$room_data['type_id']])->value('type_name');
$room_data['liang'] = model('api/Decorate')->user_decorate_detail($room_data['id'],7);
$room_data['owner'] = db::name('user')->where(['id'=>$room_data['user_id']])->value('nickname');
$room_data['is_robot_num'] = $room_data['robot_num']==0 ? 2 : 1;
$room_data['guild_name'] = '';
$guild_id = db::name('vs_guild_user')->where('user_id',$room_data['user_id'])->value('guild_id');
if($guild_id){
$room_data['guild_name'] = db::name('vs_guild')->where('id',$guild_id)->value('guild_name');
}
$room_data['jiqirennum'] = 0;
$roomUser = db::name('vs_room_visitor')->where('room_id',$room_data['id'])->select();
if($roomUser){
foreach ($roomUser as $key => $value){
if(db::name('user')->where('id',$value['user_id'])->value('is_robot')){
$room_data['jiqirennum'] += 1;
}
}
}
//前天的收益
$room_data['two_day_ago_earnings'] = $this->get_room_today_profit($room_id,4);
//昨天的收益
$room_data['yesterday_earnings'] = $this->get_room_today_profit($room_id,3);
//今日的收益
$room_data['today_earnings'] = $this->get_room_today_profit($room_id,2);
// 计算今日收益比昨日收益的增长百分比
if ($room_data['yesterday_earnings'] > 0) {
$growthPercentage = (($room_data['today_earnings'] - $room_data['yesterday_earnings']) / $room_data['yesterday_earnings']) * 100;
} else {
// 如果昨日收益为0避免除以零错误
$growthPercentage = $room_data['today_earnings'] > 0 ? 100 : 0; // 如果今天有收益而昨天没有则视为增长100%
}
//比昨日收益增长百分之多少
$room_data['growth_percentage'] = round($growthPercentage, 2); // 保留两位小数
//计算昨日比前天的收益增长百分比
if ($room_data['two_day_ago_earnings'] > 0) {
$yesterdayGrowthPercentage = (($room_data['yesterday_earnings'] - $room_data['two_day_ago_earnings']) / $room_data['two_day_ago_earnings']) * 100;
} else {
// 如果前天收益为0避免除以零错误
$yesterdayGrowthPercentage = $room_data['yesterday_earnings'] > 0 ? 100 : 0; // 如果昨天有收益而前天没有则视为增长100%
}
//昨日比前天的收益增长百分之多少
$room_data['yesterday_growth_percentage'] = round($yesterdayGrowthPercentage, 2); // 保留两位小数
//今日访客
$room_data['visitor'] = $this->get_room_visitor($room_id,1);
//昨日访客
$room_data['yesterday_visitor'] = $this->get_room_visitor($room_id,2);
//今日比昨日访客增长百分比
if ($room_data['yesterday_visitor'] > 0) {
$yesterdayVisitor = (($room_data['visitor'] - $room_data['yesterday_visitor']) / $room_data['yesterday_visitor']) * 100;
} else {
// 如果前天收益为0避免除以零错误
$yesterdayVisitor = $room_data['visitor'] > 0 ? 100 : 0; // 如果今天有而昨天没有则视为增长100%
}
$room_data['growth_visitor'] = round($yesterdayVisitor, 2); // 保留两位小数
//补贴
$roomSubsidy = model('api/Room')->room_ubsidy($room_id);
//上周补贴
$room_data['last_week_subsidy'] = $roomSubsidy['lastweek']['subsidy_amount'];
//本周补贴
$room_data['this_week_subsidy'] = $roomSubsidy['thisweek']['subsidy_amount'];
//本周补贴比上周增长百分比
if ($room_data['last_week_subsidy'] > 0) {
$weekSubsidy = (($room_data['this_week_subsidy'] - $room_data['last_week_subsidy']) / $room_data['last_week_subsidy']) * 100;
} else {
// 如果上周收益为0避免除以零错误
$weekSubsidy = $room_data['this_week_subsidy'] > 0 ? 100 : 0; // 如果本周有收益而上周没有则100%
}
$room_data['growth_week_subsidy'] = round($weekSubsidy, 2);
return V(1,"成功", $room_data);
}
//房间收益
//type 1:总收益 2:今日收益 3:昨日收益 4:前天的收益
public function get_room_today_profit($room_id,$type)
{
if($type == 2){
$start_time = strtotime(date('Y-m-d'));
$end_time = $start_time + 86400;
}elseif ($type == 3){
$start_time = strtotime(date('Y-m-d',strtotime('-1 day')));
$end_time = $start_time + 86400;
}elseif ($type == 4){
$start_time = strtotime(date('Y-m-d',strtotime('-2 day')));
$end_time = $start_time + 86400;
}elseif ($type == 1){
$start_time = 1748676768;//2025-06-00 15:32:48
$end_time = time();
}
$profit = db::name('vs_give_gift')->where('from_id', $room_id)->where('from',2)->where('createtime', 'between', [$start_time, $end_time])->sum('total_price');
return $profit;
}
//房间访客
//type 1:今日 2:昨日 3所有
public function get_room_visitor($room_id,$type)
{
if($type == 1){
$start_time = strtotime(date('Y-m-d'));
$end_time = $start_time + 86400;
}elseif ($type == 2){
$start_time = strtotime(date('Y-m-d',strtotime('-1 day')));
$end_time = $start_time + 86400;
}elseif ($type == 3){
$start_time = 1748676768;//2025-06-00 15:32:48
$end_time = time();
}
$profit = db::name('user_visit_log')->where(['to_id'=>$room_id,'type'=>2])->where('createtime', 'between', [$start_time, $end_time])->count();
return $profit;
}
//房间流水
public function room_flow()
{
$room_id = input('room_id', '');
$page = input('page', 1);
$page_limit = input('page_limit', 10);
$type = input('type', 1);//1:全部流水 2:日流水 3:周流水 4:月流水
if($room_id == ''){
return V(0,"参数错误");
}
if($type == 1){
$begin_time = 1748676768;//2025-06-00 15:32:48
$end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}elseif ($type == 2){
//日流水
$begin_time = strtotime(date('Y-m-d 00:00:00',time()));
$end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}
elseif ($type == 3){
//周流水
//周一
$begin_time = strtotime(date('Y-m-d 24:00:00',strtotime('-'.date('w').'days')));
$end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}
elseif ($type == 4){
$begin_time = strtotime(date('Y-m-01'));
$end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}
$count = db::name('vs_give_gift')->alias('a')
->field('a.id')
->join('user b', 'a.user_id = b.id', 'left')
->join('user c', 'a.gift_user = c.id', 'left')
->join('vs_gift d', 'a.gift_id = d.gid', 'left')
->where('a.from',2)
->where('a.from_id',$room_id)
->where($where)
->count();
$list = db::name('vs_give_gift')->alias('a')
->field('a.number,a.createtime,a.total_price,a.type,b.nickname,b.avatar,c.nickname as gift_nickname,c.avatar as gift_avatar,d.gift_name,a.from,a.from_id')
->join('user b', 'a.user_id = b.id', 'left')
->join('user c', 'a.gift_user = c.id', 'left')
->join('vs_gift d', 'a.gift_id = d.gid', 'left')
->where('a.from',2)
->where('a.from_id',$room_id)
->where($where)
->order('a.id desc')
->page($page, $page_limit)
->select();
if($list){
foreach ($list as &$v){
$v['createtime'] = date('Y-m-d H:i:s',$v['createtime']);
$v['content'] = $v['nickname'].' 给 '.$v['gift_nickname'].' 送了 '.$v['gift_name'].' x '.$v['number'];
// 来源1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏
$v['from_str'] = model('Gift')->GiveGiftFromStr[$v['from']];
}
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $list,
'total' =>[
'total_price' => db::name('vs_give_gift')->alias('a')
->join('user b', 'a.user_id = b.id', 'left')
->where('a.from',2)
->where('a.from_id',$room_id)
->where($where)->sum('total_price')
]
];
return V(1,"成功", $return_data);
}
//房间用户进入记录
public function room_user_log()
{
$room_id = input('room_id', '');
$page = input('page', 1);
$page_limit = input('page_limit', 10);
if($room_id == ''){
return V(0,"参数错误");
}
$count = db::name('user_visit_log')->alias('a')
->field('a.id,a.createtime,b.nickname,b.user_code')
->join('user b', 'a.from_uid = b.id', 'left')
->where('a.to_id',$room_id)
->where('a.type',2)
->count();
$list = db::name('user_visit_log')->alias('a')
->field('a.id,a.createtime,b.nickname,b.user_code')
->join('user b', 'a.from_uid = b.id', 'left')
->where('a.to_id',$room_id)
->where('a.type',2)
->order('a.id desc')
->page($page, $page_limit)
->select();
if($list){
foreach ($list as &$v){
$v['createtime'] = date('Y-m-d H:i:s',$v['createtime']);
}
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $list
];
return V(1,"成功", $return_data);
}
//编辑房间
public function edit_room()
{
$room_id = input('room_id', '');//固定值不可变
$admin_id = Session::get('admin_id');
$room_number = input('room_number', '');//房间编号
if($room_number){
$data['room_number'] = $room_number;
}
$room_name = input('room_name', '');//房间名称
if($room_name){
$data['room_name'] = $room_name;
}
$room_intro = input('room_intro', '');//房间简介(公告)
if($room_intro){
$data['room_intro'] = $room_intro;
}
$room_cover = input('room_cover', '');//房间封面
if($room_cover){
$data['room_cover'] = $room_cover;
}
$room_background_id = input('room_background', '');//房间背景url
if($room_background_id){
$data['room_background'] = $room_background_id;
}
$type_id = input('type_id', '');//房间类型id
if($type_id){
$data['type_id'] = $type_id;
}
$is_earnings = input('is_earnings', '');//是否获取收益 1是 2否
if($is_earnings){
$data['is_earnings'] = $is_earnings;
}
$is_top = input('is_top', '');//是否置顶 1非置顶 2置顶
if($is_top){
$data['is_top'] = $is_top;
}
$is_hot = input('is_hot', '');//是否热门 1非热门 2热门
if($is_hot){
$data['is_hot'] = $is_hot;
}
$is_recommend = input('is_recommend', '');//是否推荐 1非推荐 2推荐
if($is_recommend){
$data['is_recommend'] = $is_recommend;
}
$room_status = input('room_status', '');//房间状态 1正常 2封禁 3关闭
if($room_status){
$data['room_status'] = $room_status;
}
$is_show_room = input('is_show_room', '');//是否显示房间 1是 2否
if($is_show_room){
$data['is_show_room'] = $is_show_room;
}
$room_password = input('room_password', '');//房间密码
$is_room_password = input('is_room_password', '');//是否密码房 1是 2否
if($is_room_password == 1){
if($room_password == ''){
return V(0,"请填写房间密码");
}
$data['room_password'] = $room_password;
}elseif ($is_room_password == 2){
$data['room_password'] = '';
}
$robot_num = input('robot_num', '');//机器人数量
$is_robot_num = input('is_robot_num', '');//是否投送机器人 1是 2否
if($is_robot_num == 1){
if($robot_num == ''){
return V(0,"请填写机器人数量");
}
$data['robot_num'] = $robot_num;
//在用户表里找 $robot_num 个机器人 进入到房间
$user_list = db::name('user')->field('id')->where('is_robot',1)->limit($robot_num)->orderRaw('rand()')->select();
if($user_list){
if(count($user_list) != $robot_num){
return V(0,"机器人数量不足");
}
foreach ($user_list as $v){
model('api/Room')->join_room($v['id'],$room_id,$room_password);
}
}else{
return V(0,"没有可用机器人");
}
}elseif ($is_robot_num == 2 || $robot_num == 0){
$data['robot_num'] = 0;
//查询在房间中的机器人 并退出
$user_list = db::name('vs_room_visitor')->alias('a')->join('user b','a.user_id = b.id','left')
->field('a.id,a.user_id')
->where('a.room_id',$room_id)
->where('b.is_robot',1)
->select();
if($user_list){
foreach ($user_list as $v){
model('api/Room')->quit_room(1,$room_id,$v['user_id'],0);
}
}
}
$is_open_blind_box_turntable = input('is_open_blind_box_turntable', '');//是否开启盲盒转盘0 否 1是
if($is_open_blind_box_turntable !== ""){
$data['is_open_blind_box_turntable'] = $is_open_blind_box_turntable;
if($is_open_blind_box_turntable == 1){
$room_data = db::name('vs_room')->find($room_id);
if($room_data['is_open_blind_box_turntable'] == 0){
model('Room')->bindPan($room_id);
}
}
}
$res = db::name('vs_room')->where('id',$room_id)->update($data);
if($res){
return V(1,"成功");
}
else{
return V(0,"失败");
}
}
//房间背景列表
public function room_background_list()
{
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_name = input('search_name', '');
$status = input('status', '');
// $where['status'] = 1;
$where['delete_time'] = null;
//标签名称
if($search_name!==''){
$where['image_name'] = ['like', '%'.$search_name.'%'];
}
if($status!==''){
$where['status'] = $status;
}
$count = db::name('vs_room_background')->where($where)->count();
$lists = db::name('vs_room_background')->where($where)->order('id desc')->page($page, $page_limit)->select();
foreach ($lists as &$value) {
$value['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
if($value['upload_user'] > 0){
$value['upload_user'] = db::name('user')->where('id',$value['upload_user'])->value('nickname');
}else{
$value['upload_user'] = '系统';
}
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
//房间背景添加/修改
public function room_background_add()
{
//管理员ID
$admin_id = Session::get('admin_id');
if(!$admin_id){
return V(0,"管理员ID不能为空");
}
$id = input('id', '');
if($id){
$data = [
// 'upload_user' => $admin_id,
'updatetime' => time(),
];
$image_name = input('image_name', '');
if($image_name){
$data['image_name'] = $image_name;
}
$image_url = input('image_url', '');
if($image_url){
$data['image_url'] = $image_url;
}
$status = input('status', '');
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{
return V(0,"失败");
}
}else{
$data = [
'image_name' => input('image_name', ''),
'image_url' => input('image_url', ''),
'status' => input('status', 1),
// 'upload_user' => $admin_id,
'createtime' => time(),
'updatetime' => time(),
];
$res = db::name('vs_room_background')->insert($data);
if($res){
return V(1,"成功");
}
else{
return V(0,"失败");
}
}
}
//房间背景删除
public function room_background_del()
{
$id = input('id', '');
if(!$id){
return V(0,"ID不能为空");
}
$res = db::name('vs_room_background')->where('id',$id)->update(['status' => 2,'delete_time'=>time()]);
if($res){
return V(1,"成功");
}
else{
return V(0,"失败");
}
}
//Cp电影房
public function cp_movie_room()
{
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_room_number = input('search_room_number', '');
$search_onwer_number = input('search_onwer_number', '');
$room_status = input('room_status', '');
if($search_room_number!==''){
$where['room_number'] = $search_room_number;
}
if($search_onwer_number!==''){
$where['user_id'] = $search_onwer_number;
}
if($room_status!==''){
$where['room_status'] = $room_status;
}
$where['type_id'] = 6;
$count = db::name('vs_room')->where($where)->count();
$lists = db::name('vs_room')->field('id,room_name,room_cover,room_number,user_id,room_status,createtime')
->where($where)
->order('id desc')
->page($page, $page_limit)->select();
foreach ($lists as &$value) {
$guild = model('Guild')->getGuildByUserId($value['user_id']);
$value['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$value['is_on_line'] = db::name('vs_room_visitor')->where('room_id',$value['id'])->value('user_id') ? 1 : 0;
$value['is_on_line_str'] = $value['is_on_line'] ? "在线 ": "离线";
$value['user_guild'] = $guild['guild_name']?? '';
$value['user_nickname'] = db::name('user')->where('id',$value['user_id'])->value('nickname');
$value['room_code'] = model('api/Decorate')->user_decorate_detail($value['id'], 7);
//房间状态1正常2封禁3关闭
$value['room_status_str'] = $value['room_status'] ==1 ? "正常" : ($value['room_status'] ==2 ? "封禁" : "关闭");
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
//Cp电影房封禁
public function cp_movie_room_forbid()
{
$room_id = input('room_id', '');
if(!$room_id){
return V(0,"房间ID不能为空");
}
$data = [
'room_status' => 2,
'updatetime' => time(),
];
$res = db::name('vs_room')->where('id',$room_id)->update($data);
if($res){
$res1 = db::name('vs_room_cp_movie')->where('room_id',$room_id)->update(['status' => 3]);
if(!$res1){
return V(0,"失败");
}
//给前端推消息
return V(1,"成功");
}
else{
return V(0,"失败");
}
}
/*
* 房间补贴配置添加
*/
public function room_subsidy_config_add(){
$start_amount = input('start_amount', 0);
$end_amount = input('end_amount', 0);
$subsidy_ratio = input('subsidy_ratio', 0);
if ($start_amount && $end_amount && $subsidy_ratio) {
$res = db::name($this->table_room_subsidy_config)->insertGetId([
'start_amount' => $start_amount,
'end_amount' => $end_amount,
'subsidy_ratio' => $subsidy_ratio,
'createtime' => time(),
]);
if (!$res) {
return V(0, "添加失败");
}
}else{
return V(0, "参数错误");
}
return V(1, "添加成功");
}
/*
* 房间补贴配置列表
*/
public function room_subsidy_config_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$where=[];
$count = db::name($this->table_room_subsidy_config)->where($where)->count();
$lists = db::name($this->table_room_subsidy_config)->where($where)->page($page, $page_limit)->order('id desc')->select();
foreach ($lists as $key => $value) {
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
/*
* 房间补贴配置 删除
*/
public function del_room_config_subsidy(){
$id = input('id', '');
if($id == ''){
return V(0,"参数错误");
}
$result = db::name($this->table_room_subsidy_config)->where(['id'=>$id])->delete();
if(!$result){
return V(0,"删除失败");
}
return V(1,"成功");
}
/*
* 房间补贴配置 编辑
*/
public function edit_room_config_subsidy(){
$id = input('id', '');
if($id == ''){
return V(0,"参数错误");
}
$guild_subsidy_config = db::name($this->table_room_subsidy_config)->where(['id'=>$id])->find();
if(!$guild_subsidy_config){
return V(0,"数据不存在");
}
$start_amount = input('start_amount', "");
$end_amount = input('end_amount', "");
$subsidy_ratio = input('subsidy_ratio', "");
$data=[];
if($start_amount != ""){
$data['start_amount'] = $start_amount;
}
if($end_amount != ""){
$data['end_amount'] = $end_amount;
}
if($subsidy_ratio != ""){
$data['subsidy_ratio'] = $subsidy_ratio;
}
$result = db::name($this->table_room_subsidy_config)->where(['id'=>$id])->update($data);
if(!$result){
return V(0,"修改失败");
}
return V(1,"成功");
}
/*
* 房间补贴配置 状态修改
*/
public function room_config_subsidy_status(){
$id = input('id', '');
if($id == ''){
return V(0,"参数错误");
}
$status = input('status', '');
if($status == ''){
return V(0,"参数错误");
}
$result = db::name($this->table_room_subsidy_config)->where(['id'=>$id])->update(['status'=>$status]);
if(!$result){
return V(0,"修改失败");
}
return V(1,"成功");
}
/*
* 房间周补贴列表
*/
public function room_subsidy_list(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_user_id = input('search_user_id', '');
$search_room_id = input('search_room_id', '');
$search_status_time = input('search_status_time', '');
$search_end_time = input('search_end_time', '');
$search_status = input('search_status', '');
$where = ['b.delete_time'=>0];
if($search_user_id){
$where['b.user_id'] = $search_user_id;
}
if($search_room_id){
$where['a.room_id'] = $search_room_id;
}
if($search_status_time){
$where['a.start_time'] = ['>=', $search_status_time];
}
if($search_end_time){
$where['a.end_time'] = ['<=', $search_end_time];
}
if($search_status){
$where['a.status'] = $search_status;
}
$count = db::name($this->table_room_subsidy)->alias('a')
->join('vs_room b','a.room_id = b.id')
->where($where)
->count();
$lists_data = db::name($this->table_room_subsidy)->alias('a')
->join('vs_room b','a.room_id = b.id')
->where($where)
->order('a.id desc')
->field('a.*,b.room_name,b.user_id')
->page($page,$page_limit)
->select();
$lists = [];
foreach ($lists_data as $key => $value) {
$lists[$key]['id'] = $value['id'];
$lists[$key]['user_id'] = $value['user_id'];
$lists[$key]['user_name'] = model('user')->where(['id'=>$value['user_id']])->value('nickname');
$lists[$key]['room_id'] = $value['room_id'];
$lists[$key]['room_name'] = $value['room_name'];
$lists[$key]['total_transaction'] = $value['total_transaction'];
$lists[$key]['subsidy_amount'] = $value['subsidy_amount'];
$lists[$key]['time'] = date('Y-m-d',strtotime($value['start_time'])) .'~'.date('Y-m-d',strtotime($value['end_time']));
$lists[$key]['status'] = $value['status'];
$lists[$key]['status_str'] = $value['status'] ? '已发放' : '未发放';
$lists[$key]['room_code'] = model('api/Decorate')->user_decorate_detail($value['room_id'], 7);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
//房间审核列表
public function room_audit_list(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_user_id = input('search_user_id', '');
$search_room_id = input('search_room_id', '');
$apply_status = input('apply_status', '');//1待审核 2审核通过 3审核失败
if($search_room_id!==''){
$where['room_number'] = $search_room_id;
}
if($search_user_id!==''){
$where['user_id'] = $search_user_id;
}
if($apply_status!==''){
$where['apply_status'] = $apply_status;
}else{
$where['apply_status'] = 1;
}
$count = db::name($this->table)->where($where)->count();
$room_lists = db::name($this->table)
->field('id,room_name,room_number,user_id,room_cover,room_intro,apply_status,createtime')
->where($where)->page($page, $page_limit)->select();
foreach ($room_lists as &$value) {
$value['room_code'] = model('api/Decorate')->user_decorate_detail($value['id'], 7);
$value['user_name'] = model('User')->where(['id'=>$value['user_id']])->value('nickname').'-'.$value['user_id'];
$value['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$value['room_name'] = $value['room_name'].'-'.$value['room_number'];
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $room_lists
];
return V(1,"成功", $return_data);
}
//房间审核
public function room_audit(){
$id = input('id', '');
if($id == ''){
return V(0,"参数错误");
}
$apply_status = input('apply_status', '');
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,
'updatetime'=>time(),
]);
if(!$result){
return V(0,"修改失败");
}
//发系统信息
if($apply_status ==2){
$deal_content = '审核通过';
}elseif($apply_status ==3){
$deal_content = '审核未通过';
}
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,"成功");
}
/*
* 补贴发放
*/
public function subsidy_give(){
$id = input('id');
$status = input('status', 0);
$remark = input('remark', 0);
if(!$id){
return V(0,"参数错误");
}
$data = db::name($this->table_room_subsidy)->alias('a')
->join('vs_room b','a.room_id = b.id')
->where(['a.id'=>$id])
->field('a.subsidy_amount,b.user_id,a.status,a.id,b.room_status')
->find();
if(!$data){
return V(0,"补贴数据不存在");
}
if($data['room_status']==3){
return V(0,"房间已关闭");
}
if($data['status']!=0){
return V(0,"该申请已处理");
}
Db::startTrans();
try{
if($status==1){
//发放处理用户资金
$reslut = model('common/UserWallet')->change_user_money($data['user_id'], $data['subsidy_amount'], model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::ROOM_SUBSIDY,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::ROOM_SUBSIDY));
if ($reslut['code'] != 1) {
Db::rollback();
return V($reslut['code'],$reslut['msg']);
}
}
$res = DB::name($this->table_room_subsidy)->where('id', $id)->update([
'status' => $status,
'remark' => $remark
]);
if($res){
Db::commit();
return V(1,"操作成功");
}else{
Db::rollback();
return V(0,"操作失败");
}
} catch (Exception $e) {
Db::rollback();
return V(0,$e->getMessage());
}
}
/*
* 批量补贴发放
*/
public function subsidy_give_batch(){
$ids = input('ids');
$status = input('status', 0);
$remark = input('remark', 0);
$ids = explode(',', $ids);
if(!$ids){
return V(0,"参数错误");
}
$data = db::name($this->table_room_subsidy)->alias('a')
->join('vs_room b','a.room_id = b.id')
->whereIn("room_id", $ids)
->field('a.subsidy_amount,b.user_id,a.status,a.id')
->select();
if(!$data){
return V(0,"参数错误");
}
$data_arr = [];
Db::startTrans();
try{
foreach ($data as $value){
if ($value['status'] != 0) {
continue;
}
if($status==1){
//发放处理用户资金
$reslut = model('common/UserWallet')->change_user_money($value['user_id'], $value['subsidy_amount'], model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::ROOM_SUBSIDY,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::ROOM_SUBSIDY));
if ($reslut['code'] != 1) {
Db::rollback();
return V($reslut['code'],$reslut['msg']);
}
}
}
$res = DB::name($this->table_room_subsidy)->whereIn('id', $ids)->where('status', 0)->update([
'status' => $status,
'remark' => $remark
]);
if($res){
Db::commit();
return V(1,"操作成功");
}else{
Db::rollback();
return V(0,"操作失败");
}
} catch (Exception $e) {
Db::rollback();
return V(0,$e->getMessage());
}
}
/*
* 房间操作记录列表
*/
public function room_log_list(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$seach_room_id = input('room_id', '');
$from_uid = input('from_uid', '');
$to_id = input('to_id', '');
$type = input('type', '');
$stime = input('stime', '');
$etime = input('etime', '');
$where = [];
if($seach_room_id){
if(is_numeric($seach_room_id)) {
$room_id = db::name('vs_room')->where('room_number', $seach_room_id)->value('id');
$where['room_id'] = $room_id;
}else{
$room_id = db::name('vs_room')->where('room_name', $seach_room_id)->value('id');
$where['room_id'] = $room_id;
}
}
if($from_uid){
if(is_numeric($from_uid)){
$from_user_id = db::name('user')->where('user_code', $from_uid)->value('id');
$where['user_id'] = $from_user_id;
}else{
$from_user_id = db::name('user')->where('nickname', $from_uid)->value('id');
$where['user_id'] = $from_user_id;
}
}
if($to_id){
if(is_numeric($to_id)){
$accept_user_id = db::name('user')->where('user_code', $to_id)->value('id');
$where['accept_user_id'] = $accept_user_id;
}else{
$accept_user_id = db::name('user')->where('nickname', $to_id)->value('id');
$where['accept_user_id'] = $accept_user_id;
}
}
if($type){
$where['type'] = $type;
}
if(!empty($stime)){
$where['createtime'] = ['>=',strtotime($stime)];
}
if(!empty($etime)){
$where['createtime'] = ['<=',strtotime($etime.' 23:59:59')];
}
if(!empty($stime) && !empty($etime)){
$where['createtime'] = ['between',[strtotime($stime),strtotime($etime.' 23:59:59')]];
}
$room_log_lists = db::name($this->table_room_log)->where($where)->order('id desc')->page($page, $page_limit)->select();
$count = db::name($this->table_room_log)->where($where)->count();
$lists = [];
foreach ($room_log_lists as $key => $value) {
$lists[$key]['id'] = $value['id'];
$lists[$key]['room_code'] = db::name('vs_room')->where(['id'=>$value['room_id']])->value('room_number');
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$user = db::name('user')->where(['id'=>$value['user_id']])->find();
$lists[$key]['from_uname'] = $user['user_code']."-".$user['nickname'];
$accept_user = db::name('user')->where(['id'=>$value['accept_user_id']])->find();
$lists[$key]['to_uname'] = $value['accept_user_id'] ? $accept_user['user_code']."-".$accept_user['nickname'] : "";
$lists[$key]['room_name'] = $lists[$key]['room_code']."-".db::name('vs_room')->where(['id'=>$value['room_id']])->value('room_name');
$lists[$key]['type'] = $value['type'];
$lists[$key]['type_str'] = model('Room')->room_log_type[$value['type']];
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists,
'room_log_type' => model('Room')->room_log_type
];
return V(1,"成功", $return_data);
}
/*
* 头条列表
*/
public function room_headline_list(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$user_id = input('user_id', '');
$stime = input('stime', '');
$etime = input('etime', '');
$where = [];
if($user_id){
$where['user_id'] = $user_id;
}
if($stime){
$where['createtime'] = ['>=',strtotime($stime)];
}
if($etime){
$where['createtime'] = ['<=',strtotime($etime)];
}
$count = db::name("vs_headline")->where($where)->count();
$room_headline_lists = db::name("vs_headline")->where($where)->page($page, $page_limit)->order('id desc')->select();
$lists = [];
foreach ($room_headline_lists as $key => $value) {
if($value['end_time']<time()){
db::name("vs_headline")->where(['id'=>$value['id']])->update(['is_now'=>0]);
}
$lists[$key]['id'] = $value['id'];
$user_code = model('api/Decorate')->user_decorate_detail($value['user_id'],6);
$lists[$key]['user_name'] = $user_code."-".db::name('user')->where(['id'=>$value['user_id']])->value('nickname');
$lists[$key]['content'] = $value['content'];
$lists[$key]['money'] = $value['money'];
$lists[$key]['status'] = $value['is_now']==1 ?"显示中" : "已完成";
if($value['end_time']<time()){
$lists[$key]['status'] = "已完成";
}
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$lists[$key]['is_now'] = $value['is_now'];
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists,
];
return V(1,"成功", $return_data);
}
/*
* 删除头条
*/
public function room_headline_del(){
$id = input('id', '');
if(!$id){
return V(0,"参数错误");
}
$res = db::name("vs_headline")->where(['id'=>$id])->delete();
if($res){
return V(1,"删除成功");
}else{
return V(0,"删除失败");
}
}
/*
* 隐藏头条
*/
public function room_headline_hide(){
$id = input('id', '');
if(!$id){
return V(0,"参数错误");
}
$headline = db::name("vs_headline")->where(['id'=>$id])->find();
if(!$headline){
return V(0,"参数错误");
}
if($headline['is_now']==2){
return V(0,"该头条已隐藏");
}
$res = db::name("vs_headline")->where(['id'=>$id])->update([
'is_now' => 2
]);
if($res){
return V(1,"隐藏成功");
}else{
return V(0,"隐藏失败");
}
}
/*
* 创建CP电影房
*/
public function create_cp_movie_room(){
$user_id1 = input('user_id1', '');
$user_id2 = input('user_id2', '');
$time_day = input('time_day', '');
//开启电影房
$nickname = db::name('user')->where('id',$user_id1)->value('nickname');
$nickname1 = db::name('user')->where('id',$user_id2)->value('nickname');
//开启事务
db::startTrans();
//创建房间
$room_id = model('api/Room')->user_create_room($user_id1,$nickname.' & '.$nickname1.' 的Cp电影房',get_system_config_value('web_site').'/data/avatar/head_pic.png',$nickname.' 和 '.$nickname1.' 的Cp电影房',$user_id1.$user_id2);
if(!$room_id['status']){
db::rollback();
return V(0,$room_id['msg']);
}
//添加到数据库
$res2 = db::name('vs_room_cp_movie')->insertGetId([
'room_id' => $room_id['data'],
'user_id' => $user_id1,
'user_id1' => $user_id2,
'time_day' => time() + $time_day,
'createtime' => time(),
'status' => 1
]);
if(!$res2){
db::rollback();
return V(0,"添加失败");
}
db::commit();
return V(1,"成功", ['room_id' => $room_id['data']]);
}
//声网的token
public function get_token(){
$admin_id = Session::get('admin_id');
$room_id = input('room_id', '');
$token = model('api/Agora')->agora_token_info($admin_id, $room_id);
return V(1,"成功", ['token' => $token]);
}
//推荐房间列表(消息类型为房间公告时选择用)
public function recommend_room_list(){
$room_list = db::name($this->table)->where(['is_recommend'=>2,'room_status'=>1])->select();
$result = [];
foreach ($room_list as $key => $value) {
$result[$key]['room_id'] = $value['id'];
$result[$key]['room_name'] = $value['room_name'];
}
return V(1,"成功", $result);
}
}