106 lines
3.7 KiB
PHP
106 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace app\api\model;
|
|
|
|
use think\Cache;
|
|
use think\Model;
|
|
use think\Db;
|
|
|
|
/*
|
|
* 酒吧房
|
|
*/
|
|
class BarRoom extends Model
|
|
{
|
|
// 开启自动写入时间戳字段
|
|
protected $autoWriteTimestamp = true;
|
|
// 定义时间戳字段名
|
|
protected $createTime = 'createtime';
|
|
protected $updateTime = 'updatetime';
|
|
// 麦位时长配置
|
|
protected $pitDuration = [
|
|
'1' => 5,
|
|
'2' => 10,
|
|
'3' => 15,
|
|
'4' => 20,
|
|
'5' => 25,
|
|
'6' => 30,
|
|
];
|
|
|
|
//麦位时长列表
|
|
public function get_pit_duration_list(){
|
|
foreach ($this->pitDuration as $key => $value) {
|
|
$list[] = [
|
|
'time' => $value,
|
|
'time_str' => $value.'分钟',
|
|
];
|
|
}
|
|
return ['code' => 1, 'msg' => '获取成功', 'data' => $list];
|
|
}
|
|
//实在房间麦位时长
|
|
public function set_pit_duration($room_id,$time){
|
|
$room = db::name('vs_room')->where(['id' => $room_id, 'delete_time' => 0, 'room_status' => 1])->find();
|
|
if(!$room){
|
|
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
|
|
}
|
|
$room_data = db::name('vs_room_bar')->where('id',$room['id'])->find();
|
|
if($room_data){
|
|
if($room_data['pit_time'] != $time){
|
|
db::name('vs_room_bar')->where('id',$room_id)->update(['pit_time' => $time]);
|
|
}
|
|
}else{
|
|
db::name('vs_room_bar')->insert([
|
|
'id' => $room_id,
|
|
'pit_time' => $time,
|
|
]);
|
|
}
|
|
//推送麦位时长
|
|
return ['code' => 1, 'msg' => '成功', 'data' => null];
|
|
}
|
|
//上麦选择礼物
|
|
public function join_pit_choose_gift($user_id,$room_id,$gift_id){
|
|
$pit_gift = db::name('vs_room_bar_pit_gift')->where(['room_id' => $room_id,'user_id' => $user_id, 'delete_time' => 0])->find();
|
|
$pit_time = db::name('vs_room_bar')->where('id',$room_id)->value('pit_time');
|
|
$end_time = time()+$pit_time * 60;
|
|
if($pit_gift){
|
|
// 使用WHERE条件和影响行数验证确保并发安全
|
|
$result = db::name('vs_room_bar_pit_gift')
|
|
->where(['id' => $pit_gift['id'], 'delete_time' => 0])
|
|
->update([
|
|
'gift_id' => $gift_id,
|
|
'end_time' => $end_time,
|
|
'updatetime' => time(),
|
|
]);
|
|
} else{
|
|
// 执行插入操作
|
|
$result = db::name('vs_room_bar_pit_gift')->insert([
|
|
'room_id' => $room_id,
|
|
'user_id' => $user_id,
|
|
'gift_id' => $gift_id,
|
|
'end_time' => $end_time,
|
|
'createtime' => time(),
|
|
]);
|
|
}
|
|
if(!$result){
|
|
return ['code' => 0, 'msg' => '失败', 'data' => null];
|
|
}
|
|
return ['code' => 1, 'msg' => '成功', 'data' => null];
|
|
}
|
|
//约Ta礼物详情
|
|
public function get_gift_info_ta($user_id,$room_id){
|
|
$return_data = [];
|
|
$pit_gift = db::name('vs_room_bar_pit_gift')->where(['room_id' => $room_id,'user_id' => $user_id, 'delete_time' => 0])->find();
|
|
if($pit_gift){
|
|
$gift = db::name('vs_gift')->where(['id' => $pit_gift['gift_id'], 'delete_time' => 0])->find();
|
|
if(empty($gift)){
|
|
return ['code' => 0, 'msg' => '礼物不存在', 'data' => null];
|
|
}
|
|
$return_data = [
|
|
'gift_id' => $pit_gift['gift_id'],
|
|
'gift_name' => $gift['name'],
|
|
'base_image' => $gift['base_image'],
|
|
'gift_price' => $gift['gift_price'],
|
|
];
|
|
}
|
|
return ['code' => 1, 'msg' => '成功', 'data' => $return_data];
|
|
}
|
|
} |