加入工会送礼修改

This commit is contained in:
2025-11-18 19:04:24 +08:00
parent 5d78a97823
commit 53375c3997

View File

@@ -304,7 +304,12 @@ class GiveGift extends Model
//收礼人是否加入公会 //收礼人是否加入公会
$receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type); $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type);
$room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 $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) { if ($gift_rate['code']==0) {
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null];
@@ -313,7 +318,12 @@ class GiveGift extends Model
}else{ }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) { if ($gift_rate['code']==0) {
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; 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); $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type);
$room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石 $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) { if ($gift_rate['code']==0) {
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null];
@@ -726,7 +741,13 @@ class GiveGift extends Model
}else{ }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) { if ($gift_rate['code']==0) {
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => $gift_rate['msg'], 'data' => null]; 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 '平台收益', `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 = [ $data = [
'give_gift_id' => $give_gift_id, 'give_gift_id' => $give_gift_id,
@@ -1007,6 +1028,8 @@ class GiveGift extends Model
'room_owner_earning' => $room_owner_earning, 'room_owner_earning' => $room_owner_earning,
'app_ratio' => $app_ratio, 'app_ratio' => $app_ratio,
'app_earning' => $app_earning, 'app_earning' => $app_earning,
'guid_ratio' => $guid_ratio,
'guid_ratio_earning' => $guild_earning,
'createtime' => time(), 'createtime' => time(),
]; ];
$res = Db::name('vs_give_gift_ratio_log')->insert($data); $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(); $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(); $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) {//加入工会的收益 if ($is_join_guild) {//加入工会的收益
$max_settlement_ratio = $configs['room_gift_ratio'] + $configs['room_gift_guild_ratio'];
$ratio = $is_join_guild['settlement_ratio'] ?? 0; $ratio = $is_join_guild['settlement_ratio'] ?? 0;
$guid_ratio = $max_settlement_ratio - $ratio;
} else {//未加入工会的收益 } else {//未加入工会的收益
$ratio = $configs['room_gift_ratio']; $ratio = $configs['room_gift_ratio'];
}
//房主收益大于0 就代表有收益 且在房间
if ($room_owner_earningsg > 0) {
$guid_ratio = $configs['room_cp_guild_user_ratio'];
} else {
$guid_ratio = 0; $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_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio;
$app_earning = coin_earning($gift_price, $app_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) { if (!$gift_rate) {
return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null];
}else { }else {