身价收礼累计计算

This commit is contained in:
2026-01-19 18:59:58 +08:00
parent 57b89a7ed7
commit 684771b746

View File

@@ -368,14 +368,36 @@ class GiveGift extends Model
//收礼人认证歌手等级升级
model('api/SingerSong')->singerLevelUp($to_id,$gift_price);
//收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值 身价=收礼产生的身价+签约时的溢价
$coin_market_value = get_system_config_value('coin_market_value');
//收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值
//单笔收礼大于100四舍五入取整不累计在这单笔小于100累计到100计算一次
$coin_market_value = get_system_config_value('coin_market_value');//身价比例
if(!$coin_market_value){
$coin_market_value = '100,1';
$coin_market_value = '100,1';//默认
}
$coin_market_values = explode(',', $coin_market_value);
$change_value = ceil($gift_price / ($coin_market_values[0] ?? 100) * ($coin_market_values[1] ?? 1));
model('api/MarketValue')->change($to_id,$change_value,0);
$coin_value = $coin_market_values[0] ?? 100;
$market_value = $coin_market_values[1] ?? 1;
if($gift_price >= 100){//单笔收礼大于100四舍五入取整
$change_value = round($gift_price / $coin_value) * $market_value;
model('api/MarketValue')->change($to_id,$change_value,0);
}else{//单笔小于100累计到100计算一次
//获取用户累计的金币数
$accum_coin = db::name('user_data')->where(['user_id'=>$to_id])->value('market_value');
if(($accum_coin + $gift_price) >= 100){//累计到100计算一次
$change_value = floor(($accum_coin + $gift_price) / $coin_value) * $market_value;
$change_market_value = model('api/MarketValue')->change($to_id,$change_value,0);
if($change_market_value['code'] == 1){
//取余
$remain_coin = ($accum_coin + $gift_price) % $coin_value;
//修改数据
db::name('user_data')->where(['user_id'=>$to_id])->update(['market_value'=>$remain_coin]);
}
}else{//累计
db::name('user_data')->where(['user_id'=>$to_id])->update(['market_value'=>$accum_coin + $gift_price]);
}
}
//收礼人是否被签约 给上级返佣
model('api/Sign')->check_sign_gift($to_id,$gid,$num,$gift_price,$from_id);