From d1d07197f1d5c63b8968640aa1a28e7f3646cef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 7 Jan 2026 11:53:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=92=E5=90=A7=20=E5=B0=8F=E9=BB=91?= =?UTF-8?q?=E5=B1=8B=20=E6=B5=81=E6=B0=B4=E8=AE=B0=E5=BD=95=E5=9C=A8?= =?UTF-8?q?=E9=85=92=E5=90=A7=E6=88=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/BarRoom.php | 1 + application/api/model/SendGift.php | 436 ++++++++++++------ .../common/library/GiftTableManager.php | 1 + 3 files changed, 293 insertions(+), 145 deletions(-) diff --git a/application/api/model/BarRoom.php b/application/api/model/BarRoom.php index 9f5248f4..0319ce01 100644 --- a/application/api/model/BarRoom.php +++ b/application/api/model/BarRoom.php @@ -195,6 +195,7 @@ class BarRoom extends Model //记录小房间 $datda = [ 'room_id' => $room_ids['data'], + 'p_room_id' => $room_id, 'user_id' => $user_id, 'meet_user_id' => $meet_user_id, 'end_time' => time() + get_system_config_value('bar_room_timea') * 60, diff --git a/application/api/model/SendGift.php b/application/api/model/SendGift.php index 97d47b0c..fb3aac40 100644 --- a/application/api/model/SendGift.php +++ b/application/api/model/SendGift.php @@ -60,6 +60,7 @@ class SendGift extends Model } $room_type = model('Room')->get_room_type($room_id); + $room_label = db::name('vs_room')->where(['id' => $room_id])->value('label_id'); //获取送礼用户信息 $FromUserInfo = model('User')->get_user_base_info($uid); @@ -73,149 +74,76 @@ class SendGift extends Model //送礼 开启事务 Db::startTrans(); - //金币购买送礼 1金币购买 2送背包礼物 - if($type == 1){ - //送给所有人的总价格 - $all_gift_price = $gift_price; - - //判断是否有足够的金币 - if ($user_coin < $all_gift_price) { - return ['code' => 0, 'msg' => '金币不足,请充值购买!', 'data' => null]; - } - - //扣除用户金币并记录日志 - $wallet_update = model('api/UserWallet')->change_user_cion_log($uid,$all_gift_price,$room_id,10,'购买礼物'); - if(!$wallet_update){ - Db::rollback(); - return ['code' => 0, 'msg' => '网络错误-1', 'data' => null]; - } - - }else{ - //背包礼物是否充足 - $user_gift_pack = db::name('vs_user_gift_pack')->where(['user_id'=>$uid,'gid'=>$gid])->find(); - if (empty($user_gift_pack)) { - return ['code' => 0, 'msg' => '用户背包礼物不足', 'data' => null]; - } - if ($user_gift_pack['num'] < $num) { - return ['code' => 0, 'msg' => '用户背包礼物不足', 'data' => null]; - } - - //扣除背包礼物并记录日志 - $gift_pack = $this -> change_user_gift_pack_log(3,$uid,$gid,$num,'房间送礼'); - if(!$gift_pack){ - Db::rollback(); - return ['code' => 0, 'msg' => '网络错误-2', 'data' => null]; - } - } - - $receive_gift_total = 0;//收礼人收到的礼物总值 - $give_gift = 0;//送礼记录表ID(雪花ID) - $gift_box = [];//开出的盲盒 - - //查询礼物是否是盲盒 - if($gift_info['label'] == 2){//趣味礼物(盲盒) - for($i = 0; $i < $num; $i++){ - //开盲盒 - $gift_box1[$i] = $this -> open_box($gid,$uid,$to_uid,$room_id,$gift_bag_id); - if($gift_box1[$i]['code'] != 1){ - Db::rollback(); - return ['code' => 0, 'msg' => '网络错误-3', 'data' => null]; + if($room_label == 8){//酒吧房下的小黑屋 房间流水和送礼记录、收益 都记录在酒吧房 + $p_room_id = db::name('vs_room_bar_movie')->where('room_id',$room_id)->value('p_room_id'); + //金币购买送礼 1金币购买 2送背包礼物 + if($type == 1){ + //判断是否有足够的金币 + if ($user_coin < $gift_price) { + return ['code' => 0, 'msg' => '金币不足,请充值购买!', 'data' => null]; } - $gift_box[$i] = $gift_box1[$i]['data']; - //开出的礼物价值 - $receive_gift_total += $gift_box[$i]['gift_price']; - //记录一下收礼记录 - $give_gift = $this -> change_user_give_gift_log($uid,$gift_box[$i]['gift_id'],$gift_box[$i]['gift_price'],1,$to_uid,2,$type,$room_id,0,2); - if(!$give_gift){ + + //扣除用户金币并记录日志(酒吧房下的小黑屋 记录记在所属酒吧房) + $wallet_update = model('api/UserWallet')->change_user_cion_log($uid,$gift_price,$p_room_id,10,'小黑屋-购买礼物'); + if(!$wallet_update){ Db::rollback(); - return ['code' => 0, 'msg' => '送礼失败,请重试!!', 'data' => null]; + return ['code' => 0, 'msg' => '网络错误-1', 'data' => null]; } - Log::record("送礼开出盲盒礼物信息:".json_encode($gift_box1),"info"); + + }else{ + Db::rollback(); + return ['code' => 0, 'msg' => '类型错误', 'data' => null]; } - }else{ + + $receive_gift_total = $gift_price;//收礼人收到的礼物总值 + $gift_box = [];//开出的盲盒 + //收礼记录行为日志 - $give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id); + $give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$p_room_id,'小黑屋房间'); if(!$give_gift){ Db::rollback(); return ['code' => 0, 'msg' => '送礼失败,请重试!', 'data' => null]; } - } - //计算收礼人得益 //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 99房主收益 98主持人收益 - $receiver_earnings = model('GiveGift') -> receiver_earnings($to_uid,$receive_gift_total,2); - if($receiver_earnings > 0){ - //增加收益并记录日志 - $receiver = model('api/UserWallet')->change_user_earnings_log($to_uid,$receiver_earnings,$room_id,11,'收礼增加收益'); - if(!$receiver){ + //计算收礼人得益 //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 99房主收益 98主持人收益 + $receiver_earnings = model('GiveGift') -> receiver_earnings($to_uid,$receive_gift_total,2); + if($receiver_earnings > 0){ + //增加收益并记录日志 + $receiver = model('api/UserWallet')->change_user_earnings_log($to_uid,$receiver_earnings,$p_room_id,11,'小黑屋-收礼增加收益'); + if(!$receiver){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-4', 'data' => null]; + } + } + + //用户魅力等级更新(这个里面有推送魅力 所以房间使用原房间) + $user_level = model('Level')->user_level_data_update($to_uid,$receive_gift_total,2,$room_id); + if(!$user_level){ Db::rollback(); - return ['code' => 0, 'msg' => '网络错误-4', 'data' => null]; - } - } - - //用户魅力等级更新 - $user_level = model('Level')->user_level_data_update($to_uid,$receive_gift_total,2,$room_id); - if(!$user_level){ - Db::rollback(); - return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null]; - } - - $room_owner_earnings = 0;//房主收益 - $guild_earnings = 0;//公会会长收益 - $guid_ratio = 0;//公会长收益率 - $receive_ratio = get_system_config_value('room_gift_ratio');//房间收礼人收益 - - if($room_type == 6){ //cp电影房 - //房主有收益 room_cp_room_user_ratio - if(get_system_config_value('room_cp_room_user_ratio') > 0){ - $room_owner = Db::name('vs_room')->where(['id'=>$room_id,'apply_status'=>2])->value('user_id'); - //计算房主收益//room_author_ratio //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 99房主收益 98主持人收益 699-cp房房主收益 - $room_owner_earnings = model('GiveGift') -> receiver_earnings($room_owner,$receive_gift_total,699); - if($room_owner_earnings > 0){ - //增加收益并记录日志 - $room_owner_earning = model('api/UserWallet') - ->change_user_earnings_log($room_owner,$room_owner_earnings,$room_id,18,'私密房主收益'); - if(!$room_owner_earning){ - Db::rollback(); - return ['code' => 0, 'msg' => '网络错误-5', 'data' => null]; - } - } - } - //公会长收益 - if(get_system_config_value('room_cp_guild_user_ratio') > 0){ - $guild_id = Db::name('vs_guild_user')->where(['user_id'=>$to_uid,'status'=>1])->value('guild_id'); - if($guild_id){ - $room_guild = Db::name('vs_guild')->where(['id'=>$guild_id])->value('user_id'); - //计算会长收益 //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 99房主收益 98主持人收益 699-cp房房主收益 698 - cp房里面收益 公会长收益 - $guild_earnings = model('GiveGift') -> receiver_earnings($room_guild,$receive_gift_total,698); - if($guild_earnings > 0){ - //增加收益并记录日志 - $guild_earnings_in = model('api/UserWallet') - ->change_user_earnings_log($room_guild,$guild_earnings,$room_id,21,'私密房工会长收益'); - if(!$guild_earnings_in){ - Db::rollback(); - return ['code' => 0, 'msg' => '网络错误-6', 'data' => null]; - } - } - } + return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null]; } - }else{ - $room_owner = Db::name('vs_room')->where(['id'=>$room_id,'apply_status'=>2])->value('user_id'); + $guild_earnings = 0;//公会会长收益 + $guid_ratio = 0;//公会长收益率 + $receive_ratio = get_system_config_value('room_gift_ratio');//房间收礼人收益 + + //房主收益 计算酒吧房去 + $room_owner = Db::name('vs_room')->where(['id' => $p_room_id,'apply_status' => 2])->value('user_id'); //计算房主收益//room_author_ratio $room_owner_earnings = model('GiveGift') -> receiver_earnings($room_owner,$receive_gift_total,99);//结果是钻石 if($room_owner_earnings > 0){ - //在主持位的主持人 - $host_id = Db::name('vs_room_pit')->where(['room_id'=>$room_id,'pit_number'=>9])->value('user_id'); + //在主持位的主持人 计算酒吧房去 + $host_id = Db::name('vs_room_pit')->where(['room_id'=>$p_room_id,'pit_number'=>9])->value('user_id'); if($host_id){ //计算主持人收益 - $ratio = db::name('vs_room_host')->where(['room_id'=>$room_id,'user_id'=>$to_uid,'delete_time'=>null,'type'=>1])->value('ratio'); + $ratio = db::name('vs_room_host')->where(['room_id'=>$p_room_id,'user_id'=>$to_uid,'delete_time'=>null,'type'=>1])->value('ratio'); if(!$ratio){ $ratio = 0; } $host_earnings = round($room_owner_earnings * $ratio / 100,4); if($host_earnings > 0){ //增加主持人收益并记录日志 - $host_earnings_earning = model('api/UserWallet')->change_user_earnings_log($host_id,$host_earnings,$room_id,19,'主持人收益'); + $host_earnings_earning = model('api/UserWallet')->change_user_earnings_log($host_id,$host_earnings,$p_room_id,19,'小黑屋-主持人收益'); if(!$host_earnings_earning){ Db::rollback(); return ['code' => 0, 'msg' => '网络错误-7', 'data' => null]; @@ -223,7 +151,7 @@ class SendGift extends Model //增加房主收益并记录日志 $room_owner_earningss = $room_owner_earnings - $host_earnings; if($room_owner_earningss > 0){ - $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earningss,$room_id,18,'房主收益'); + $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earningss,$p_room_id,18,'小黑屋-房主收益'); if(!$room_owner_earning){ Db::rollback(); return ['code' => 0, 'msg' => '网络错误-8', 'data' => null]; @@ -232,7 +160,7 @@ class SendGift extends Model }else{ //增加房主收益并记录日志 - $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earnings,$room_id,18,'房主收益'); + $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earnings,$p_room_id,18,'小黑屋-房主收益'); if(!$room_owner_earning){ Db::rollback(); return ['code' => 0, 'msg' => '网络错误-9', 'data' => null]; @@ -240,7 +168,7 @@ class SendGift extends Model } }else{ //增加房主收益并记录日志 - $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earnings,$room_id,18,'房主收益'); + $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earnings,$p_room_id,18,'小黑屋-房主收益'); if(!$room_owner_earning){ Db::rollback(); return ['code' => 0, 'msg' => '网络错误-10', 'data' => null]; @@ -261,7 +189,7 @@ class SendGift extends Model if($guild_earnings > 0){ $guild_user = db::name('vs_guild')->where(['id' => $is_join_guild['guild_id']])->value('user_id'); $guild_earnings_in = model('api/UserWallet') - ->change_user_earnings_log($guild_user,$guild_earnings,$room_id,21,'工会长收益'); + ->change_user_earnings_log($guild_user,$guild_earnings,$p_room_id,21,'小黑屋-工会长收益'); if(!$guild_earnings_in){ Db::rollback(); return ['code' => 0, 'msg' => '网络错误-11', 'data' => null]; @@ -269,25 +197,241 @@ class SendGift extends Model } } } + + //记录送礼利率和各方收益 + //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 + $room_owner_ratio = get_system_config_value('room_author_ratio'); + $app_ratio = 100 - $receive_ratio - $room_owner_ratio - $guid_ratio; + $app_earning = coin_earning($gift_price, $app_ratio); + + $gift_rate = $this->change_give_gift_profit($give_gift, $receive_ratio, $receiver_earnings, $room_owner_ratio, $room_owner_earnings, $app_ratio, $app_earning,$guid_ratio,$guild_earnings); + if(!$gift_rate){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-12', 'data' => null]; + } + + //增加房间火热值hot_value + $gift_totalaa = $receive_gift_total * get_system_config_value('coin_charm_exp'); + db::name('vs_room')->where(['id' => $p_room_id])->inc('hot_value', $gift_totalaa)->inc('today_hot_value', $gift_totalaa)->update(); + + Db::commit(); + }else{ + //金币购买送礼 1金币购买 2送背包礼物 + if($type == 1){ + //判断是否有足够的金币 + if ($user_coin < $gift_price) { + return ['code' => 0, 'msg' => '金币不足,请充值购买!', 'data' => null]; + } + + //扣除用户金币并记录日志 + $wallet_update = model('api/UserWallet')->change_user_cion_log($uid,$gift_price,$room_id,10,'购买礼物'); + if(!$wallet_update){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-1', 'data' => null]; + } + + }else{ + //背包礼物是否充足 + $user_gift_pack = db::name('vs_user_gift_pack')->where(['user_id'=>$uid,'gid'=>$gid])->find(); + if (empty($user_gift_pack)) { + return ['code' => 0, 'msg' => '用户背包礼物不足', 'data' => null]; + } + if ($user_gift_pack['num'] < $num) { + return ['code' => 0, 'msg' => '用户背包礼物不足', 'data' => null]; + } + + //扣除背包礼物并记录日志 + $gift_pack = $this -> change_user_gift_pack_log(3,$uid,$gid,$num,'房间送礼'); + if(!$gift_pack){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-2', 'data' => null]; + } + } + + $receive_gift_total = 0;//收礼人收到的礼物总值 + $give_gift = 0;//送礼记录表ID(雪花ID) + $gift_box = [];//开出的盲盒 + + //查询礼物是否是盲盒 + if($gift_info['label'] == 2){//趣味礼物(盲盒) + for($i = 0; $i < $num; $i++){ + //开盲盒 + $gift_box1[$i] = $this -> open_box($gid,$uid,$to_uid,$room_id,$gift_bag_id); + if($gift_box1[$i]['code'] != 1){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-3', 'data' => null]; + } + $gift_box[$i] = $gift_box1[$i]['data']; + //开出的礼物价值 + $receive_gift_total += $gift_box[$i]['gift_price']; + //记录一下收礼记录 + $give_gift = $this -> change_user_give_gift_log($uid,$gift_box[$i]['gift_id'],$gift_box[$i]['gift_price'],1,$to_uid,2,$type,$room_id,'',0,2); + if(!$give_gift){ + Db::rollback(); + return ['code' => 0, 'msg' => '送礼失败,请重试!!', 'data' => null]; + } + Log::record("送礼开出盲盒礼物信息:".json_encode($gift_box1),"info"); + } + }else{ + $receive_gift_total = $gift_price; + //收礼记录行为日志 + $give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id,''); + if(!$give_gift){ + Db::rollback(); + return ['code' => 0, 'msg' => '送礼失败,请重试!', 'data' => null]; + } + } + + //计算收礼人得益 //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 99房主收益 98主持人收益 + $receiver_earnings = model('GiveGift') -> receiver_earnings($to_uid,$receive_gift_total,2); + if($receiver_earnings > 0){ + //增加收益并记录日志 + $receiver = model('api/UserWallet')->change_user_earnings_log($to_uid,$receiver_earnings,$room_id,11,'收礼增加收益'); + if(!$receiver){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-4', 'data' => null]; + } + } + + //用户魅力等级更新 + $user_level = model('Level')->user_level_data_update($to_uid,$receive_gift_total,2,$room_id); + if(!$user_level){ + Db::rollback(); + return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null]; + } + + $room_owner_earnings = 0;//房主收益 + $guild_earnings = 0;//公会会长收益 + $guid_ratio = 0;//公会长收益率 + $receive_ratio = get_system_config_value('room_gift_ratio');//房间收礼人收益 + + if($room_type == 6){ + //cp电影房 + //房主有收益 room_cp_room_user_ratio + if(get_system_config_value('room_cp_room_user_ratio') > 0){ + $room_owner = Db::name('vs_room')->where(['id'=>$room_id,'apply_status'=>2])->value('user_id'); + //计算房主收益//room_author_ratio //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 99房主收益 98主持人收益 699-cp房房主收益 + $room_owner_earnings = model('GiveGift') -> receiver_earnings($room_owner,$receive_gift_total,699); + if($room_owner_earnings > 0){ + //增加收益并记录日志 + $room_owner_earning = model('api/UserWallet') + ->change_user_earnings_log($room_owner,$room_owner_earnings,$room_id,18,'私密房主收益'); + if(!$room_owner_earning){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-5', 'data' => null]; + } + } + } + //公会长收益 + if(get_system_config_value('room_cp_guild_user_ratio') > 0){ + $guild_id = Db::name('vs_guild_user')->where(['user_id'=>$to_uid,'status'=>1])->value('guild_id'); + if($guild_id){ + $room_guild = Db::name('vs_guild')->where(['id'=>$guild_id])->value('user_id'); + //计算会长收益 //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 99房主收益 98主持人收益 699-cp房房主收益 698 - cp房里面收益 公会长收益 + $guild_earnings = model('GiveGift') -> receiver_earnings($room_guild,$receive_gift_total,698); + if($guild_earnings > 0){ + //增加收益并记录日志 + $guild_earnings_in = model('api/UserWallet') + ->change_user_earnings_log($room_guild,$guild_earnings,$room_id,21,'私密房工会长收益'); + if(!$guild_earnings_in){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-6', 'data' => null]; + } + } + } + } + + }else{ + $room_owner = Db::name('vs_room')->where(['id'=>$room_id,'apply_status'=>2])->value('user_id'); + //计算房主收益//room_author_ratio + $room_owner_earnings = model('GiveGift') -> receiver_earnings($room_owner,$receive_gift_total,99);//结果是钻石 + if($room_owner_earnings > 0){ + //在主持位的主持人 + $host_id = Db::name('vs_room_pit')->where(['room_id'=>$room_id,'pit_number'=>9])->value('user_id'); + if($host_id){ + //计算主持人收益 + $ratio = db::name('vs_room_host')->where(['room_id'=>$room_id,'user_id'=>$to_uid,'delete_time'=>null,'type'=>1])->value('ratio'); + if(!$ratio){ + $ratio = 0; + } + $host_earnings = round($room_owner_earnings * $ratio / 100,4); + if($host_earnings > 0){ + //增加主持人收益并记录日志 + $host_earnings_earning = model('api/UserWallet')->change_user_earnings_log($host_id,$host_earnings,$room_id,19,'主持人收益'); + if(!$host_earnings_earning){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-7', 'data' => null]; + } + //增加房主收益并记录日志 + $room_owner_earningss = $room_owner_earnings - $host_earnings; + if($room_owner_earningss > 0){ + $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earningss,$room_id,18,'房主收益'); + if(!$room_owner_earning){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-8', 'data' => null]; + } + } + + }else{ + //增加房主收益并记录日志 + $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earnings,$room_id,18,'房主收益'); + if(!$room_owner_earning){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-9', 'data' => null]; + } + } + }else{ + //增加房主收益并记录日志 + $room_owner_earning = model('api/UserWallet')->change_user_earnings_log($room_owner,$room_owner_earnings,$room_id,18,'房主收益'); + if(!$room_owner_earning){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-10', 'data' => null]; + } + } + } + + //收礼人是否加入公会 + $is_join_guild = Db::name('vs_guild_user')->where(['user_id'=>$to_uid,'status'=>1,'quit_time' => 0])->field('guild_id,settlement_ratio')->find(); + if($is_join_guild){ + //公会长收益 房间收礼人收益+房间收礼人加入公会后增加收益 + $max_settlement_ratio = get_system_config_value('room_gift_ratio') + get_system_config_value('room_gift_guild_ratio'); + $receive_ratio = $is_join_guild['settlement_ratio'] ?? 0;//加入公会后 公会长设置的收益 + $guid_ratio = $max_settlement_ratio - $receive_ratio; + if($guid_ratio > 0){ + //公会长收益 + $guild_earnings = coin_earning($receive_gift_total,$guid_ratio); + if($guild_earnings > 0){ + $guild_user = db::name('vs_guild')->where(['id' => $is_join_guild['guild_id']])->value('user_id'); + $guild_earnings_in = model('api/UserWallet') + ->change_user_earnings_log($guild_user,$guild_earnings,$room_id,21,'工会长收益'); + if(!$guild_earnings_in){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-11', 'data' => null]; + } + } + } + } + } + + //记录送礼利率和各方收益 + //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 + $room_owner_ratio = get_system_config_value('room_author_ratio'); + $app_ratio = 100 - $receive_ratio - $room_owner_ratio - $guid_ratio; + $app_earning = coin_earning($gift_price, $app_ratio); + + $gift_rate = $this->change_give_gift_profit($give_gift, $receive_ratio, $receiver_earnings, $room_owner_ratio, $room_owner_earnings, $app_ratio, $app_earning,$guid_ratio,$guild_earnings); + if(!$gift_rate){ + Db::rollback(); + return ['code' => 0, 'msg' => '网络错误-12', 'data' => null]; + } + + //增加房间火热值hot_value + $gift_totalaa = $receive_gift_total * get_system_config_value('coin_charm_exp'); + db::name('vs_room')->where(['id' => $room_id])->inc('hot_value', $gift_totalaa)->inc('today_hot_value', $gift_totalaa)->update(); + + Db::commit(); } - //记录送礼利率和各方收益 - //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 - $room_owner_ratio = get_system_config_value('room_author_ratio'); - $app_ratio = 100 - $receive_ratio - $room_owner_ratio - $guid_ratio; - $app_earning = coin_earning($gift_price, $app_ratio); - - $gift_rate = $this->change_give_gift_profit($give_gift, $receive_ratio, $receiver_earnings, $room_owner_ratio, $room_owner_earnings, $app_ratio, $app_earning,$guid_ratio,$guild_earnings); - if(!$gift_rate){ - Db::rollback(); - return ['code' => 0, 'msg' => '网络错误-12', 'data' => null]; - } - - //增加房间火热值hot_value - $gift_totalaa = $receive_gift_total * get_system_config_value('coin_charm_exp'); - db::name('vs_room')->where(['id' => $room_id])->inc('hot_value', $gift_totalaa)->inc('today_hot_value', $gift_totalaa)->update(); - - Db::commit(); //各种需要的及时推送 $room_pk = Db::name('vs_room_pk')->where(['status' => 3, 'room_id_a' => $room_id])->field('pk_id')->find(); @@ -619,7 +763,7 @@ class SendGift extends Model //开出的礼物价值 $receive_gift_total += $gift_box[$i]['gift_price']; //记录一下收礼记录 - $give_gift = $this -> change_user_give_gift_log($uid,$gift_box[$i]['gift_id'],$gift_box[$i]['gift_price'],1,$to_uid,2,$type,$room_id,0,2); + $give_gift = $this -> change_user_give_gift_log($uid,$gift_box[$i]['gift_id'],$gift_box[$i]['gift_price'],1,$to_uid,2,$type,$room_id,'',0,2); if(!$give_gift){ Db::rollback(); return ['code' => 0, 'msg' => '送礼失败,请重试!!', 'data' => null]; @@ -629,7 +773,7 @@ class SendGift extends Model }else{ $receive_gift_total = $gift_price; //收礼记录行为日志 - $give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id); + $give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id,''); if(!$give_gift){ Db::rollback(); return ['code' => 0, 'msg' => '送礼失败,请重试!', 'data' => null]; @@ -945,12 +1089,12 @@ class SendGift extends Model //送礼 开启事务 Db::startTrans(); - $receive_gift_total = 0;//收礼人收到的礼物总值 + $receive_gift_total = $gift_price;//收礼人收到的礼物总值 $give_gift = 0;//送礼记录表ID(雪花ID) $gift_box = [];//开出的盲盒 //收礼记录行为日志 - $give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id); + $give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_uid,2,$type,$room_id,''); if(!$give_gift){ Db::rollback(); return ['code' => 0, 'msg' => '送礼失败,请重试!', 'data' => null]; @@ -1161,6 +1305,7 @@ class SendGift extends Model return ['code' => 1, 'msg' => '送礼成功', 'data' => null]; } + //记录用户赠送背包礼物日志 public function change_user_gift_pack_log($packType,$uid,$gid,$num,$remark) { @@ -1271,7 +1416,7 @@ class SendGift extends Model //记录用户送礼日志 - public function change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_id,$from_type,$type,$from_id,$pit_number = 0,$gitf_type =1) + public function change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_id,$from_type,$type,$from_id,$remarks,$pit_number = 0,$gitf_type =1) { $data = [ 'id' => Snowflake::generate(),// 生成雪花ID @@ -1285,6 +1430,7 @@ class SendGift extends Model 'total_price' => $gift_price, 'from' => $from_type,//1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 6Cp电影房 'type' => $type,//1金币购买 2送背包礼物 + 'remarks' => $remarks??'', 'createtime' => time(), ]; diff --git a/application/common/library/GiftTableManager.php b/application/common/library/GiftTableManager.php index aea2ec38..c8e0f15b 100644 --- a/application/common/library/GiftTableManager.php +++ b/application/common/library/GiftTableManager.php @@ -60,6 +60,7 @@ class GiftTableManager `total_price` decimal(16,2) NOT NULL COMMENT '礼物总价值', `type` int NOT NULL DEFAULT '1' COMMENT '1金币购买 2送背包礼物', `from` int NOT NULL DEFAULT '1' COMMENT '1私聊送礼物 2语聊房送礼 3视频直播房送礼(暂时不用) 4动态打赏 6私密房间送礼', + `remarks` varchar(255) NULL COMMENT '备注', `createtime` bigint NOT NULL COMMENT '创建时间(秒时间戳)', `updatetime` bigint DEFAULT NULL COMMENT '更新时间(秒时间戳)', PRIMARY KEY (`id`),