交友换麦优化

This commit is contained in:
2025-09-15 16:11:38 +08:00
parent 952350c4ea
commit d997efe73a
2 changed files with 113 additions and 99 deletions

View File

@@ -570,7 +570,18 @@ class Friend extends Model
//换麦 //换麦
public function changePitToPosPair($room_id,$friendPlayPit){ public function changePitToPosPair($room_id,$friendPlayPit){
// $push = new Push(0, $this->room_id); $now_pit_u = array_flip($friendPlayPit);
//按照键值排序数组
ksort($now_pit_u);
//查询现在麦位上有用户的数据 并且重组结果,键为麦位,值为用户,值必须存在,没值则不展示
$pit_user = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number'=>['<',7],'user_id' => ['>', 0]])
->order('pit_number ASC')
->column('pit_number,user_id');
//比较两个数组,无论是键的差异还是值的差异,都输出字符串”有差异“否则输出”没有差异“
$result = array_diff_assoc($pit_user, $now_pit_u);
$result2 = array_diff_assoc($now_pit_u, $pit_user);
if(!empty($result) || !empty($result2)){
// var_dump('有差异');
//获取实际麦位上的用 //获取实际麦位上的用
$newPitUser = array_keys($friendPlayPit); $newPitUser = array_keys($friendPlayPit);
//获取当前麦位上的用户 //获取当前麦位上的用户
@@ -673,6 +684,7 @@ class Friend extends Model
} }
} }
}
//交友厅游戏开始后送礼后一系列操作 //交友厅游戏开始后送礼后一系列操作

View File

@@ -2619,11 +2619,13 @@ class Room extends Model
if($room_id == '' || $user_id == ''){ if($room_id == '' || $user_id == ''){
return ['code' => 0, 'msg' => '参数错误', 'data' => null]; return ['code' => 0, 'msg' => '参数错误', 'data' => null];
} }
$clear_time = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $user_id])->order('id', 'desc')->value('clear_time') ?? 0; $clear_time = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $user_id])
->order('id', 'desc')->value('clear_time') ?? 0;
$list = db::name('vs_give_gift')->alias('a') $list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.user_id=b.id') ->join('user b', 'a.user_id=b.id')
->field('a.user_id,sum(a.total_price) as total_price,b.nickname,b.avatar,b.user_code') ->field('a.user_id,sum(a.total_price) as total_price,b.nickname,b.avatar,b.user_code')
->where(['a.from_id' => $room_id, 'a.gift_user' => $user_id, 'a.createtime' => ['>',$clear_time],'a.from' => 2])->group('a.user_id')->select(); ->where(['a.from_id' => $room_id, 'a.gift_user' => $user_id, 'a.createtime' => ['>',$clear_time],'a.from' => 2])
->group('a.user_id')->select();
if($list){ if($list){
foreach ($list as &$v){ foreach ($list as &$v){
$v['charm'] = $v['total_price'] * get_system_config_value('coin_charm_exp'); $v['charm'] = $v['total_price'] * get_system_config_value('coin_charm_exp');