房间热度卡开发-调试

This commit is contained in:
2026-01-23 19:00:12 +08:00
parent 6252df348e
commit 67b2e8801a
2 changed files with 153 additions and 10 deletions

View File

@@ -94,4 +94,13 @@ class Decorate extends BaseCom
return v($reslut['code'], $reslut['msg'], $reslut['data']);
}
//房间热度卡使用
public function room_hot_card(){
$uid = $this->uid;
$udid = input('udid', 0);
$room_id = input('room_id', 0);
$num = input('num', 1);
$reslut = model('Decorate')->room_hot_card($uid,$udid,$room_id,$num);
}
}

View File

@@ -443,6 +443,7 @@ class Decorate extends Model
Db::rollback();
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
}
$increase_hot_value_all = 0;
for ($i = 0; $i < $num; $i++) {
$increase_hot_value = db::name('vs_decorate')->where(['did' => $info['did']])->value('ext_value') ?? 0;
if ($room_info['today_hot_value'] <= $increase_hot_value) {
@@ -450,17 +451,18 @@ class Decorate extends Model
} else {
db::name('vs_room')->where(['id' => $room_id])->setInc('today_hot_value', $increase_hot_value);
}
$increase_hot_value_all += $increase_hot_value;
}
//记录日志
db::name('vs_room_hot_up_log')->insert([
'did' => $udid,
'user_id' => $uid,
'room_id' => $room_id,
'hot_value' => $increase_hot_value,
'hot_value' => $increase_hot_value_all,
'before_hot_value' => $room_info['today_hot_value'],
'end_time' => date('Y-m-d H:00:00', time()),
'createtime' => time()
]);
}
} else{
//推送信息去所在房间
//查询当前所在房间
@@ -580,4 +582,136 @@ class Decorate extends Model
}
return $reslut;
}
//房间热度卡使用
public function room_hot_card($uid,$udid,$room_id,$num=1)
{
$map = [];
if($udid){
$map = [
'user_id' => $uid,
'udid' => $udid
];
$info = db::name('vs_user_decorate')->where($map)->find();
if (empty($info)) {
return ['code' => 0, 'msg' => '房间热度卡不存在', 'data' => null];
}
if(in_array($info['type'],array_keys($this->SpecialType))){
if ($info['num']-1 < 0) {
return ['code' => 0, 'msg' => '无可用房间热度卡', 'data' => null];
}
}
}else{
$map = [
'user_id' => $uid,
'type' => 13,
'num' => ['>',0]
];
$info = db::name('vs_user_decorate')->where($map)->select();
}
Db::startTrans();
try {
if($udid){
$map = [
'user_id' => $uid,
'udid' => $udid
];
$data = [];
$data['is_using'] = 1;
$data['updatetime'] = time();
$data['num'] = $info['num'] - $num;
$reslut = Db::name('vs_user_decorate')->where($map)->update($data);
if (!$reslut) {
Db::rollback();
return ['code' => 0, 'msg' => "设置失败", 'data' => null];
}
if (empty($room_id)) {
Db::rollback();
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
$room_info = db::name('vs_room')->where(['id' => $room_id])->find();
if (empty($room_info)) {
Db::rollback();
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
}
$increase_hot_value_all = 0;
for ($i = 0; $i < $num; $i++) {
$increase_hot_value = db::name('vs_decorate')->where(['did' => $info['did']])->value('ext_value') ?? 0;
if ($room_info['today_hot_value'] <= $increase_hot_value) {
db::name('vs_room')->where(['id' => $room_id])->update(['today_hot_value' => 0]);
} else {
db::name('vs_room')->where(['id' => $room_id])->setInc('today_hot_value', $increase_hot_value);
}
$increase_hot_value_all += $increase_hot_value;
}
//记录日志
db::name('vs_room_hot_up_log')->insert([
'did' => $udid,
'user_id' => $uid,
'room_id' => $room_id,
'hot_value' => $increase_hot_value_all,
'before_hot_value' => $room_info['today_hot_value'],
'end_time' => date('Y-m-d H:00:00', time()),
'createtime' => time()
]);
}else{
$map = [
'user_id' => $uid,
'type' => 13,
'num' => ['>',0]
];
$data = [];
$data['is_using'] = 1;
$data['updatetime'] = time();
$data['num'] = 0;
$result = Db::name('vs_user_decorate')->where($map)->update($data);
if (!$result) {
Db::rollback();
return ['code' => 0, 'msg' => "设置失败", 'data' => null];
}
if (empty($room_id)) {
Db::rollback();
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
$room_info = db::name('vs_room')->where(['id' => $room_id])->find();
if (empty($room_info)) {
Db::rollback();
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
}
$increase_hot_value_all = 0;
foreach ($info as $key => $value) {
$increase_hot_value = db::name('vs_decorate')->where(['did' => $value['did']])->value('ext_value') ?? 0;
$increase_hot_value = $increase_hot_value * $num;
if ($room_info['today_hot_value'] <= $increase_hot_value) {
db::name('vs_room')->where(['id' => $room_id])->update(['today_hot_value' => 0]);
} else {
db::name('vs_room')->where(['id' => $room_id])->setInc('today_hot_value', $increase_hot_value);
}
$increase_hot_value_all += $increase_hot_value;
}
//记录日志
db::name('vs_room_hot_up_log')->insert([
'did' => $udid,
'user_id' => $uid,
'room_id' => $room_id,
'hot_value' => $increase_hot_value_all,
'before_hot_value' => $room_info['today_hot_value'],
'end_time' => date('Y-m-d H:00:00', time()),
'createtime' => time()
]);
}
// 提交事务
Db::commit();
//更新装备缓存
$cache_key = 'user_base_info_'.$uid;
Cache::rm($cache_key);
return ['code' => 1, 'msg' => "设置成功", 'data' => null];
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
return ['code' => 0, 'msg' => "设置失败", 'data' => null];
}
}
}