This commit is contained in:
2025-12-01 12:27:15 +08:00
parent fa268d3145
commit 6a3b885438
4 changed files with 39 additions and 27 deletions

View File

@@ -11,9 +11,16 @@ class Sign extends BaseCom
public function sign_coin_list() public function sign_coin_list()
{ {
$sign_id = input('sign_id', 0);//场次id $sign_id = input('sign_id', 0);//场次id
$user_id = db::name('vs_room_sign')->where('id', $sign_id)->value('sign_user_id'); $room_sign = db::name('vs_room_sign')->where('id', $sign_id)->field('sign_user_id,room_id')->find();
//获取出价最高用户
$sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_sign['room_id'],'sign_time' => $sign_id,'type' => 0])->order('sign_value desc')->field('id,user_id,sign_value')->find();
if($sign_user){
$market_value = $sign_user['sign_value'];
}else{
//获取当前用户的身价 //获取当前用户的身价
$market_value = db::name('user')->where('id', $user_id)->value('market_value'); $market_value = db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value');
}
$sign_market_value = get_system_config_value('sign_market_value'); $sign_market_value = get_system_config_value('sign_market_value');
//组个列表 //组个列表
$sign_coin_list = []; $sign_coin_list = [];

View File

@@ -197,6 +197,7 @@ class GiveGift extends Model
} }
//收礼人认证歌手等级升级 //收礼人认证歌手等级升级
model('api/SingerSong')->singerLevelUp($to_id,$gift_price); model('api/SingerSong')->singerLevelUp($to_id,$gift_price);
//收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值 身价=收礼产生的身价+签约时的溢价 //收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值 身价=收礼产生的身价+签约时的溢价
$coin_market_values = explode(',', get_system_config_value('coin_market_value')); $coin_market_values = explode(',', get_system_config_value('coin_market_value'));
$change_value = ceil($gift_price / ($coin_market_values[0] ?? 100) * ($coin_market_values[1] ?? 1)); $change_value = ceil($gift_price / ($coin_market_values[0] ?? 100) * ($coin_market_values[1] ?? 1));

View File

