1440 lines
57 KiB
PHP
1440 lines
57 KiB
PHP
<?php
|
||
|
||
namespace app\admin\model;
|
||
|
||
use think\Db;
|
||
use think\Model;
|
||
|
||
class Room extends Model
|
||
{
|
||
protected $pk = 'rid';
|
||
protected $auto = ['update_time'];
|
||
protected $insert = [
|
||
'add_time',
|
||
];
|
||
protected $update = ['update_time'];
|
||
|
||
|
||
protected function setAddTimeAttr()
|
||
{
|
||
return time();
|
||
}
|
||
|
||
protected function setUpdateTimeAttr()
|
||
{
|
||
return time();
|
||
}
|
||
public function get_room_list($data, $order, $sort, $page = 1, $limit = 20)
|
||
{
|
||
$map = [];
|
||
foreach ($data as $k => $v) {
|
||
if (!empty($v)) {
|
||
if (in_array($k, ['room_name'])) {
|
||
$map[] = [$k, 'like', "%$v%"];
|
||
} else {
|
||
$map[] = [$k, '=', $v];
|
||
}
|
||
}
|
||
}
|
||
$user_list = db::name('room')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
foreach ($user_list as $k => &$v) {
|
||
$user = db::name('user')->where(['uid' => $v['room_owner_uid']])->find();
|
||
$v['nickname'] = $user['uid'] . '-' . $user['nick_name'];
|
||
$v['head_pic'] = localpath_to_netpath($v['room_cover']);
|
||
$v['room_type'] = db::name('room_type')->where(['tid' => $v['tid']])->value('type_name');
|
||
$v['room_cate_id'] = db::name('room_category')->where(['cate_id' => $v['cate_id']])->value('category_name');
|
||
$v['room_cover'] = localpath_to_netpath($v['room_cover']);
|
||
$v['room_name'] = mb_convert_encoding(base64_decode($v['base64_room_name']), 'UTF-8', 'UTF-8');
|
||
}
|
||
|
||
$data = [];
|
||
$data['count'] = db::name('room')->where($map)->count();
|
||
$data['list'] = $user_list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
public function edit_room_info($data)
|
||
{
|
||
$room_info = db::name('room')->where('rid', $data['rid'])->find();
|
||
if(!$room_info){
|
||
return ['code' => 201, 'msg' => '参数错误', 'data' => ''];
|
||
}
|
||
|
||
// dump($data);exit;
|
||
if($data['envelope_rate'] > 0.02){
|
||
return ['code' => 201, 'msg' => '红包流水比例不能大于0.02', 'data' => ''];
|
||
}
|
||
|
||
Db::startTrans();
|
||
try {
|
||
|
||
$validate = validate('room');
|
||
$reslut = $validate->scene('adminEdit')->check($data);
|
||
if ($reslut !== true) {
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
|
||
}
|
||
|
||
$data['base64_room_name'] = base64_encode($data['room_name']);
|
||
$reslut = model('room')->isUpdate(true)->save($data);
|
||
if (!$reslut) {
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => ''];
|
||
}
|
||
|
||
if($data['cate_id'] != $room_info['cate_id']){
|
||
if($room_info['cate_id'] == 26){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $data['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){
|
||
return ['code' => 201, 'msg' => '当前有进行中的新人拍卖,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
if($room_info['cate_id'] == 27){
|
||
//当前是否已有进行中的K歌
|
||
$map = [];
|
||
$map[] = ['rid', '=', $data['rid']];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$room_auction_info = db::name('room_song_log')->where($map)->find();
|
||
if($room_auction_info){
|
||
return ['code' => 201, 'msg' => '当前K歌进行中,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
if($room_info['cate_id'] == 28){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $data['rid']];
|
||
$map[] = ['status', '=', 2];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$room_auction_info = db::name('room_auction_log')->where($map)->find();
|
||
if($room_auction_info){
|
||
return ['code' => 201, 'msg' => '当前有尚未结束的拍卖,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
if($room_info['cate_id'] == 29){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $data['rid']];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$room_dating_log = db::name('room_dating_log')->where($map)->find();
|
||
if($room_dating_log){
|
||
return ['code' => 201, 'msg' => '当前玩法进行中,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
|
||
|
||
//清理该房间所有麦位魅力值
|
||
$map = [];
|
||
$map[] = ['rid', '=', $data['rid']];
|
||
$map[] = ['charm_value', '>', 0];
|
||
$list = db::name('room_user_cc')->where($map)->select();
|
||
if(!empty($list)){
|
||
foreach ($list as $k => $v){
|
||
$reslut = db::name('room_user_micro_charm_log')->where('cid', $v['cid'])->update(['change_value' => 0, 'update_time' => time()]);
|
||
if(!$reslut){
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => ''];
|
||
}
|
||
}
|
||
$reslut = db::name('room_user_cc')->where($map)->update(['charm_value' => 0, 'update_time' => time()]);
|
||
if(!$reslut){
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => ''];
|
||
}
|
||
}
|
||
}
|
||
|
||
//获取机器人数量
|
||
if($data['robot_num'] != $room_info['robot_num']){
|
||
//在麦上的机器人数量
|
||
$yuan_uids = db::name('user')->where(['is_sys_tester'=>1,'belong_rid'=>$data['rid']])->column('uid');
|
||
if(empty($yuan_uids)){
|
||
$yuan_uids = [-1];
|
||
}
|
||
|
||
$micro_uids = db::name('room_micro')->where([['rid','=',$data['rid']],['uid','in',$yuan_uids]])->column('uid');
|
||
$micro_uids_num = count($micro_uids);
|
||
if($data['robot_num'] < $micro_uids_num){
|
||
return ['code' => 201, 'msg' => "当前机器人有{$micro_uids_num}在麦位上", 'data' => null];
|
||
}
|
||
|
||
//清空原始人员
|
||
db::name('user')->where(['is_sys_tester'=>1,'belong_rid'=>$data['rid']])->where('uid','not in',$micro_uids)->update(['belong_rid'=>0,'update_time'=>time()]);
|
||
|
||
//重新注入新人员
|
||
$new_num = $data['robot_num'] - $micro_uids_num;
|
||
|
||
//当前空闲机器人
|
||
$kong_xian_num = db::name('user')->where(['is_sys_tester'=>1,'belong_rid'=>0])->count("*");
|
||
if($new_num > $kong_xian_num){
|
||
return ['code' => 201, 'msg' => "空闲机器人数量不足,剩余{$kong_xian_num}个", 'data' => ''];
|
||
}
|
||
//新机器人
|
||
if($new_num > 0){
|
||
$new_uids_arr = db::name('user')->where(['is_sys_tester'=>1,'belong_rid'=>0])->orderRand()->limit($new_num)->column('uid');
|
||
db::name('user')->where(['is_sys_tester'=>1])->where('uid','in',$new_uids_arr)->update(['belong_rid'=>$data['rid'],'update_time'=>time()]);
|
||
|
||
}
|
||
}
|
||
|
||
|
||
Db::commit();
|
||
|
||
if($data['cate_id'] != $room_info['cate_id']){
|
||
$push_room_data = [];
|
||
$push_room_data['rid'] = $data['rid'];
|
||
$push_room_data['type'] = 1;
|
||
|
||
$push_data = [];
|
||
$push_data['code'] = 369;
|
||
$push_data['msg'] = "房间类型变更推送";
|
||
$push_data['data'] = $push_room_data;
|
||
$reslut = model('api/WebSocketPush')->send_to_group($data['rid'], $push_data);
|
||
}
|
||
|
||
return ['code' => 200, 'msg' => "成功", 'data' => null];
|
||
} catch (\Exception $e) {
|
||
dump($e);
|
||
//回滚事务
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => "失败", 'data' => null];
|
||
}
|
||
|
||
}
|
||
|
||
public function add_room($data)
|
||
{
|
||
$user_info = db::name('user')->where(['uid' => $data['room_owner_uid']])->find();
|
||
if (empty($user_info)) {
|
||
return ['code' => 201, 'msg' => '厅主不存在', 'data' => null];
|
||
}
|
||
$map = [];
|
||
$map[] = ['room_owner_uid', '=', $data['room_owner_uid']];
|
||
$map[] = ['tid', '=', $data['tid']];
|
||
$room_info = db::name('room')->where($map)->find();
|
||
if (!empty($room_info)) {
|
||
return ['code' => 201, 'msg' => '该厅主已拥有该类型直播间', 'data' => null];
|
||
}
|
||
if ($room_info['is_delete'] == 2) {
|
||
return ['code' => 201, 'msg' => '该厅主房间正在删除状态中,请勿重复创建', 'data' => null];
|
||
}
|
||
if (!$data['room_cover']) {
|
||
return ['code' => 201, 'msg' => '房间封面不能为空', 'data' => null];
|
||
}
|
||
|
||
|
||
$validate = validate('room');
|
||
$reslut = $validate->scene('adminAdd')->check($data);
|
||
if ($reslut !== true) {
|
||
return ['code' => 201, 'msg' => $validate->getError(), 'data' => null];
|
||
}
|
||
$data['base64_room_name'] = base64_encode($data['room_name']);
|
||
$data['room_host_uid'] = $data['room_owner_uid'];
|
||
$reslut = model('room')->save($data);
|
||
|
||
//更新用户为厅住身份
|
||
$update_data = [];
|
||
$update_data['uid'] = $data['room_owner_uid'];
|
||
$update_data['is_anchor'] = 2;
|
||
db::name('user')->update($update_data);
|
||
|
||
if (!$reslut) {
|
||
return ['code' => 201, 'msg' => '添加失败', 'data' => ''];
|
||
} else {
|
||
return ['code' => 200, 'msg' => '添加成功', 'data' => ''];
|
||
}
|
||
}
|
||
|
||
//获取房间信息
|
||
public function get_room_info($rid)
|
||
{
|
||
if (empty($rid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_info = db::name('room')->where(['rid' => $rid])->find();
|
||
$user_info = db::name('user')->where(['uid' => $room_info['room_owner_uid']])->find();
|
||
$room_info['nickname'] = $user_info['nick_name'] . '-' . $user_info['uid'];
|
||
$room_info['room_cover'] = localpath_to_netpath($room_info['room_cover']);
|
||
$room_info['room_name'] = mb_convert_encoding(base64_decode($room_info['base64_room_name']), 'UTF-8', 'UTF-8');
|
||
// dump($room_info);die;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_info];
|
||
}
|
||
|
||
//删除房间
|
||
public function room_del($rid)
|
||
{
|
||
if (empty($rid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
db::name('room')->where(['rid' => $rid])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||
}
|
||
|
||
public function get_room_visitor_list($data, $order, $sort, $page = 1, $limit = 20)
|
||
{
|
||
|
||
$room_info = db::name('room')->where(['rid' => $data['rid']])->find();
|
||
if (empty($room_info)) {
|
||
return ['code' => 201, 'msg' => '房间信息不存在', 'data' => null];
|
||
}
|
||
$map = [];
|
||
$map[] = ['rid', '=', $data['rid']];
|
||
if (!empty($data['uid'])) {
|
||
$map[] = ['uid', '=', $data['uid']];
|
||
}
|
||
$room_micro_data = explode(',', $room_info['room_micro']);
|
||
if (!empty($data['is_micro'])) {
|
||
if ($data['is_micro'] == 1) {
|
||
$map[] = ['uid', 'in', $room_micro_data];
|
||
} elseif ($data['is_micro'] == 2) {
|
||
$map[] = ['uid', 'not in', $room_micro_data];
|
||
}
|
||
}
|
||
|
||
|
||
$room_visitor_list = db::name('room_visitor')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
foreach ($room_visitor_list as $k => &$v) {
|
||
$user = db::name('user')->where(['uid' => $v['uid']])->find();
|
||
$v['nickname'] = $user['uid'] . '-' . $user['nick_name'];
|
||
$v['user_type_desc'] = '游客'; //游客
|
||
if (in_array($v['uid'], $room_micro_data)) {
|
||
$v['user_type_desc'] = '麦位用户'; //麦位用户
|
||
}
|
||
}
|
||
$data = [];
|
||
$data['count'] = db::name('room_visitor')->where($map)->count();
|
||
$data['list'] = $room_visitor_list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
//获取房间背景列表
|
||
public function room_background_list($bid, $image_name, $order, $sort, $page = 1, $limit = 20)
|
||
{
|
||
$map = [];
|
||
if (!empty($bid)) {
|
||
$map[] = ['bid', '=', $bid];
|
||
}
|
||
if (!empty($image_name)) {
|
||
$map[] = ['image_name', 'like', '%' . $image_name . '%'];
|
||
}
|
||
$map[] = ['is_delete', '=', 1];
|
||
$user_list = db::name('room_background')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
foreach ($user_list as $k => &$v) {
|
||
$v['image_url'] = localpath_to_netpath($v['image_url']);
|
||
}
|
||
$data = [];
|
||
$data['count'] = db::name('room_background')->where($map)->count();
|
||
$data['list'] = $user_list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
//获取房间背景信息
|
||
public function background_info($bid)
|
||
{
|
||
if (empty($bid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_info = db::name('room_background')->where(['bid' => $bid])->find();
|
||
$room_info['image_url'] = localpath_to_netpath($room_info['image_url']);
|
||
// dump($room_info);die;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_info];
|
||
}
|
||
|
||
//删除房间背景
|
||
public function room_background_del($bid)
|
||
{
|
||
if (empty($bid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_info = db::name('room_background')->where(['bid' => $bid])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||
}
|
||
|
||
//修改房背景信息
|
||
public function edit_room_background($bid, $image_name, $image_url, $image_size, $status)
|
||
{
|
||
if (empty($bid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
|
||
$arr = [];
|
||
$arr['image_name'] = $image_name;
|
||
$arr['image_url'] = $image_url;
|
||
$arr['image_size'] = formatBytes($image_size);
|
||
$arr['status'] = $status;
|
||
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('room_background')->where(['bid' => $bid])->update($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//添加房背景信息
|
||
public function add_room_background($image_name, $image_url, $image_size, $status)
|
||
{
|
||
$arr = [];
|
||
$arr['image_name'] = $image_name;
|
||
$arr['image_url'] = $image_url;
|
||
$arr['image_size'] = formatBytes($image_size);
|
||
$arr['status'] = $status;
|
||
$arr['add_time'] = time();
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('room_background')->insert($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||
}
|
||
}
|
||
//--
|
||
|
||
//获取房间表情列表
|
||
public function room_emoji_list($eid, $type, $name, $emoji_type, $order, $sort, $page = 1, $limit = 20)
|
||
{
|
||
$map = [];
|
||
if (!empty($eid)) {
|
||
$map[] = ['eid', '=', $eid];
|
||
}
|
||
if (!empty($type)) {
|
||
$map[] = ['type', '=', $type];
|
||
}
|
||
if(!empty($emoji_type)){
|
||
$map[] = ['emoji_type', '=', $emoji_type];
|
||
}
|
||
if (!empty($name)) {
|
||
$map[] = ['name', 'like', '%' . $name . '%'];
|
||
}
|
||
$map[] = ['is_delete', '=', 1];
|
||
$user_list = db::name('room_emoji')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
foreach ($user_list as $k => &$v) {
|
||
$v['image'] = localpath_to_netpath($v['image']);
|
||
}
|
||
$data = [];
|
||
$data['count'] = db::name('room_emoji')->where($map)->count();
|
||
$data['list'] = $user_list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
//获取房间表情
|
||
public function room_emoji_info($eid)
|
||
{
|
||
if (empty($eid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_emoji = db::name('room_emoji')->where(['eid' => $eid])->find();
|
||
$room_emoji['http_image'] = localpath_to_netpath($room_emoji['image']);
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_emoji];
|
||
}
|
||
|
||
//删除房间表情
|
||
public function del_room_emoji($eid)
|
||
{
|
||
if (empty($eid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_emoji = db::name('room_emoji')->where(['eid' => $eid])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||
}
|
||
|
||
//修改房间表情
|
||
public function edit_room_emoji($eid, $pid, $type, $name, $emoji_type, $nid, $image, $second, $result, $show_status, $sort)
|
||
{
|
||
if (empty($eid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$arr = [];
|
||
$arr['type'] = $type;
|
||
$arr['emoji_type'] = $emoji_type;
|
||
$arr['nid'] = $nid;
|
||
$arr['name'] = $name;
|
||
$arr['image'] = $image;
|
||
$arr['pid'] = $pid;
|
||
$arr['result'] = $result;
|
||
$arr['show_status'] = $show_status;
|
||
$arr['sort'] = $sort;
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('room_emoji')->where(['eid' => $eid])->update($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//添加房间表情
|
||
public function add_room_emoji($pid, $type, $name, $emoji_type, $nid, $image, $second, $result, $show_status, $sort)
|
||
{
|
||
if (empty($name) || empty($image)) {
|
||
return ['code' => 201, 'msg' => '名称或图片不能为空', 'data' => null];
|
||
}
|
||
$arr = [];
|
||
$arr['type'] = $type;
|
||
$arr['emoji_type'] = $emoji_type;
|
||
$arr['nid'] = $nid;
|
||
$arr['name'] = $name;
|
||
$arr['image'] = $image;
|
||
$arr['second'] = 3;
|
||
$arr['pid'] = $pid;
|
||
$arr['result'] = $result;
|
||
$arr['show_status'] = $show_status;
|
||
$arr['sort'] = $sort;
|
||
$arr['add_time'] = time();
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('room_emoji')->insert($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//获取房间分类
|
||
public function get_room_cate()
|
||
{
|
||
$list = db::name('room_type')->field('tid,type_name')->where(['is_delete' => 1])->select();
|
||
foreach ($list as $k => $v) {
|
||
$list[$k]['list'] = db::name('room_category')->field('cate_id,tid,category_name')->where(['tid' => $v['tid']])->select();
|
||
}
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $list];
|
||
}
|
||
|
||
//获取房间分类列表
|
||
public function room_cate_list($cate_id, $category_name, $order, $sort, $page = 1, $limit = 20)
|
||
{
|
||
$map = [];
|
||
if (!empty($cate_id)) {
|
||
$map[] = ['cate_id', '=', $cate_id];
|
||
}
|
||
if (!empty($category_name)) {
|
||
$map[] = ['category_name', 'like', '%' . $category_name . '%'];
|
||
}
|
||
$map[] = ['is_delete', '=', 1];
|
||
$list = db::name('room_category')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
foreach ($list as $k => &$v) {
|
||
$v['tid_type_name'] = db::name('room_type')->where(['tid' => $v['tid']])->value('type_name');
|
||
}
|
||
|
||
$data = [];
|
||
$data['count'] = db::name('room_category')->where($map)->count();
|
||
$data['list'] = $list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
//删除房间分类
|
||
public function room_cate_del($cate_id)
|
||
{
|
||
$room_cate = db::name('room')->where(['cate_id' => $cate_id])->find();
|
||
if ($room_cate) {
|
||
return ['code' => 201, 'msg' => '还有房间在此分类中', 'data' => null];
|
||
}
|
||
|
||
$del = db::name('room_category')->where(['cate_id' => $cate_id])->update(['is_delete' => 2]);
|
||
if ($del) {
|
||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//获取房间分类
|
||
public function get_room_cate_info($cate_id)
|
||
{
|
||
if (empty($cate_id)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_category_info = db::name('room_category')->find($cate_id);
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_category_info];
|
||
}
|
||
|
||
//修改房间分类
|
||
public function room_cate_edit($cate_id, $tid, $category_name, $sort)
|
||
{
|
||
if (empty($cate_id)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$arr['tid'] = $tid;
|
||
$arr['sort'] = $sort;
|
||
$arr['category_name'] = $category_name;
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('room_category')->where(['cate_id' => $cate_id])->update($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//添加房间分类
|
||
public function add_room_cate($tid, $category_name, $sort)
|
||
{
|
||
$arr = [];
|
||
$arr['tid'] = $tid;
|
||
$arr['sort'] = $sort;
|
||
$arr['category_name'] = $category_name;
|
||
$arr['update_time'] = time();
|
||
$arr['add_time'] = time();
|
||
$add = db::name('room_category')->insert($arr);
|
||
if ($add) {
|
||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//--------
|
||
//获取房间类型列表
|
||
public function get_room_type_list($tid, $type_name, $order, $sort, $page = 1, $limit = 20)
|
||
{
|
||
$map = [];
|
||
if (!empty($tid)) {
|
||
$map[] = ['tid', '=', $tid];
|
||
}
|
||
if (!empty($type_name)) {
|
||
$map[] = ['type_name', 'like', '%' . $type_name . '%'];
|
||
}
|
||
$map[] = ['is_delete', '=', 1];
|
||
$user_list = db::name('room_type')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
$data = [];
|
||
$data['count'] = db::name('room_type')->where($map)->count();
|
||
$data['list'] = $user_list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
|
||
|
||
//删除房间类型
|
||
public function room_type_del($tid)
|
||
{
|
||
$room_category = db::name('room_category')->where(['tid' => $tid])->find();
|
||
|
||
if ($room_category) {
|
||
return ['code' => 201, 'msg' => '请先删除该房间下分类', 'data' => null];
|
||
}
|
||
$del = db::name('room')->where(['tid' => $tid])->update(['is_delete' => 2]);
|
||
if ($del) {
|
||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//获取房间类型信息
|
||
public function get_room_type_info($tid)
|
||
{
|
||
if (empty($tid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_type_info = db::name('room_type')->find($tid);
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_type_info];
|
||
}
|
||
|
||
//修改房间类型信息
|
||
public function edit_room_type_info($tid, $room_type)
|
||
{
|
||
if (empty($tid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$upd = db::name('room_type')->where(['tid' => $tid])->update(['type_name' => $room_type, 'update_time' => time()]);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//添加房间类型
|
||
public function add_room_type($room_type)
|
||
{
|
||
$arr = [];
|
||
$arr['type_name'] = $room_type;
|
||
$arr['update_time'] = time();
|
||
$arr['add_time'] = time();
|
||
|
||
$add = db::name('room_type')->insert($arr);
|
||
if ($add) {
|
||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//------
|
||
//获取房间音乐列表
|
||
public function room_music_list($mid, $music_name, $singer, $order, $sort, $page = 1, $limit = 20)
|
||
{
|
||
$map = [];
|
||
if (!empty($mid)) {
|
||
$map[] = ['mid', '=', $mid];
|
||
}
|
||
if (!empty($music_name)) {
|
||
$map[] = ['music_name', 'like', '%' . $music_name . '%'];
|
||
}
|
||
if (!empty($singer)) {
|
||
$map[] = ['singer', 'like', '%' . $singer . '%'];
|
||
}
|
||
|
||
$map[] = ['is_delete', '=', 1];
|
||
$user_list = db::name('music')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
$data = [];
|
||
$data['count'] = db::name('music')->where($map)->count();
|
||
$data['list'] = $user_list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
//获取房间音乐信息
|
||
public function music_info($mid)
|
||
{
|
||
if (empty($mid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_info = db::name('music')->where(['mid' => $mid])->find();
|
||
$room_info['http_music_url'] = localpath_to_netpath($room_info['music_url']);
|
||
// $room_info['room_cover'] = localpath_to_netpath($room_info['room_cover']);
|
||
// dump($room_info);die;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_info];
|
||
}
|
||
|
||
//删除房间音乐
|
||
public function room_music_del($mid)
|
||
{
|
||
if (empty($mid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_info = db::name('music')->where(['mid' => $mid])->update(['is_delete' => 2, 'delete_time' => time()]);
|
||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||
}
|
||
|
||
//修改房间音乐
|
||
public function edit_room_music($mid, $music_name, $singer, $music_url, $music_size, $status, $music_type)
|
||
{
|
||
if (empty($mid)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$arr = [];
|
||
$arr['music_name'] = $music_name;
|
||
$arr['singer'] = $singer;
|
||
$arr['music_url'] = $music_url;
|
||
$arr['music_size'] = formatBytes($music_size);
|
||
$arr['status'] = $status;
|
||
$arr['music_type'] = $music_type;
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('music')->where(['mid' => $mid])->update($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//添加房间音乐
|
||
public function add_room_music($music_name, $singer, $music_url, $music_size, $status, $music_type)
|
||
{
|
||
|
||
$arr = [];
|
||
$arr['singer'] = $singer;
|
||
$arr['music_name'] = $music_name;
|
||
$arr['music_url'] = $music_url;
|
||
$arr['music_size'] = formatBytes($music_size);
|
||
$arr['status'] = $status;
|
||
$arr['music_type'] = $music_type;
|
||
$arr['add_time'] = time();
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('music')->insert($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//获取列表
|
||
public function room_subsidy($order, $sort, $page, $limit)
|
||
{
|
||
$map = [];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$list = db::name('room_subsidy')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
||
foreach ($list as $k => &$v){
|
||
if($v['type'] == 2){
|
||
$v['money'] = $v['money'].'%';
|
||
}
|
||
}
|
||
$data = [];
|
||
$data['count'] = db::name('room_subsidy')->where($map)->count();
|
||
$data['list'] = $list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
//删除
|
||
public function room_subsidy_del($id)
|
||
{
|
||
|
||
$del = db::name('room_subsidy')->where(['id' => $id])->update(['is_delete' => 2]);
|
||
if ($del) {
|
||
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//获取
|
||
public function room_subsidy_info($id)
|
||
{
|
||
if (empty($id)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$room_subsidy_info = db::name('room_subsidy')->find($id);
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_subsidy_info];
|
||
}
|
||
|
||
//修改
|
||
public function edit_room_subsidy($id, $level_name, $total_gift_price, $money, $type)
|
||
{
|
||
if (empty($id)) {
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
$arr = [];
|
||
$arr['type'] = $type;
|
||
$arr['level_name'] = $level_name;
|
||
$arr['total_gift_price'] = $total_gift_price;
|
||
$arr['money'] = $money;
|
||
$arr['update_time'] = time();
|
||
$upd = db::name('room_subsidy')->where(['id' => $id])->update($arr);
|
||
if ($upd) {
|
||
return ['code' => 200, 'msg' => '修改成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '修改失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//添加
|
||
public function add_room_subsidy($level_name, $total_gift_price, $money, $type)
|
||
{
|
||
$arr = [];
|
||
$arr['type'] = $type;
|
||
$arr['level_name'] = $level_name;
|
||
$arr['total_gift_price'] = $total_gift_price;
|
||
$arr['money'] = $money;
|
||
$arr['add_time'] = time();
|
||
$add = db::name('room_subsidy')->insert($arr);
|
||
if ($add) {
|
||
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
||
} else {
|
||
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
//获取列表
|
||
public function give_room_subsidy_list($room_number, $owner_uid, $is_fa, $order, $sort, $page, $limit, $belong_week){
|
||
$map = [];
|
||
if(!empty($room_number)){
|
||
$rid = db::name('room')->where('room_number', $room_number)->value('rid');
|
||
$map[] = ['rid', '=', $rid];
|
||
}
|
||
if(!empty($owner_uid)){
|
||
$map[] = ['owner_uid', '=', $owner_uid];
|
||
}
|
||
if(!empty($is_fa)){
|
||
$map[] = ['is_fa', '=', $is_fa];
|
||
}
|
||
|
||
// if(!empty($start)){
|
||
// $now_time = strtotime($start);
|
||
// $last_week = strtotime('-1 week last sunday', $now_time);
|
||
// $map[] = ['last_week_time', '=', $last_week];
|
||
// }else{
|
||
// $now_time = time();
|
||
// $last_week = strtotime('-1 week last sunday', $now_time);
|
||
// $map[] = ['last_week_time', '=', $last_week];
|
||
// }
|
||
|
||
if(!empty($belong_week)){
|
||
$map[] = ['belong_week', '=', trim($belong_week)];
|
||
}
|
||
|
||
|
||
$map[] = ['type', '=', 1];
|
||
|
||
$list = db::name('room_week_earnings_log')->where($map)->order(['belong_week'=>'desc','earnings'=>'desc'])->page($page, $limit)->select();
|
||
foreach ($list as $k => &$v){
|
||
$room_info = db::name('room')->find($v['rid']);
|
||
$v['room_number'] = $room_info['room_number'];
|
||
$v['room_name'] = mb_convert_encoding(base64_decode($room_info['base64_room_name']), 'UTF-8', 'UTF-8');
|
||
$user_info = db::name('user')->find($v['owner_uid']);
|
||
$v['nick_name'] = mb_convert_encoding(base64_decode($user_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
||
|
||
}
|
||
|
||
$data = [];
|
||
$data['count'] = db::name('room_week_earnings_log')->where($map)->count();
|
||
|
||
$totalRowData = db::name('room_week_earnings_log')->field('SUM(change_value) as change_value,SUM(earnings) as earnings')->where($map)->find();
|
||
$data['totalRow'] = $totalRowData;
|
||
|
||
$data['list'] = $list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
|
||
|
||
//详情
|
||
public function room_week_earnings_log_info($id=0){
|
||
$map = [];
|
||
$map[] = ['id','=',$id];
|
||
$week_earnings_info = db::name('room_week_earnings_log')->where($map)->find();
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $week_earnings_info];
|
||
}
|
||
|
||
|
||
|
||
//修复
|
||
public function room_week_earnings_log_edit($data){
|
||
$map = [];
|
||
$map[] = ['id','=',$data['id']];
|
||
$week_earnings_info = db::name('room_week_earnings_log')->where($map)->find();
|
||
if($week_earnings_info['apply_status'] != 1){
|
||
return ['code' => 201, 'msg' => '已审核完成', 'data' => null];
|
||
}
|
||
if($data['apply_status'] == 1){
|
||
return ['code' => 201, 'msg' => '请选择审核状态!', 'data' => null];
|
||
}
|
||
|
||
if(empty($week_earnings_info)){
|
||
return ['code' => 201, 'msg' => '审批对象不存在', 'data' => null];
|
||
}
|
||
db::name('room_week_earnings_log')->where($map)->update(['apply_status'=>$data['apply_status'],'remark'=>trim($data['remark']),'update_time'=>time()]);
|
||
return ['code' => 200, 'msg' => '操作成功', 'data' => $week_earnings_info];
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//批量结算---------------需要
|
||
public function batch_give_room_subsidy(){
|
||
$week_start = date('Y-m-d', strtotime("last week Monday"));
|
||
$week_end = date('Y-m-d', strtotime("last week Sunday"));
|
||
$balance_week = $week_start."-".$week_end;
|
||
|
||
$is_had_deal_wsh = db::name('room_week_earnings_log')->where(['is_delete'=>1,'belong_week'=>$balance_week,'is_fa'=>2,'apply_status'=>1])->find();
|
||
if(!empty($is_had_deal_wsh)){
|
||
return ['code' => 201, 'msg' => "存在未审核的清单", 'data' => null];
|
||
}
|
||
|
||
|
||
$is_had_deal = db::name('room_week_earnings_log')->where(['is_delete'=>1,'belong_week'=>$balance_week,'is_fa'=>2,'apply_status'=>2])->find();
|
||
if(empty($is_had_deal)){
|
||
return ['code' => 201, 'msg' => "没有要结算的工资", 'data' => null];
|
||
}
|
||
|
||
|
||
|
||
try {
|
||
db::name('room_week_earnings_log')->where(['is_delete'=>1,'belong_week'=>$balance_week,'is_fa'=>2])->update(['is_delete'=>2,'update_time'=>time()]);
|
||
//推入事务逻辑
|
||
|
||
|
||
|
||
//推入队列
|
||
$redis = connectionRedis();
|
||
$redis->rPush('balance_room_wages_date',$balance_week);
|
||
|
||
|
||
|
||
// $data = model('api/RoomWages')->batch_give_room_subsidy($balance_week);
|
||
// if($data['code'] != 200){
|
||
// return ['code' => 200, 'msg' =>$data['msg'], 'data' => null];
|
||
// }
|
||
|
||
return ['code' => 200, 'msg' => "发放成功", 'data' => null];
|
||
} catch (\Exception $e) {
|
||
// 回滚事务
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => "发放失败", 'data' => null];
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//补贴详情
|
||
public function get_give_room_subsidy_info($id){
|
||
if(empty($id)){
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
|
||
$user_room_week_earnings = db::name('user_room_week_earnings')->where('id', $id)->find();
|
||
if(!$user_room_week_earnings){
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $user_room_week_earnings];
|
||
}
|
||
|
||
//修改补贴
|
||
public function edit_give_room_subsidy($id, $user_earnings){
|
||
if(empty($id)){
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
|
||
$user_room_week_earnings = db::name('user_room_week_earnings')->where('id', $id)->find();
|
||
if(!$user_room_week_earnings){
|
||
return ['code' => 201, 'msg' => '参数异常', 'data' => null];
|
||
}
|
||
|
||
if($user_earnings < 0){
|
||
return ['code' => 201, 'msg' => '收益不能小于0', 'data' => null];
|
||
}
|
||
|
||
if($user_room_week_earnings['is_delete'] == 2){
|
||
return ['code' => 201, 'msg' => '该收益已结算,无法编辑', 'data' => null];
|
||
}
|
||
|
||
$update = [];
|
||
$update['user_earnings'] = $user_earnings;
|
||
$update['update_time'] = time();
|
||
$reslut = db::name('user_room_week_earnings')->where('id', $id)->update($update);
|
||
if($reslut){
|
||
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
||
}else{
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||
}
|
||
}
|
||
|
||
|
||
//检测房间
|
||
public function check_room($rid){
|
||
$room_info = db::name('room')->where('rid', $rid)->find();
|
||
if(!$room_info){
|
||
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
||
}
|
||
|
||
$check_room_info = model('api/AgoraCallback')->channel_room($rid);
|
||
if($check_room_info['code'] == 200 && !empty($check_room_info['data']['broadcasters'])){
|
||
// dump($check_room_info['data']['broadcasters']);exit;
|
||
foreach($check_room_info['data']['broadcasters'] as $k => $v){
|
||
$room_micro = $room_info['room_host_uid'].','.$room_info['room_micro'];
|
||
$room_micro_info = explode(',', $room_micro);
|
||
if(!in_array($v, $room_micro_info)){
|
||
model('api/AgoraCallback')->kicking_user($v, $rid, 20);
|
||
$insert = [];
|
||
$insert['uid'] = $v;
|
||
$insert['rid'] = $rid;
|
||
$insert['type'] = 311;
|
||
$insert['content'] = $room_micro;
|
||
$insert['add_time'] = time();
|
||
db::name('user_agora_block')->insert($insert);
|
||
}
|
||
}
|
||
}
|
||
|
||
return ['code' => 200, 'msg' => '检测完成', 'data' => null];
|
||
}
|
||
|
||
//清理麦位
|
||
public function check_room_micro($rid){
|
||
$room_info = db::name('room')->where('rid', $rid)->find();
|
||
if(!$room_info){
|
||
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
||
}
|
||
|
||
$check_room_info = model('api/AgoraCallback')->channel_room($rid);
|
||
if($check_room_info['code'] == 200 && !empty($check_room_info['data']['broadcasters'])){
|
||
// dump($check_room_info['data']['broadcasters']);exit;
|
||
// foreach($check_room_info['data']['broadcasters'] as $k => $v){
|
||
// $room_micro = $room_info['room_host_uid'].','.$room_info['room_micro'];
|
||
// $room_micro_info = explode(',', $room_micro);
|
||
// if(!in_array($v, $room_micro_info)){
|
||
|
||
// }
|
||
// }
|
||
$room_micro = $room_info['room_micro'];
|
||
$room_micro_info = explode(',', $room_micro);
|
||
foreach ($room_micro_info as $k => $v){
|
||
if($v > 0 && !in_array($v,$check_room_info['data']['broadcasters'])){
|
||
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
return ['code' => 200, 'msg' => '清理完成', 'data' => null];
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
//动态列表
|
||
public function room_apply_list( $room_owner_uid,$room_number,$apply_status, $page = 1, $limit = 20)
|
||
{
|
||
|
||
$map = [];
|
||
if (!empty($room_owner_uid)) {
|
||
$map[] = ['ra.room_owner_uid', '=', $room_owner_uid];
|
||
}
|
||
|
||
if (!empty($room_number)) {
|
||
$map[] = ['r.room_number', '=', $room_number];
|
||
}
|
||
if (!empty($apply_status)) {
|
||
$map[] = ['ra.apply_status', '=', $apply_status];
|
||
}
|
||
|
||
|
||
$list = db::name('room_apply')
|
||
->alias('ra')
|
||
->join('yy_user u', 'u.uid = ra.room_owner_uid')
|
||
->join('yy_room r','r.rid = ra.rid')
|
||
->field('ra.id,ra.rid,ra.room_owner_uid,ra.cate_id,ra.apply_status,u.base64_nick_name as nick_name,r.base64_room_name as room_name,r.cate_id as now_cate_id,r.room_number,r.pretty_room_number,ra.add_time')
|
||
->where($map)
|
||
->page($page, $limit)
|
||
->order("id desc")
|
||
->select();
|
||
|
||
foreach ($list as $k => &$v) {
|
||
$v['nick_name'] = mb_convert_encoding(base64_decode($v['nick_name']), 'UTF-8', 'UTF-8');
|
||
$v['nickname'] = $v['room_owner_uid'] . '-' . $v['nick_name'];
|
||
$v['room_cate_name'] = db::name('room_category')->where(['cate_id' => $v['cate_id']])->value('category_name');
|
||
$v['now_room_cate_name'] = db::name('room_category')->where(['cate_id' => $v['now_cate_id']])->value('category_name');
|
||
$v['room_name'] = mb_convert_encoding(base64_decode($v['room_name']), 'UTF-8', 'UTF-8');
|
||
}
|
||
$data = [];
|
||
$data['count'] = db::name('room_apply')
|
||
->alias('ra')
|
||
->join('yy_user u', 'u.uid = ra.room_owner_uid')
|
||
->join('yy_room r','r.rid = ra.rid')
|
||
->where($map)
|
||
->count('ra.id');
|
||
$data['list'] = $list;
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
||
}
|
||
|
||
|
||
|
||
public function room_apply_info($id=0){
|
||
$map = ['ra.id'=>$id];
|
||
$room_apply = db::name('room_apply')
|
||
->alias('ra')
|
||
->join('yy_user u', 'u.uid = ra.room_owner_uid')
|
||
->join('yy_room r','r.rid = ra.rid')
|
||
|
||
->field('ra.id,ra.rid,ra.room_owner_uid,ra.cate_id,ra.apply_status,u.base64_nick_name as nick_name,r.base64_room_name as room_name,r.cate_id as now_cate_id,r.room_number,r.pretty_room_number,ra.add_time')
|
||
->where($map)
|
||
->find();
|
||
|
||
/* foreach ($list as $k => &$v) {*/
|
||
$room_apply['nick_name'] = mb_convert_encoding(base64_decode($room_apply['nick_name']), 'UTF-8', 'UTF-8');
|
||
$room_apply['nickname'] = $room_apply['room_owner_uid'] . '-' . $room_apply['nick_name'];
|
||
$room_apply['room_cate_name'] = db::name('room_category')->where(['cate_id' => $room_apply['cate_id']])->value('category_name');
|
||
$room_apply['now_room_cate_name'] = db::name('room_category')->where(['cate_id' => $room_apply['now_cate_id']])->value('category_name');
|
||
$room_apply['room_name'] = mb_convert_encoding(base64_decode($room_apply['room_name']), 'UTF-8', 'UTF-8');
|
||
// }
|
||
|
||
return ['code' => 200, 'msg' => '获取成功', 'data' => $room_apply];
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
//房间审核
|
||
public function room_apply_edit($data1){
|
||
if(empty($data1['rid'])){
|
||
return ['code' => 201, 'msg' => '获取不到房间!', 'data' => null];
|
||
}
|
||
$rid = $data1['rid'];
|
||
$room_info = db::name('room')->where(['rid'=>$rid,'is_delete'=>1])->find();
|
||
if(empty($room_info)){
|
||
return ['code' => 201, 'msg' => '房间不存在!', 'data' => null];
|
||
}
|
||
$id = $data1['id'];
|
||
$room_apply_info = db::name('room_apply')->where(['id'=>$id])->find();
|
||
$room_name = $room_apply_info['room_name'];
|
||
$cate_id = $room_apply_info['cate_id']; //想要切换的房间类型
|
||
|
||
//审核状态变化
|
||
if($data1['apply_status'] == $room_apply_info['apply_status']){
|
||
return ['code' => 201, 'msg' => '当前审核状态已存在!', 'data' => null];
|
||
}
|
||
|
||
if($data1['apply_status'] ==1){
|
||
return ['code' => 201, 'msg' => '不能将房间审核更改为待审核!', 'data' => null];
|
||
}
|
||
if($room_apply_info['apply_status'] ==3){
|
||
return ['code' => 201, 'msg' => '该房间类型已关闭!', 'data' => null];
|
||
}
|
||
|
||
try {
|
||
Db::startTrans();
|
||
//房间状态已通过 改为 拒绝
|
||
$is_change = false;
|
||
if(($room_apply_info['apply_status'] == 2) && ($data1['apply_status'] == 3)){
|
||
$cate_id = 18;
|
||
$data = [];
|
||
if($room_info['cate_id'] != $cate_id && $cate_id > 0){
|
||
$is_change = true;
|
||
if($room_info['cate_id'] == 19){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $rid];
|
||
$room_privacy = db::name('room_privacy')->where($map)->select();
|
||
if(!empty($room_privacy)){
|
||
db::rollback();
|
||
return ['code' => 201, 'msg' => '当前有小黑屋,暂时无法变更房间', 'data' => null];
|
||
}
|
||
}
|
||
|
||
if($room_info['cate_id'] == 26){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $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){
|
||
db::rollback();
|
||
return ['code' => 201, 'msg' => '当前有进行中的新人拍卖,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
if($room_info['cate_id'] == 27){
|
||
//当前是否已有进行中的K歌
|
||
$map = [];
|
||
$map[] = ['rid', '=', $rid];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$room_auction_info = db::name('room_song_log')->where($map)->find();
|
||
if($room_auction_info){
|
||
db::rollback();
|
||
return ['code' => 201, 'msg' => '当前K歌进行中,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
if($room_info['cate_id'] == 28){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $rid];
|
||
$map[] = ['status', '=', 2];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$room_auction_info = db::name('room_auction_log')->where($map)->find();
|
||
if($room_auction_info){
|
||
db::rollback();
|
||
return ['code' => 201, 'msg' => '当前有尚未结束的拍卖,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
if($room_info['cate_id'] == 29){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $rid];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$room_dating_log = db::name('room_dating_log')->where($map)->find();
|
||
if($room_dating_log){
|
||
db::rollback();
|
||
return ['code' => 201, 'msg' => '当前玩法进行中,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
|
||
|
||
if(in_array($room_info['cate_id'],[36,37])){
|
||
$map = [];
|
||
$map[] = ['rid', '=', $rid];
|
||
$map[] = ['is_delete', '=', 1];
|
||
$room_dating_log = db::name('room_xq1')->where($map)->find();
|
||
if($room_dating_log){
|
||
db::rollback();
|
||
return ['code' => 201, 'msg' => '当前玩法进行中,无法切换', 'data' => null];
|
||
}
|
||
}
|
||
$data['cate_id'] = $cate_id;
|
||
|
||
//房间类型编辑
|
||
$reslut = model('admin/room')->save($data, ['rid' => $rid]);
|
||
if (!$reslut) {
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||
}
|
||
|
||
//清理该房间所有麦位魅力值
|
||
$map = [];
|
||
$map[] = ['rid', '=', $rid];
|
||
$map[] = ['charm_value', '>', 0];
|
||
$list = db::name('room_user_cc')->where($map)->select();
|
||
if(!empty($list)){
|
||
foreach ($list as $k => $v){
|
||
$reslut = db::name('room_user_micro_charm_log')->where('cid', $v['cid'])->update(['change_value' => 0, 'update_time' => time()]);
|
||
if(!$reslut){
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => ''];
|
||
}
|
||
}
|
||
$reslut = db::name('room_user_cc')->where($map)->update(['charm_value' => 0, 'update_time' => time()]);
|
||
if(!$reslut){
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => ''];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//审核状态修改
|
||
db::name('room_apply')->where(['id'=>$id])->update(['apply_status'=>$data1['apply_status'],'reamrks'=>$data1['remarke']]);
|
||
|
||
|
||
// 1待审核 2审核通过 3审核失败
|
||
$category_name= db::name('room_category')->where(['cate_id'=>$room_apply_info['cate_id']])->value('category_name');
|
||
if($data1['apply_status'] == 2){
|
||
$result = "审核通过";
|
||
}elseif($data1['apply_status'] == 3){
|
||
$result = "已被关闭";
|
||
}
|
||
|
||
$remarke = "您申请变更房间类型为{$category_name}:{$result}";
|
||
//提现驳回
|
||
$reslut=model('api/UserMessage')->send_message($room_apply_info['room_owner_uid'], 1, 0,'房间审核', $remarke);
|
||
if ($reslut['code']!=200) {
|
||
Db::rollback();
|
||
return ['code' => 201, 'msg' => "处理失败", 'data' => null];
|
||
}
|
||
|
||
|
||
Db::commit();
|
||
|
||
if($is_change){
|
||
if($cate_id != $room_info['cate_id']){
|
||
$push_room_data = [];
|
||
$push_room_data['rid'] = $rid;
|
||
$push_room_data['type'] = 1;
|
||
$push_data = [];
|
||
$push_data['code'] = 369;
|
||
$push_data['msg'] = "房间类型变更推送";
|
||
$push_data['data'] = $push_room_data;
|
||
$reslut = model('api/WebSocketPush')->send_to_group($rid, $push_data);
|
||
}
|
||
}
|
||
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
||
} catch (\Exception $e) {
|
||
// 回滚事务
|
||
Db::rollback();
|
||
// halt($e);
|
||
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
// public function check_empty_room(){
|
||
// $robot_rids = db::name('room')->where([['robot_num','>',0]])->coulum('rid');
|
||
// $room_uids = db::name('room_micro')->where([['rid','in',$robot_rids],['uid','<>',0]])->group('rid')->column('rid');
|
||
// array_diff();
|
||
|
||
|
||
|
||
|
||
// }
|
||
|
||
|
||
|
||
public function out_forbid_log($data,$page,$page_limit){
|
||
|
||
$map = [];
|
||
|
||
if(!empty($data['operator_uid'])){
|
||
$map[] = ['ru.operator_uid', '=', trim($data['operator_uid'])];
|
||
}
|
||
|
||
if(!empty($data['uid'])){
|
||
$map[] = ['ru.uid', '=', trim($data['uid'])];
|
||
}
|
||
|
||
if(!empty($data['room_number'])){
|
||
$map[] = ['r.room_number|r.pretty_room_number', '=', trim($data['room_number'])];
|
||
}
|
||
|
||
if(!empty($data['type'])){
|
||
$map[] = ['ru.type', '=', trim($data['type'])];
|
||
}
|
||
|
||
if(!empty($data['start'])){
|
||
$map[] = ['ru.add_time', '>=', strtotime(trim($data['start']))];
|
||
}
|
||
|
||
if(!empty($data['end'])){
|
||
$map[] = ['ru.add_time', '<=', strtotime(trim($data['end']))];
|
||
}
|
||
|
||
|
||
|
||
$list = db::name('room_forbid_user ru')
|
||
->join('yy_user u1','ru.operator_uid = u1.uid','left')
|
||
->join('yy_user u2','ru.uid = u2.uid')
|
||
->join('yy_room r','r.rid = ru.rid')
|
||
->field('ru.*,u1.base64_nick_name as operator_nick_name,u2.base64_nick_name as nick_name,if(pretty_room_number <> 0,pretty_room_number,room_number) as room_number')
|
||
->where($map)
|
||
->page($page, $page_limit)
|
||
->order(['ru.fid'=>'desc'])
|
||
->select();
|
||
foreach ($list as &$v){
|
||
if(!empty($v['operator_uid'])){
|
||
$v['operator_nick_name'] = mb_convert_encoding(base64_decode($v['operator_nick_name']), 'UTF-8', 'UTF-8');
|
||
$v['operator_nick_name'] = "{$v['operator_nick_name']}-{$v['operator_uid']}";
|
||
}else{
|
||
$v['operator_nick_name'] = "";
|
||
}
|
||
|
||
$v['nick_name'] = mb_convert_encoding(base64_decode($v['nick_name']), 'UTF-8', 'UTF-8');
|
||
$v['nick_name'] = "{$v['nick_name']}-{$v['uid']}";
|
||
|
||
$v['status'] = 2; //未解禁
|
||
if($v['over_time'] <= time()){
|
||
$v['status'] = 1; //已解禁
|
||
}
|
||
}
|
||
$data = [];
|
||
$data['count'] = db::name('room_forbid_user ru')
|
||
->join('yy_user u1','ru.operator_uid = u1.uid','left')
|
||
->join('yy_user u2','ru.uid = u2.uid')
|
||
->join('yy_room r','r.rid = ru.rid')
|
||
->where($map)
|
||
->count();
|
||
$data['list'] = $list;
|
||
return ['code' => 200, 'msg' => '检测完成', 'data' => $data];
|
||
}
|
||
|
||
|
||
|
||
public function jie_word($fid){
|
||
$result = db::name('room_forbid_user')->where(['fid'=>$fid])->find();
|
||
if(empty($result)){
|
||
return ['code' => 201, 'msg' => '操作对象不存在!', 'data' => null];
|
||
}
|
||
if($result['over_time'] <= time()){
|
||
return ['code' => 201, 'msg' => '已解禁!', 'data' => null];
|
||
}
|
||
db::name('room_forbid_user')->where(['fid'=>$fid])->update(['over_time'=>time(),'update_time'=>time()]);
|
||
return ['code' => 200, 'msg' => '操作成功', 'data' => null];
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|