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()
{
$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_coin_list = [];

View File

@@ -197,6 +197,7 @@ class GiveGift extends Model
}
//收礼人认证歌手等级升级
model('api/SingerSong')->singerLevelUp($to_id,$gift_price);
//收礼人身价计算 这里的增长身价是收礼物的价值按比率产生的身价值 身价=收礼产生的身价+签约时的溢价
$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));

View File

@@ -11,14 +11,10 @@ class MarketValue extends Model
* 身价变化
* @param int $user_id 用户id
* @param int $change_value 身价变化值
* @param int $type 0-升值1-系统降身价2-使用降身卡
* @param int $type 0-收礼升值1-系统降身价2-使用降身卡,3-签约溢价 涨身价
* * @return array
*/
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');
if($type == 0){
$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){
return ['code' => 0, 'msg' => '金币不足','data' => null];
}
//开启事务
db::startTrans();
//扣除用户金币并记录日志
@@ -82,12 +83,6 @@ class Sign extends Model
Db::rollback();
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 = [
@@ -103,13 +98,6 @@ class Sign extends Model
db::rollback();
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
$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();
//更新用户的身价并且添加记录 此时增长的身价是出价 这个出价就是身价溢价
$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();
if($refund){
@@ -155,10 +138,19 @@ class Sign extends Model
if($isSinnger){
$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['FromUserInfo'] = $FromUserInfo;
$text['sign_value'] = $sign_user['sign_value'];
$text['sign_id'] = $sign_time;
$text['sign_coin_list'] = $sign_coin_list;
model('api/Chat')->sendMsg(1091,$room_id,$text);
return ['code' => 1, 'msg' => '成功','data' => null];
}
@@ -364,6 +356,22 @@ class Sign extends Model
db::rollback();
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();
//给前端推送
$FromUserInfo = db::name('user')->where('id',$max_sign_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find();