@@ -11,14 +11,10 @@ class MarketValue extends Model
* 身价变化 * 身价变化
* @param int $user_id 用户id * @param int $user_id 用户id
* @param int $change_value 身价变化值 * @param int $change_value 身价变化值
* @param int $type 0-升值1-系统降身价2-使用降身卡 * @param int $type 0-收礼升值1-系统降身价2-使用降身卡,3-签约溢价 涨身价
* * @return array * * @return array
*/ */
public function change($user_id,$change_value,$type){ public function change($user_id,$change_value,$type){
//判断是否为整数
// if(!is_int($change_value)){
// return ['code' => 0, 'msg' => '身价变化参数错误=》'.$change_value];
// }
$before = db::name('user')->where('id',$user_id)->value('market_value'); $before = db::name('user')->where('id',$user_id)->value('market_value');
if($type == 0){ if($type == 0){
$result = db::name('user')->where('id',$user_id)->setInc('market_value',$change_value); $result = db::name('user')->where('id',$user_id)->setInc('market_value',$change_value);

View File

@@ -74,6 +74,7 @@ class Sign extends Model
if($user_coin < $sign_value){ if($user_coin < $sign_value){
return ['code' => 0, 'msg' => '金币不足','data' => null]; return ['code' => 0, 'msg' => '金币不足','data' => null];
} }
//开启事务 //开启事务
db::startTrans(); db::startTrans();
//扣除用户金币并记录日志 //扣除用户金币并记录日志
@@ -82,12 +83,6 @@ class Sign extends Model
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => '扣除用户金币失败', 'data' => null]; return ['code' => 0, 'msg' => '扣除用户金币失败', 'data' => null];
} }
//用户财富等级更新
$user_level = model('Level')->user_level_data_update($user_id,$sign_value,1,$room_id);
if(!$user_level){
Db::rollback();
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null];
}
//记录签约出价 //记录签约出价
$data = [ $data = [
@@ -103,13 +98,6 @@ class Sign extends Model
db::rollback(); db::rollback();
return ['code' => 0, 'msg' => '网络错误,请重试!','data' => null]; return ['code' => 0, 'msg' => '网络错误,请重试!','data' => null];
} }
//记录房间流水及明细
//收礼记录行为日志
$give_gift = model('api/GiveGift') -> change_user_give_gift_log($user_id,0,$sign_value,0,0,2,1,$room_id,0);
if(!$give_gift){
Db::rollback();
return ['code' => 0, 'msg' => '出价失败', 'data' => null];
}
//增加房间火热值hot_value //增加房间火热值hot_value
$gift_totalaa = $sign_value * get_system_config_value('coin_charm_exp'); $gift_totalaa = $sign_value * get_system_config_value('coin_charm_exp');
@@ -117,12 +105,7 @@ class Sign extends Model
//获取出价最高用户 //获取出价最高用户
$sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->order('sign_value desc')->field('id,user_id,sign_value')->find(); $sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->order('sign_value desc')->field('id,user_id,sign_value')->find();
//更新用户的身价并且添加记录 此时增长的身价是出价 这个出价就是身价溢价
$dd = model('api/MarketValue')->change($sign_user_id,$sign_user['sign_value'],0);
if($dd['code'] != 1){
Db::rollback();
return ['code' => 0, 'msg' => $dd['msg'], 'data' => null];
}
//其他的出价退回到用户的钱包 //其他的出价退回到用户的钱包
$refund = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->select(); $refund = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->select();
if($refund){ if($refund){
@@ -155,10 +138,19 @@ class Sign extends Model
if($isSinnger){ if($isSinnger){
$FromUserInfo['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标 $FromUserInfo['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标
} }
//组个列表
$sign_market_value = get_system_config_value('sign_market_value');
$sign_coin_list = [];
$first_value = $sign_user['sign_value'] + $sign_market_value; // 第一个值是身价加上sign_market_value
for ($i = 0; $i < 8; $i++) {
$sign_coin_list[] = (string)($first_value + $i); // 每个值在第一个值的基础上加i0到7
}
$text['text'] = '签约出价最高用户'; $text['text'] = '签约出价最高用户';
$text['FromUserInfo'] = $FromUserInfo; $text['FromUserInfo'] = $FromUserInfo;
$text['sign_value'] = $sign_user['sign_value']; $text['sign_value'] = $sign_user['sign_value'];
$text['sign_id'] = $sign_time; $text['sign_id'] = $sign_time;
$text['sign_coin_list'] = $sign_coin_list;
model('api/Chat')->sendMsg(1091,$room_id,$text); model('api/Chat')->sendMsg(1091,$room_id,$text);
return ['code' => 1, 'msg' => '成功','data' => null]; return ['code' => 1, 'msg' => '成功','data' => null];
} }
@@ -364,6 +356,22 @@ class Sign extends Model
db::rollback(); db::rollback();
return ['code' => 0, 'msg' => '网络错误,请重试.!', 'data' => null]; return ['code' => 0, 'msg' => '网络错误,请重试.!', 'data' => null];
} }
//用户财富等级更新
$user_level = model('Level')->user_level_data_update($max_sign_user['user_id'],$max_sign_user['sign_value'],1,$room_id);
if(!$user_level){
Db::rollback();
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null];
}
//获取用户的身价
$market_value = db::name('user')->where('id',$sign_user_id)->value('market_value');
$sign_values = $max_sign_user['sign_value'] - $market_value;
//更新用户的身价并且添加记录 此时增长的身价是出价 这个出价就是身价溢价
$dd = model('api/MarketValue')->change($sign_user_id,$sign_values,3);
if($dd['code'] != 1){
Db::rollback();
return ['code' => 0, 'msg' => $dd['msg'], 'data' => null];
}
db::commit(); db::commit();
//给前端推送 //给前端推送
$FromUserInfo = db::name('user')->where('id',$max_sign_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find(); $FromUserInfo = db::name('user')->where('id',$max_sign_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find();