From 53375c399768c3268e2f984589779b4daff96f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=92=8A?= Date: Tue, 18 Nov 2025 19:04:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=B7=A5=E4=BC=9A=E9=80=81?= =?UTF-8?q?=E7=A4=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/GiveGift.php | 67 ++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 12 deletions(-) diff --git a/application/api/model/GiveGift.php b/application/api/model/GiveGift.php index 86542c8..38e5e83 100644 --- a/application/api/model/GiveGift.php +++ b/application/api/model/GiveGift.php @@ -304,7 +304,12 @@ class GiveGift extends Model //收礼人是否加入公会 $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type); $room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 - $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gv['gift_price'],$gv['give_gift_id'],$receiver_earningss,$room_owner_earningss); + $ext_give_data = [ + 'FromUserInfo' => $FromUserInfo, + 'GiftInfo' => $gift_info, + 'GiftType' => 2, + ]; + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gv['gift_price'],$gv['give_gift_id'],$receiver_earningss,$room_owner_earningss,$from_id,$ext_give_data); if ($gift_rate['code']==0) { Db::rollback(); return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; @@ -313,7 +318,12 @@ class GiveGift extends Model }else{ //记录送礼利率和各方收益 //收礼人是否加入公会 - $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings); + $ext_give_data = [ + 'FromUserInfo' => $FromUserInfo, + 'GiftInfo' => $gift_info, + 'GiftType' => 1, + ]; + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings,$from_id,$ext_give_data); if ($gift_rate['code']==0) { Db::rollback(); return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; @@ -717,7 +727,12 @@ class GiveGift extends Model //收礼人是否加入公会 $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type); $room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 - $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gv['gift_price'],$gv['give_gift_id'],$receiver_earningss,$room_owner_earningss); + $ext_give_data = [ + 'FromUserInfo' => $FromUserInfo, + 'GiftInfo' => $gift_info, + 'GiftType' => 3, + ]; + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gv['gift_price'],$gv['give_gift_id'],$receiver_earningss,$room_owner_earningss,$from_id,$ext_give_data); if ($gift_rate['code']==0) { Db::rollback(); return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; @@ -726,7 +741,13 @@ class GiveGift extends Model }else{ //记录送礼利率和各方收益 //收礼人是否加入公会 - $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings); + $ext_give_data = [ + 'FromUserInfo' => $FromUserInfo, + 'GiftInfo' => $gift_info, + 'GiftType' => 3, + ]; + $gift_rate = $this->record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings,$from_id,$ext_give_data + ); if ($gift_rate['code']==0) { Db::rollback(); return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; @@ -997,7 +1018,7 @@ class GiveGift extends Model `app_earning` decimal(10,0) DEFAULT '0' COMMENT '平台收益', */ - public function change_give_gift_profit($give_gift_id,$gift_user_ratio,$gift_user_earning,$room_owner_ratio = 0,$room_owner_earning = 0,$app_ratio = 0,$app_earning = 0) + public function change_give_gift_profit($give_gift_id,$gift_user_ratio,$gift_user_earning,$room_owner_ratio = 0,$room_owner_earning = 0,$app_ratio = 0,$app_earning = 0,$guid_ratio=0,$guild_earning=0) { $data = [ 'give_gift_id' => $give_gift_id, @@ -1007,6 +1028,8 @@ class GiveGift extends Model 'room_owner_earning' => $room_owner_earning, 'app_ratio' => $app_ratio, 'app_earning' => $app_earning, + 'guid_ratio' => $guid_ratio, + 'guid_ratio_earning' => $guild_earning, 'createtime' => time(), ]; $res = Db::name('vs_give_gift_ratio_log')->insert($data); @@ -1402,27 +1425,47 @@ class GiveGift extends Model } //记录收礼各方收益 - public function record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings){ + public function record_gift_profit($to_uid,$room_owner_earningsg,$gift_price,$give_gift,$receiver_earnings,$room_owner_earnings,$room_id,$ext_give_data){ //记录送礼利率和各方收益 //收礼人是否加入公会 $configs = get_system_config(); $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 = $configs['room_gift_ratio'] + $configs['room_gift_guild_ratio']; $ratio = $is_join_guild['settlement_ratio'] ?? 0; + $guid_ratio = $max_settlement_ratio - $ratio; } else {//未加入工会的收益 $ratio = $configs['room_gift_ratio']; - } - //房主收益大于0 就代表有收益 且在房间 - if ($room_owner_earningsg > 0) { - $guid_ratio = $configs['room_cp_guild_user_ratio']; - } else { $guid_ratio = 0; } + //房主收益大于0 就代表有收益 且在房间 + $guild_earning = 0; + if ($room_owner_earningsg > 0) { + $guid_ratio = $configs['room_cp_guild_user_ratio']; + $guild_earning = coin_earning($gift_price,$guid_ratio); + }else{ + if($guid_ratio > 0){ + //增加收益并记录日志 + $guild = db::name('vs_guild')->where(['id' => $is_join_guild['guild_id']])->find(); + $guild_earning = coin_earning($gift_price,$guid_ratio); + $to_uid_nickname = db::name('vs_user')->where(['id' => $to_uid])->value('nickname'); + $room_name = db::name('vs_room')->where(['id' => $room_id])->value('room_name'); + $gift_type_str = '普通礼物'; + if($ext_give_data['GiftType'] ==2){ + $gift_type_str = '盲盒礼物'; + }elseif($ext_give_data['GiftType'] ==3){ + $gift_type_str = '盲盒转盘礼物'; + } + $remarks = $ext_give_data['FromUserInfo']['nickname'].'在'.$room_name.'房间送给'.$to_uid_nickname.$gift_type_str.' 价值'.$gift_price.'金币,收礼人收益'.$receiver_earnings.'钻石,工会长收益'.$guild_earning.'钻石'; + $this->change_user_cion_or_earnings_log($guild['user_id'],$guild_earning,$room_id,2,21,$remarks); + } + } + //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 $app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio; $app_earning = coin_earning($gift_price, $app_ratio); - $gift_rate = $this->change_give_gift_profit($give_gift, $ratio, $receiver_earnings, $configs['room_author_ratio'], $room_owner_earnings, $app_ratio, $app_earning); + $gift_rate = $this->change_give_gift_profit($give_gift, $ratio, $receiver_earnings, $configs['room_author_ratio'], $room_owner_earnings, $app_ratio, $app_earning,$guid_ratio,$guild_earning); if (!$gift_rate) { return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; }else {