房间热度卡开发-调试
This commit is contained in:
@@ -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);
|
||||
}
|
||||
//记录日志
|
||||
db::name('vs_room_hot_up_log')->insert([
|
||||
'did' => $udid,
|
||||
'user_id' => $uid,
|
||||
'room_id' => $room_id,
|
||||
'hot_value' => $increase_hot_value,
|
||||
'before_hot_value' => $room_info['today_hot_value'],
|
||||
'end_time' => date('Y-m-d H:00:00', time()),
|
||||
'createtime' => time()
|
||||
]);
|
||||
$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{
|
||||
//推送信息去所在房间
|
||||
//查询当前所在房间
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user